-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-18162: [C++] Add Arm SVE compiler options #14515
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
Conversation
|
|
|
It seems we could also use SVE in |
Yes. SVE may be better when longer vector size is beneficial, or to leverage operations (e.g, scatter/gather) not availble in NEON. |
As xsimd only supports fixed-size SVE, we have to specify vector size explicitly on command line. And the binary can only run on hardware with that vector size. Otherwise, the code behaviour is undefined. E.g., `cmake -DARROW_SIMD_LEVEL=SVE256 ..` According macro `ARROW_HAVE_SVE256` and cmake variable are defined. We can also leverage compiler auto vectorization to generate size agnostic SVE code without specifying the vector size. E.g., `cmake -DARROW_SIMD_LEVEL=SVE ..` This PR also removes some unused Arm64 arch options.
|
@github-actions crossbow submit conda-{linux,osx}-* |
|
|
@github-actions crossbow submit conda-linux-* |
|
Revision: f99b57a Submitted crossbow builds: ursacomputing/crossbow @ actions-19dd1864f2 |
|
@github-actions crossbow submit conda-osx-* |
|
Revision: f99b57a Submitted crossbow builds: ursacomputing/crossbow @ actions-457a7b106d |
|
conda-osx-clang-py310/py37 build error looks not related. |
kou
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 for changes
I re-ran failed jobs.
|
Benchmark runs are scheduled for baseline = 2a5c773 and contender = 16fd7f3. 16fd7f3 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
As xsimd only supports fixed-size SVE, we have to specify vector size explicitly on command line. And the binary can only run on hardware with matched vector size. Otherwise, the code behaviour is undefined. E.g., `cmake -DARROW_SIMD_LEVEL=SVE256 ..` According macro `ARROW_HAVE_SVE256` and cmake variable are defined. We can also leverage compiler auto vectorization to generate size agnostic SVE code without specifying the vector size. E.g., `cmake -DARROW_SIMD_LEVEL=SVE ..` This PR also removes some unused Arm64 arch options. Authored-by: Yibo Cai <[email protected]> Signed-off-by: Yibo Cai <[email protected]>
As xsimd only supports fixed-size SVE, we have to specify vector size
explicitly on command line. And the binary can only run on hardware
with matched vector size. Otherwise, the code behaviour is undefined.
E.g.,
cmake -DARROW_SIMD_LEVEL=SVE256 ..According macro
ARROW_HAVE_SVE256and cmake variable are defined.We can also leverage compiler auto vectorization to generate size
agnostic SVE code without specifying the vector size.
E.g.,
cmake -DARROW_SIMD_LEVEL=SVE ..This PR also removes some unused Arm64 arch options.