You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, SIMD is isolated to the FFT libraries that is later used for digital image correlation. For instance, PocketFFT uses GCC vector extensions as a means for portable SIMD instructions for compilers that use GCC. However, some architectures are not fully supported using GCC vector extensions along with requiring a GCC-compatible compiler. While this may not be an issue on UNIX-like systems, this can be an issue on Windows. This is mainly attributed to Windows not shipping with a compiler and MinGW having some compatibility issues since they cannot use MSVC import libs for Microsoft runtime libraries due to license restrictions. As such, I would like to investigate using Google's Highway SIMD library as a portable means for SIMD instructions while allowing for more SIMD architectures and dynamic dispatch. Due to the structure of the PocketFFT library, this may be a 15 minute change and a few hours of debugging and testing to ensure it works as advertised.
Solutions
We could replace __attribute__(vector_size(N, T)) with Highway vectors so MSVC compilers on Windows can exploit SIMD for FFTs.
or Require GCC-compatible compilers (Intel ICC, Clang-cl, MinGW) for SIMD which means no SIMD optimizations for MSVC
The text was updated successfully, but these errors were encountered:
Preface
Currently, SIMD is isolated to the FFT libraries that is later used for digital image correlation. For instance, PocketFFT uses GCC vector extensions as a means for portable SIMD instructions for compilers that use GCC. However, some architectures are not fully supported using GCC vector extensions along with requiring a GCC-compatible compiler. While this may not be an issue on UNIX-like systems, this can be an issue on Windows. This is mainly attributed to Windows not shipping with a compiler and MinGW having some compatibility issues since they cannot use MSVC import libs for Microsoft runtime libraries due to license restrictions. As such, I would like to investigate using Google's Highway SIMD library as a portable means for SIMD instructions while allowing for more SIMD architectures and dynamic dispatch. Due to the structure of the PocketFFT library, this may be a 15 minute change and a few hours of debugging and testing to ensure it works as advertised.
Solutions
__attribute__(vector_size(N, T))
with Highway vectors so MSVC compilers on Windows can exploit SIMD for FFTs.The text was updated successfully, but these errors were encountered: