-
Notifications
You must be signed in to change notification settings - Fork 458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[VL] Understanding the Role of builder_helper_functions.sh in Architecture Detection and AVX Impact #8469
Comments
@rajatma1993, frankly speaking, we have not tested the perf. difference between avx enabled and disabled. There are some native libs that have been optimized with avx, like simdjson lib which is used in native engine. I believe the avx related flag setting for compiler can bring perf. gain to some extent. And we even recommend user to set |
Hi @PHILO-HE , Thanks For the response !! I want to clarify my understanding regarding performance improvements related to AVX support. It seems AVX itself doesn’t directly bring performance gains but rather enables native libraries that leverage AVX to provide performance improvements, depending on the underlying machine's capabilities. Is this correct? Also, regarding the recommendation to set -march=native: Does this mean users need to explicitly handle this flag during their build process when setting up Gluten? Also can you help me getting to know files/folders if any, where I can see that what are the Native libs is used in this Project ? Thanks |
Yes. As I mentioned, some libs like simdjson have some avx-specific code for explicit optimization. And we can also ask compiler to do auto-vectorization by setting O2 or O3 flag along with the avx flag. But it is not enabled in Gluten/Velox.
If
For velox backend, please go to check cpp/ folder where you can see the native libs in using, such as Velox, Arrow, RE2, etc. As you know, Velox is the most important native lib, so you can also check the transitive dependencies from Velox code repo: https://github.com/facebookincubator/velox. You may find any optimization opportunity on native execution from these direct/transitive native dependencies. |
Backend
VL (Velox)
Bug description
Hi @PHILO-HE , Team
Hello,
I need some help in understanding the purpose and usage of the file builder_helper_functions.sh, particularly from the perspective of CPU architecture.
Does this file play a role in detecting the underlying architecture and deciding the build process accordingly?
Specifically, I noticed that it includes checks for AVX. Could someone clarify the reasoning behind introducing AVX in this context?
Does enabling AVX have any significant impact on the performance of Gluten when running on an x86 machine?
Additionally, I reviewed the pull request where the changes related to AVX checks in builder_helper_functions.sh were introduced, but I couldn’t find clear answers or explanations there.
Could anyone provide insights into the purpose and importance of these changes and is there any affect in the build process or performance?
Thank you in advance for your help !!
Spark version
None
Spark configurations
No response
System information
No response
Relevant logs
No response
The text was updated successfully, but these errors were encountered: