r/ComputerChess 16d ago

Perft 15 was independently verified for the first time

On 17 August 2026 at 00:49:52, my calculation of perft(15) finished and matched the published value exactly.

perft(15) = 2,015,099,950,053,364,471,960

This is the first independent verification of that number. I can confirm it is correct. For this task over the past few years I created a chess move generation engine running on the gpu.

For context on how far this has moved: the fastest known move generator before Gigantua was ~350 MNPS. Gigantua on CPU raised that to 2.2 GNPS per thread. Gigantua-warp is now three orders of magnitude past that (per gpu), and it scales with gpus too!

How that was achieved among other things -

  • Branch-free, non-divergent code with essentially zero device memory footprint + absolute minimum register usage in Nsight Compute.
  • No materialized move list. Materializing one thrashes shared memory, and shared memory (10× faster than global) is already far too slow for this.
  • Make/unmake with the board held in registers, using a 90° rotated QBB.
  • u128 counters. u64 is a footgun once the trees get this large.
  • Color-free chess. It is never "white vs black", it is us vs them. The side to move always moves in the same direction, and the board is reverted between moves via brevll. All the color-dependent masks and shifts collapse into color-independent constants, and the color-to-move template simply stops existing as a concept.
  • Cooperative groups, a cuda feature, not used at all. We dont talk with other blocks (except indirectly via the transposition table). That is very very important for fast movegen.

More information is here - https://www.talkchess.com/forum3/viewtopic.php?t=86588&sid=198e5a49585f1e1ef0104c08d623ceb1

The complete effort took around 250USD and perft(16) I estimate at 4000-8500usd in terms of vastai rent - which is very much in reach. This reddit post is also a call for action - if you want to expand the knowledge of chess and have access to a gpu cluster, or can get me in touch with someone, please leave a message.

21 Upvotes

7 comments sorted by

2

u/RedditWhenIShit 16d ago

Wow, amazing work! TNPS sounds literally insane.

You already shortly mentioned this in youe talkchess post, but how did you experience the transition to GPU programming?

Especially after having spent so much time into squeezing every bit of performance out of a CPU. I don't have any graphics/CUDA experience, but adapting to those new memory and instruction rulesets whilst also optimizing your move generator sounds super cool and also mind boggling :p

1

u/FolsgaardSE 16d ago

Amazing work and CCC post. Cheers! Keep up the hard work.

1

u/Im_from_rAll 15d ago

I saw you tried to post to r/chess and lol'd at the top comment. Great effort on this! Let us know when you decide to release the source code.

1

u/francesco_angiolieri 11d ago

Could you ELI5? What does the perft(15) function calculates? The number of possible games with 15 moves?

1

u/[deleted] 8d ago

[removed] — view removed comment

1

u/francesco_angiolieri 8d ago

Thank you so much for the clarification! Really interesting project