RFR: 8309130: x86_64 AVX512 intrinsics for Arrays.sort methods (int, long, float and double arrays) [v29]
Vladimir Kozlov
kvn at openjdk.org
Tue Aug 29 16:08:29 UTC 2023
On Mon, 28 Aug 2023 23:28:44 GMT, Erik Joelsson <erikj at openjdk.org> wrote:
>> Hi Erik,
>>
>> The reason this PR is focused on Linux is because the AVX512 sort and partitioning routines are based on Intel’s x86-simd-library (https://github.com/intel/x86-simd-sort) which was originally developed with GCC as the target compiler. Thus, this PR has restricted itself to Linux as the code was tested using GCC/Linux platforms.
>> Additionally, the x86_64 library is compiled for AVX512 using file specific compilation pragmas (`#pragma GCC target("avx512dq", "avx512f")`). This feature is absent for Windows/MSVC++ compiler.”
>>
>> Thanks,
>> Vamsi
>
> If it's tied to GCC as well, then we should probably include that in the condition here unless it's also expected to work with Clang. (`TOOLCHAIN_TYPE` = `gcc`)
> The reason this PR is focused on Linux is because the AVX512 sort and partitioning routines are based on Intel’s x86-simd-library (https://github.com/intel/x86-simd-sort) which was originally developed with GCC as the target compiler. Thus, this PR has restricted itself to Linux as the code was tested using GCC/Linux platforms. Additionally, the x86_64 library is compiled for AVX512 using file specific compilation pragmas (`#pragma GCC target("avx512dq", "avx512f")`). This feature is absent for Windows/MSVC++ compiler.”
That is why I am questioning this approach to have additional separate C++ code library - too much dependencies on other tools.
As I suggested before try to disassemble this library and use assembler code in VM new stubs. You can create specialized stubGenerator_x86_64_array_sort.cpp file for it. Then you don't need to depend on C++ compiler or OS.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14227#discussion_r1309054538
More information about the build-dev
mailing list