wpleonardo commented on PR #1375: URL: https://github.com/apache/orc/pull/1375#issuecomment-1427878821
1.Refactor the way of unpacking about the default and AVX512. Added the dynamic dispatch function about AVX512 and default way. @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1067745787 1.1 Separate the default unpacking way unrolledUnpackX from RLEv2.hh and RleDecoderV2.cc, and create new files "BpackingDefault.hh & .cc" to definite the default unpacking way. 1.2 Also create new files "BpackingAvx512.hh & .cc" to definite the AVX512 unpacking way. 1.3 Create a new file "Dispatch.hh" to do dynamic dispatch. 1.4 Create new file "Bpacking.hh & .cc" to have the different unpacking ways. 2.Delete the file c++/src/DetectPlatform.hh, and chose the same way (CpuInfoUtil.cc) with Apache arrow to check if current CPU support avx512. @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1067729278 https://github.com/apache/orc/pull/1375#discussion_r1067729882 https://github.com/apache/orc/pull/1375#discussion_r1067729882 3.Delete Env parameter "ENABLE_RUNTIME_AVX512", create an Env parameter "ORC_USER_SIMD_LEVEL" (value: NONE | AVX512) to change the status at the running time. @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1067743477 4.In the CMakelists.txt and CpuInfoUtil.cc file, delete the definition about avx2 , sse_4_2 , neon, ppc, s390x and riscv64. Because currently CI doesn't support them, and in the future we also don't support them. @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1092785072 https://github.com/apache/orc/pull/1375#discussion_r1092788112 https://github.com/apache/orc/pull/1375#discussion_r1092788886 5.AVX512 main function name changed from unrolledUnpackVectorX to vectorUnpackX. @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1092812660 6.Optimiz the code comments, make them be more readable. @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1092798187 7.Change the file name VectorDecoder.hh to BitUnpackerAvx512.hh @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1092835623 8.In the testcase file c++/test/TestRleVectorDecoder.cc delete #include <inttypes.h> @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1092839029 9.In the testcase file c++/test/TestRleVectorDecoder.cc, change the class name RleVectorTest to RleV2BitUnpackAvx512Test. @wgtmac https://github.com/apache/orc/pull/1375#discussion_r1092839780 10.Modified the CMakelists.txt to print the value of BUILD_ENABLE_AVX512, CXX_SUPPORTS_AVX512, ORC_RUNTIME_SIMD_LEVEL, ORC_HAVE_RUNTIME_AVX512 and ORC_SIMD_LEVEL in the cmake process. @stiga-huang https://github.com/apache/orc/pull/1375#discussion_r1097305535 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
