Project uses Google Benchmark to test few intrinsics implementations agains MSVC max optimizations with /arch:AVX2. Instruction sets that are used in these examples are AVX and AVX2.
Example of running this benchmark on my PC (with Intel i7-10700k):
In examples I use 3 simple operations:
- Transform 32 chars to 32 normalized floats;
- Transform 32 int16s to 32 normalized floats;
- Transform 32 int32s to 32 normalized floats.
- You need Visual Studio 2022 (it might also work on older versions)
- Recursivly clone this repository (it contains subrepo vcpkg);
- Go to external/vcpkg and run 'bootstrap-vcpkg.bat';
- Run 'vcpkg install benchmark:x64-windows benchmark:x86-windows';
- Now you should be able to build and launch the program in any configuration;
- Tweak '/arch' setting in Project Settings depending on your CPU instruction set and/or add '_DEBUGMODE' macro if you don't want to run benchmark but do your own things in the main function instead.