Titboards

From Chessprogramming wiki
Revision as of 13:35, 20 September 2024 by Callum Moss (talk | contribs) (Added a reference to new titboard engine (TDFA), as well as some new data on speed comparison between titboards and magic bitboards. Clarified the explanation for why titboards are not commonly used.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Home * Board Representation * Bitboards * Sliding Piece Attacks * Titboards

Titboards,
a bitboard-based move generation technique invented by Zach Wegner [1] and first implemented by Malik Tremain [2]. Titboards are based on an extension of bitboards to ternary boards, hence the name ("bit" means binary digit, "tit" mean ternary digit). Titboards are only used for move generation, not for any other purposes that typical bitboard attack-getters will be used for.

The idea of titboards is to eliminate bitscans. Typical bitboard move generation techniques generate a bitboard, intersect it with the set of allowable squares (empty or enemy-occupied), and then serialize that into a list of moves. Titboards take a bitboard occupancy for each side for just one rank, file, or diagonal, and convert them to ternary representations and add them together. This index can determine which squares can actually be moved to, instead of just attacked. It is used in a lookup table of 3^7=2187 entries per direction per square.

Titboards are not typically used (there is one known engine that implements them [2]). This is because they are currently slower than modern alternatives while being harder to implement. They require a large look-up table (~8.9 MB) and they work very differently from modern generation techniques likes Magic Bitboards, where they require each direction to be calculated individually {File, Rank, Diagonal, Anti-Diagonal}. For each direction they require the input of (square, us, them), as a pose to (square, occupied) which is more commonly used.

Speed

Testing shows that titboards have no speed advantage over magic bitboards on modern hardware, however, the gap seemingly narrows on older CPUs that offer less efficient bitscan operations. A full array of results can be found here[3].

CPU: AMD Ryzen 9 5950X 16-Core Processor

Titboard perft group:
All tests completed with mean nps: 22290500

Pext perft group:
All tests completed with mean nps: 40633688

Magic Bitboard perft group:
All tests completed with mean nps: 37989088
CPU: Ryzen 5 5600x
Titboard perft group:
All tests completed with mean nps: 21250050

Pext perft group:
All tests completed with mean nps: 36773955

Magic Bitboard perft group:
All tests completed with mean nps: 34421651

Forum Posts

Re: Yet another new bitboard move generation method by Harm Geert Muller, Winboard Forum, October 01, 2006 [4]

References

Up one level