evalboardchess.com
 2025-11-19   18:30 UTC


Evaluations are ongoing using the developer-package for stm32mp*

Some readings are required here.

Finaly, there should be available a special compiled version of openSTLinux,

optimized for usage with the chess-engine.

Let's see if this works...



The OS has been updated now for the stm32mp157-board to the latest available version openSTLinux v6.6 (scarthgap ) using the starter-package at first.

This is working fine as well, but also here I cannot allocate more than around 450 MB for hashtables ( what is in practise already much more than necessary ).

Next I will move on to the developer-package, which provides more options.

In detail I am only at the beginning of evaluations.


Although I have available the stm32mp257, the stm32mp157 is perfectly working with 32-bit-architecture ( armv7 ).

It will be used as "opponent" for the stm32mp257.

First tests have shown already, that running stockfish-17.1 on stm32mp157 is strong enough to hold at least a draw against older versions running on stm32mp257.

if desired ( and if the required skill is at hand ) it would be possible to make a complete chess-system, including a board with piece-recognition.

For me only the technical side is of interest.


There will be played some matches between Stockfish 17.1 and Stockfish 16.

First tests have shown that Stockfish 16 is the best opponent here, suggested moves are often equal as well.


I would like to dig much deeper into the topic of programming and the stuff related to the latest STM-boards.

A visit to the upcoming "embedded world" in Nuremberg, Germany in March is on top of the todo-list.

In the past I wasn't able to make a visit, although I always would have liked to do so.

Hopefully this will change next year.


After some research now it is clarified which linux-version is running on the mpu-boards.

Usefull linux-commands are "cat /etc/*release" or "uname -r [-a]".


For my stm32mp157-system this returns:

"stm32mp1 6.1.28 armv7    4.2.1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21".


For my stm32mp257-system this returns:

" 6.6.78 arch64   5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11".



It was possible now to increase the speed of the engines running on stm32mp257,

to what was expected compared to stm32mp157.


For some weeks I was using versions running perfect on stm32mp257,

but only with an speedup of ~ 70%.

Because not only the core of the stm32mp257 is running at higher frequency,

the stm32mp257 is supporting 64-bit as well, this was a bit strange of course.


For chess, having 64-bit-registers available, is best for modern bitmap-based chess-engines.

Because the chess-board has 64 squares, the whole chessboard can be represented by one 64-bit-integer and access is very fast.

In practise there are many 64-bit-variables in use by the engine, eg for coding the position of the individual pieces.

32-bit-processors are able to process 64-bit-integers as well, but there are always 2 registers required here, so the CPU needs more cycles to process the data.

As a result speed is slower.

For classical "mailbox-based" chess-programs, there is nearly no advantage using 64-bit-processors.


At first there were in use somewhat older versions of the Makefile, but this was the problem.

Now, there is an speedup of x3 up to x4 compared to stm32mp157, what makes a real difference.

The Stockfish-version 17.1 has been compiled again for the stm32mp157

using the latest makefile.

Here, I got a speedup of ~25%.


Some tests are ongoing regarding usage of c++23, c++20 and c++17.

After first evaluations code-size is a bit different, but there is only marginal difference in speed.


Compilation was possible also using the latest standard ( c++23 ),

although there are reported some warnings by the compiler that some constructs are deprecated here.


Here, a match between the 2 boards is in full swing ( still based on first versions ):




The STM32MP257 has 4 GB  RAM onboard.

So hashtables may be in use up to around 3.5 GB.

In practise the RAM available on the STM32MP157 ( 1 GB ) is already more than sufficient.


The engines are running quite fast, depth 20 will be usually reached within a few seconds.

According to status-monitor there are only around 5% in use from other processes like Python or weston using the default-OS from SD-card.

So, there would be a little speedup possible, if using a raw OS, but this can be neglected here.



For an chess-engine more cores are of advantage, so having more CPU-cores would be a plus.

The main-MPU on STMx57-boards has already 2 cores, both are in use by the chess-engine.

Of course it is well known that some processors have already up to 24 cores ( or even more ).

But for an evaluation-board this should be out of question.

However, it will be interesting what comes next from STM here...


The future of chess-engines will be AI-based, this is clearly demonstrated using NNUE-based versions of Stockfish.


Stockfish 17.1 is the latest release so far, the source-code has been compiled for the STM32MP157 ( including minor modifications required for playing games ).


Compared with Stockfish 16 the size of the .nnue-files has increased a lot.

There will be allocated now > 100 MB of RAM here for nnue-data only.

A first match has been played already between Stockfish 17 and Stockfish 16 on STM32MP157:

 


 



Move-input is done using a wireless keyboard, a mouse is used to control the cursor.

It is not very comfortable but working.


After the first match the number of nodes/s using Stockfish 17 is now around 1/2 compared with Stockfish 16.

Obviously, there will be much more "knowledge" processed, interestingly nearly the same depth will be reached nevertheless.

The matches played so far can be found in the GAMES-section.

 Amazing is the CCRL-rating at the time of writing: 3640 ELO.



Stay tuned...