x86-64, pop, popcnt, win-32bit, Intel, x86-32, arm64, amd64, modern, vnni, old, bmi2, m1, apple silicon, sse4, pgo, pext, ... ?, .... ?!, .....??
What is this all about ? Why all these symbols ? What are the markings needed for ?
I just want to use the right chess engine for my computer, and it should work !
And you're right, that's how it should be. But it usually isn't.
How-To is intended for inexperienced users.
The chess engine should run without any fuss on your computer.
You use Linux, download the engine for that operating system, install it in your favorite GUI, and it should work. And you shouldn't care if your Linux is 32 or 64 bit, or if your processor is Intel, AMD or another eg. from the ARM family. The engine should work.
But... this is usually not the case!
When you use friendly chess software that automatically selects the right chess engine for your computer, then it is as it should be. Technology should help, make it easier, make it convenient to use the capabilities of the software and the chess engine.
When you wish to use, for example, the offer of a well-known commercial engine manufacturer or the benefits of open source, download a free chess engine and use it, you should often know which version to choose. Otherwise, you will be left with the trial-and-error method or searching for answers on the Internet.
From the perspective of the last few decades, although chess engines are at an increasingly high level, their manufacturers and developers still force ordinary users into undesirable choices.
You buy or download a free chess engine, it should run on your computer without any compilation. That's how it should be...
Why is this important ?
Because if you choose wrongly, at worst the chess engine will not work, and at best the chess engine will work and play at a lower level and with less power than it could.
This How to is intended to give you the knowledge that will enable you to choose the most suitable chess engine for your Linux.
We will use the official version of the Stockfish chess engine to show all the nuances of the selection.
Always download chess engines from safe places on the web with a good and established reputation.
Before I start this How to for good, I will write that if you have obtained a chess engine from a safe source, you are an inexperienced user, and you want to have a working chess engine quickly and easily, then:
first choose the version with avx2 in the name, because it's giving significant extra speed and power for most 64-bit computers made since 2013 (AMD or Intel CPU's).
or... just run one by one and see if it works :)
Contrary to what you might think, this is a relatively safe way to check the acquired chess engine(s), but not the least effective one, since even if any of them will allow you to run and work, it will not be optimally selected for your computer. Nevertheless, it is a way.
It is worth knowing that the chess engine:
Designed for a specific operating system, such as Linux, by default will not work under any other, such as Mac or Windows.
Designed for a specific architecture usually will not work on another architecture, e.g. Linux x86-64 will not work on Linux arm64 and vice versa. There are some exceptions here, e.g., the ability to run Windows 32-bit engines on Windows 64-bit, the ability to run Mac engines compiled for older Intel processors in a Mac environment with an Apple Silicon processor, and so on.
Let's move on to the substance.
The choice starts with a simple thing - choosing a chess engine for Linux.
From the dedicated page you can download Stockfish 15. 1 or directly - below.
If you are using Linux, choose the engine for Linux.
If you are using Linux, do not get the engine for Mac.
If you are using Linux, do not get the engine for Windows.
etc.
Now you should choose the version suitable for your Linux.
If the version of your Linux distribution is based on ARM architecture, then choose Stockfish-15.1_Linux_ARM.7z
If the version of your Linux distribution is based on x64 architecture (64 bit), then choose Stockfish-15.1_Linux_x64.7z
If you don't know what Linux distribution you're using, go to the Linux Handbook page.
What happens if you choose wrong ?
Stockfish will not start.
#2.1
If you are using ARM-based Linux, then when you open the Stockfish-15.1_Linux_ARM.7z archive, you will see the following:
Given the specifications of your ARM-based Linux, the choice is easy: Stockfish-15.1_Linux_ARM.
Chess engines for Linux with ARM processor may also have additions in the name:
arm32, arm64
armv7, armv7-neon, armv8
arrch32, arrch64
Today's chess engine compilations for ARM-based Linux are mostly in 64-bit architecture.
To get Stockfish compiler information, after launching it, type the compiler command and confirm with Enter.
The file command can also be helpful.
Stockfish armv8 will be better than the armv7 version.
Stockfish arm64 will be better than the arm32 version.
etc.
The most suitable version of Stockfish will be the one that will allow to run, work without problems and will be the fastest.
That's the end of How to. Congratulations!
You've chosen the right version for your ARM-based Linux.
#2.2.
If you are using x64-based Linux, then when you open the Stockfish-15.1_Linux_x64.7z archive, you will see the following:
Open and choose the stockfish_15.1_linux_x64 folder if you are using an old computer. By old computer I mean a machine from 2007 or older. In this folder is stockfish-ubuntu-20.04-x86-64 which, although the slowest and weakest, is designed to run on x64-based Linux.
Now, I offer you a little experiment.
Please check the other versions of Stockfish to see if they will run on your computer and to see which one is the fastest.
Stockfish, which has bmi2 in its name, will probably be the fastest and strongest version for your computer.
Stockfish, which has avx2 in its name, will probably be of very similar speed and strength to the bmi2 version.
Stockfish that has popcnt or modern in its name will probably be a slower than the bmi2 and avx2 versions but faster (from a few to several percent) and stronger than the stockfish-ubuntu-20.04-x86-64 version.
How exactly to check which of the above-mentioned versions is the fastest ?
Run Stockfish, type the bench command and press Enter key.
By doing so, you will launch the Stockfish internal benchmark, which will present the result on the screen after a while.
If Stockfish does not start, it means that this version is not supported by your computer and you should choose another one.
Here is the result of the stockfish-ubuntu-20.04-x86-64 benchmark: 432827 Nodes/second.
Here is the result of the stockfish-ubuntu-20.04-x86-64-modern benchmark: 511564 Nodes/second.
Depending on the speed of your x64-based Linux, the benchmark results you will see may differ from those I presented.
The most suitable version of Stockfish will be the one that will allow to run, work without problems and will be the fastest.
To get Stockfish compiler information, after launching it, type the compiler command and confirm with Enter.
The file command can also be helpful.
If you are in the process of choosing another Linux chess engine that does not offer the bench command, then the gradation of engine speed is this:
vnni512, vnni256, avx512, avxvnni
Are the fastest and strongest versions.
bmi2, avx2
Very fast and strong versions.
popcnt, popc, pop, modern, sse41, sse4.1, sse4.2, ...
Are the versions that provide good speed and strength.
ssse3, sse3
Are the versions that provide average speed and strength.
x86-64, x64, amd64, sse2, sse, legacy
Are the slower and weakest versions, but provide maximum compatibility allowing the engine to run even on the oldest 64-bit Linux.
I have described the most important of these, which are the most commonly used and have the biggest impact on the best choice of chess engine.
That's the end of How to. Congratulations!
You've chosen the right version for your x64-based Linux.
Always download chess engines from safe places on the web with a good and established reputation.
In the Files area you will find free chess engines for download.
Comments