SPCC: Testruns of Slow Chess 2.2 and Rubichess 1.7.3 finished

Discussion of computer chess matches and engine tournaments.

Moderators: hgm, Rebel, chrisw

User avatar
pohl4711
Posts: 2435
Joined: Sat Sep 03, 2011 7:25 am
Location: Berlin, Germany
Full name: Stefan Pohl

Re: SPCC: Testruns of Slow Chess 2.2 and Rubichess 1.7.3 finished

Post by pohl4711 »

As far as I know, no. Other engines have popcount compiles, only (named as "modern" in some cases (Stockfish)).
But I will be more careful, of course. In the future, I will try all compiles of a new engine or new engine-version on my AMD-machine and will use the fastest compile.
Because there are so much different compiles and even more names for them...really complicated. So, trying all compiles and choose the fastest is the best way to avoid any mistakes in the future.
RubiChess
Posts: 584
Joined: Fri Mar 30, 2018 7:20 am
Full name: Andreas Matthies

Re: SPCC: Testruns of Slow Chess 2.2 and Rubichess 1.7.3 finished

Post by RubiChess »

First: Thanks for testing!

Next release of RubiChess will also offer three binaries (bmi2/popcount/legacy). New and maybe interesting for other authors is a test I have implemented now that is executed at start of the engine comparing the binary with the machine (cpu features) it runs on and
- displays an error message if the machine is unable to run the binary (bmi2 binary on a non-bmi2 machine or popcount binary on a very old machine) and exits without crashing (like other engines do)
- displays a warning "bad performance" if the binary is not optimal for the machine (e.g. running the popcount or legacy binary on an intel bmi2 machine or running the bmi2 binary and AMD).
Edit: Just noticed that the engine also exits in the "bmi2 binary on AMD" case. Performance is just too bad.

This test uses the well documented cpuid api and can be seen here https://github.com/Matthies/RubiChess/b ... s.cpp#L280

Regards, Andreas
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: SPCC: Testruns of Slow Chess 2.2 and Rubichess 1.7.3 finished

Post by Alayan »

RubiChess wrote: Tue Aug 04, 2020 8:28 am First: Thanks for testing!

Next release of RubiChess will also offer three binaries (bmi2/popcount/legacy). New and maybe interesting for other authors is a test I have implemented now that is executed at start of the engine comparing the binary with the machine (cpu features) it runs on and
- displays an error message if the machine is unable to run the binary (bmi2 binary on a non-bmi2 machine or popcount binary on a very old machine) and exits without crashing (like other engines do)
- displays a warning "bad performance" if the binary is not optimal for the machine (e.g. running the popcount or legacy binary on an intel bmi2 machine or running the bmi2 binary and AMD).
Edit: Just noticed that the engine also exits in the "bmi2 binary on AMD" case. Performance is just too bad.

This test uses the well documented cpuid api and can be seen here https://github.com/Matthies/RubiChess/b ... s.cpp#L280

Regards, Andreas
An issue with such code is that it could handicap future testing.

For example, let's assume at some point AMD will come out with a CPU with direct hardware support for BMI2. Then, the BMI2 compile should be the fastest. Except Rubi will refuse to run it because it will detect "bmi2" and "amd".
RubiChess
Posts: 584
Joined: Fri Mar 30, 2018 7:20 am
Full name: Andreas Matthies

Re: SPCC: Testruns of Slow Chess 2.2 and Rubichess 1.7.3 finished

Post by RubiChess »

Alayan wrote: Tue Aug 04, 2020 9:26 am An issue with such code is that it could handicap future testing.

For example, let's assume at some point AMD will come out with a CPU with direct hardware support for BMI2. Then, the BMI2 compile should be the fastest. Except Rubi will refuse to run it because it will detect "bmi2" and "amd".
Correct. This test needs maintenance and even backporting to old releases if you want them run on new hardware.
I initially had some performance benchmark in the test that compared speed of pext slider attacks vs. magic bitmap attacks but that seemed a bit overengineered and I removed it.