-
Notifications
You must be signed in to change notification settings - Fork 34
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
Support for Highway SIMD? #20
Comments
Thank you for the suggestion! I'm not totally sure whether this would be worth the effort, since |
Hmm... I wonder if the ducc version of pocketfft can be Jerry-rigged to use Highway? One of the main reason why I plan on using Highway for SIMD support is because I plan on implementing a custom linalg library for particle image velocimetry (PIV), more specifically for the OpenPIV organization. However, I must admit that I do not know much about the experimental SIMD module from the c++ standard library. Perhaps, I will investigate into it further as long as it supports c++17 (the version of c++ that I will be using for the current projects). Or, I could also include an optional FFTW-f port for the Windows folks since Windows is the only offending OS that is currently causing issues (mostly due to Microsoft license restrictions for their runtime library import libs which causes limited support for third-party compilers). |
I think the chances are quite good for using Highway as a "backend"; in principle all that's needed is listed atthe bottom of
Of course, all the required semantics need to be there ... but I think this is much easier to achieve than adjusting the original |
Preface
Google Highway provides a short and concise solution for targeting SIMD on multiple platforms. Although Highway supports dynamic dispatching, the main area of research is static dispatching via compiler flags. This enables the use of vector extensions using MSVC among others that do not support or have limited support of GNU GCC vector extensions. Additionally, Highway is also c++11 compliant.
Context
I think adding a port for Highway vector extensions would be nice since it allows for a more consistent and extensive SIMD experience. Unfortunately, it appears that a significant chunk of code may need to be rewritten to allow for Highway's vector extensions. Although I am willing to put in effort on my behalf to get a working solution, my knowledge of how your version of pocketfft works and how to change the SIMD instructions is limited. This means that I would more than likely need help since you would undoubtedly have more knowledge on the implementation details.
Alternatives
Do nothing.
The text was updated successfully, but these errors were encountered: