What are instruction sets (such as bmi2 and avx2)?
Update, September 2026
Pikafish has now merged its instruction-set builds (following upstream Stockfish). The merged build is called universal, and the engine automatically chooses the instruction set based on your CPU, so users no longer need to choose one themselves.
A CPU engine relies on the CPU and needs to "communicate" with it. The instruction set is like the "way of communicating": the more efficient the communication, the faster the engine calculates.
Different instruction sets differ only in speed (similar to differences in hardware). To some extent, the instruction set determines the engine's search speed.
Note
The following is knowledge from the old wiki, and most people no longer need to read it.
For NNUE engines, vnni512, avx512, avx2 and bmi2 are faster than the other instruction sets. Which one is fastest depends on your CPU, and you can compare them with a bench speed test.
Most CPUs do not support vnni and avx512, and some older CPUs do not support avx2 and bmi2. If one can't be used, it can't be used.
Speed testing with bench
If you want to pick the fastest engine, you can test with bench. The steps are as follows:
Double-click the exe of each engine directly, and the window shown in the picture appears.

After opening the engine Then type
bench, as shown in the picture.
After typing bench Then press Enter. The result shown in the picture appears; look at the last number, where a larger value means higher speed.

Result
A single bench run may have some error in its speed, so you can try several times.
It is normal for some engines to fail to run; that just means your machine does not support that instruction set. Engines with different instruction sets differ only in speed, and any difference in strength shows up only through speed.
