-
Notifications
You must be signed in to change notification settings - Fork 720
host: Add AVX2 support for uhd::convert #789
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
base: master
Are you sure you want to change the base?
Conversation
a060a42 to
db32fa6
Compare
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
Signed-off-by: Anıl Gürses <[email protected]>
|
I have read the CLA Document and I hereby sign the CLA |
db32fa6 to
1b78ab6
Compare
|
Hi! Is there anything else needed for this PR? |
|
Hey @anilgurses, sorry for never responding here. The problem is that AVX2 support is not ubiquitous, and we need a way to only deploy it on demand. Something like a glibc conditional dispatch. I was also thinking of merging this, but leaving it disabled unless explicitly enabled at compile time (this would not, for example, be the case for .deb files we distribute). But that's also work. |
| ######################################################################## | ||
|
|
||
| # Check for SSE2 support | ||
| check_cxx_compiler_flag("-msse2" SSE2_SUPPORTED) |
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.
All of this assumes the compiling machine has the same arch as the executing machine.
| # Check for AVX2 support | ||
| check_cxx_compiler_flag("-mavx512" AVX512_SUPPORTED) | ||
| if(AVX512_SUPPORTED) | ||
| message(STATUS "AVX512 is supported") |
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.
This means AVX512 is supported by the compiler, not that it's also supported by the CPU.
|
Thanks for the feedback! You are right. Let me check if I can find time to implement on-demand AVX512. I'll update this PR once it's ready. |
Pull Request Details
Description
AVX2 support is implemented for uhd::convert. It was previously limited with sse2. It provides performance improvements for data type conversion.
Related Issue
N/A
Which devices/areas does this affect?
Affects the uhd::convert data conversion performance.
Testing Done
Testing is done using the tests written previously by UHD developers. It passes all previous tests and there is no need for new tests.
Checklist
MPM compat, noc_shell, specific RFNoC block, ...)