mapleFU commented on issue #43687: URL: https://github.com/apache/arrow/issues/43687#issuecomment-2289644438
> However I would try to answer myself: for other types, the compiler generates different SIMD code for AVX512 than for AVX2. So for these kernels, we have to mark them AVX512-only because an AVX2-only architecture wouldn't know them. For string-like and fixed-size-binary types, on the other hand, we are sure that the SIMD code generated by the compiler for both AVX512 and AVX2 are the same (all AVX2-capable?)? So these kernels are actually AVX2-capable, hence we specify a more relaxing SIMD level (AVX2) for them? This make sense to me. Seems if we have hand written avx2/avx512 kernel, and we know currently they'd work better than compiler generated, we'd like to marking them as `SimdLevel::xxx` code I don't know the idea why generate with different SimdLevel, a "None" with user-compiled code seems suitable for the case when user'd like to compile it themselve with auto-vectorization and flag like `-march=native`. -- 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]
