lithander wrote: ↑Sat Apr 01, 2023 3:28 pm
But what's really nice is that it seems to perform on par with PEXT in a selfplay match. My theory is that in a real engine the cache is under higher pressure than when you just compute perft. And then the smaller lookup tables of KiSS give it an edge over PEXT and it catches up.
Here are 10K games at 5s + 500ms time control against Dangi's binary.
This is awesome news! - lithander even proved that higher nps in perft does not garuantee more engine nps (the hidden cost of cache contention) and engines do indeed need some form of TT.
Why? - pext will lookup a value and evict TT lines from cache. Now TT look ups need to go all the way to memory again.
Your movegen and the ones with lower or even 0 table size do bypass this - making engine nps higher!
This makes me want to add a random dram access in concurrently in my movegen comparison repo highlighting this difference and correcting this 'misranking' of nps in isolation vs cache contention environment. (Making me want to create a radar plot for all algos)
It is great to see that researchers and developers in the chess engine community continue to push the boundaries of what is possible! Especially replacing algorithms that were standard for the past 20 years or so.
Your algorithm is encircling pext and fancy magic in the radar plot so to speak.
dangi12012 wrote: ↑Sat Apr 01, 2023 7:41 pm
This is awesome news! - lithander even proved that higher nps in perft does not garuantee more engine nps (the hidden cost of cache contention) and engines do indeed need some form of TT.
Why? - pext will lookup a value and evict TT lines from cache. Now TT look ups need to go all the way to memory again.
Your movegen and the ones with lower or even 0 table size do bypass this - making engine nps higher!
This makes me want to add a random dram access in concurrently in my movegen comparison repo highlighting this difference and correcting this 'misranking' of nps in isolation vs cache contention environment. (Making me want to create a radar plot for all algos)
It is great to see that researchers and developers in the chess engine community continue to push the boundaries of what is possible! Especially replacing algorithms that were standard for the past 20 years or so.
Your algorithm is encircling pext and fancy magic in the radar plot so to speak.
Hi Daniel,
I just noticed your post. Thanks for the kind words. And I agree strongly that some kind of simulated TT needs to be included to arrive at the truth. However, there are hobby and tutorial engines that do not have a TT. So I think it needs to be done both ways.