RFR: 8317763: Follow-up to AVX512 intrinsics for Arrays.sort() PR [v2]

Srinivas Vamsi Parasa duke at openjdk.org
Wed Oct 11 20:58:25 UTC 2023


On Wed, 11 Oct 2023 20:31:05 GMT, Srinivas Vamsi Parasa <duke at openjdk.org> wrote:

>> Hi @vamsi-parasa,
>> 
>> Both methods mixedInsertionSort and insertionSort are covered by intrinsics.
>> But insertionSort is run on leftmnost (one) part only and on small ( < MAX_INSERTION_SORT_SIZE = 44) arrays.
>> Do we actually need to use intrinsics for it?
>> 
>> To have clear picture could you please run benchmarking to compare both cases:
>> current implementation and implementation with Java insertionSort only?
>> 
>> see changes `sort(int.class, a, Unsafe.ARRAY_INT_BASE_OFFSET, low, high, DualPivotQuicksort::insertionSort);`
>> ->
>> `insertionSort(a, low, high);`
>
>> To have clear picture could you please run benchmarking to compare both cases: current implementation and implementation with Java insertionSort only?
>> 
>> see changes `sort(int.class, a, Unsafe.ARRAY_INT_BASE_OFFSET, low, high, DualPivotQuicksort::insertionSort);` -> `insertionSort(a, low, high);`
> 
> @iaroslavski 
> Yes, the intrinsic is needed. 
> I remember, the same question was asked in the original PR and data was provided in the original PR.
> Even for a small say size=30, the AVX512 sort intrinsic is faster.

> @vamsi-parasa, and no profit with @forceinline on insertionSort and mixedInsertionSort. I suggest removing @forceinline from insertionSort and mixedInsertionSort.

@iaroslavski,  Please see the change reverted.

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

PR Comment: https://git.openjdk.org/jdk/pull/16124#issuecomment-1758522236


More information about the hotspot-compiler-dev mailing list