RFR: 8338023: Support two vector selectFrom API [v3]

Sandhya Viswanathan sviswanathan at openjdk.org
Wed Aug 21 17:51:06 UTC 2024


On Wed, 21 Aug 2024 16:49:40 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Pass explicit wrap argument to selectFrom API with default value set to true.
>
> Hi @rose00 , @sviswa7 , @PaulSandoz , 
> As suggested, now passing explicit 'wrap' argument to new selectFrom API.
> 
> Following are the performance number of modified JMH micro included with the patch.
> 
> 
> 
> Baseline:-
> Benchmark                                      (size)   Mode  Cnt     Score   Error   Units
> SelectFromBenchmark.rearrangeFromByteVector     4096  thrpt    2  5849.771          ops/ms
> SelectFromBenchmark.rearrangeFromDoubleVector   4096  thrpt    2   430.712          ops/ms
> SelectFromBenchmark.rearrangeFromFloatVector    4096  thrpt    2   942.737          ops/ms
> SelectFromBenchmark.rearrangeFromIntVector      4096  thrpt    2  1057.695          ops/ms
> SelectFromBenchmark.rearrangeFromLongVector     4096  thrpt    2   616.360          ops/ms
> SelectFromBenchmark.rearrangeFromShortVector    4096  thrpt    2  2146.465          ops/ms
> 
> With Patch:-
> Benchmark                                   (size)   Mode  Cnt     Score   Error   Units
> SelectFromBenchmark.selectFromByteVector        4096  thrpt    2  9543.775          ops/ms
> SelectFromBenchmark.selectFromDoubleVector      4096  thrpt    2   558.195          ops/ms
> SelectFromBenchmark.selectFromFloatVector       4096  thrpt    2  1325.059          ops/ms
> SelectFromBenchmark.selectFromIntVector         4096  thrpt    2  1418.748          ops/ms
> SelectFromBenchmark.selectFromLongVector        4096  thrpt    2   687.231          ops/ms
> SelectFromBenchmark.selectFromShortVector       4096  thrpt    2  4782.395          ops/ms
> 
> 
> With WIP wrap index acceleration PR#20634:
> Benchmark                                      (size)   Mode  Cnt     Score   Error   Units
> SelectFromBenchmark.rearrangeFromByteVector     4096  thrpt    2  7602.645          ops/ms
> SelectFromBenchmark.rearrangeFromDoubleVector   4096  thrpt    2   441.684          ops/ms
> SelectFromBenchmark.rearrangeFromFloatVector    4096  thrpt    2   926.112          ops/ms
> SelectFromBenchmark.rearrangeFromIntVector      4096  thrpt    2  1061.695          ops/ms
> SelectFromBenchmark.rearrangeFromLongVector     4096  thrpt    2   644.058          ops/ms
> SelectFromBenchmark.rearrangeFromShortVector    4096  thrpt    2  2777.735          ops/ms

@jatin-bhateja Thanks, the PR ((https://github.com/openjdk/jdk/pull/20634) is still work in progress and can be simplified much further. The changes I am currently working on are do wrap by default for rearrange and selectFrom as suggested by John and Paul, no additional api with boolean wrap as parameter, and no changes to shuffle constructors.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20508#issuecomment-2302641840


More information about the core-libs-dev mailing list