OpenPIV / openpiv-c--qt

C++ with Qt frontend (superfast) version of OpenPIV
http://www.openpiv.net
GNU General Public License v3.0
20 stars 17 forks source link

SIMD support for Windows #47

Open ErichZimmer opened 2 months ago

ErichZimmer commented 2 months ago

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