mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-21 17:46:26 +08:00
Remove precomputed SquareBB
Bit-shifting is a single instruction, and should be faster than an array lookup on supported architectures. Besides (ever so slightly) speeding up the conversion of a square into a bitboard, we may see minor general performance improvements due to preserving more of the CPU's existing cache. passed STC: LLR: 2.95 (-2.94,2.94) <-1.75,0.25> Total: 47280 W: 12469 L: 12271 D: 22540 Ptnml(0-2): 128, 4893, 13402, 5087, 130 https://tests.stockfishchess.org/tests/view/63c5cfe618c20f4929c5fe46 Small speedup locally: ``` Result of 20 runs ================== base (./stockfish.master ) = 1752135 +/- 10943 test (./stockfish.patch ) = 1763939 +/- 10818 diff = +11804 +/- 4731 speedup = +0.0067 P(speedup > 0) = 1.0000 CPU: 16 x AMD Ryzen 9 3950X 16-Core Processor ``` Closes https://github.com/official-stockfish/Stockfish/pull/4343 Bench: 4106793
This commit is contained in:
committed by
Joost VandeVondele
parent
a08b8d4e97
commit
734315ff30
@@ -27,7 +27,6 @@ namespace Stockfish {
|
||||
uint8_t PopCnt16[1 << 16];
|
||||
uint8_t SquareDistance[SQUARE_NB][SQUARE_NB];
|
||||
|
||||
Bitboard SquareBB[SQUARE_NB];
|
||||
Bitboard LineBB[SQUARE_NB][SQUARE_NB];
|
||||
Bitboard BetweenBB[SQUARE_NB][SQUARE_NB];
|
||||
Bitboard PseudoAttacks[PIECE_TYPE_NB][SQUARE_NB];
|
||||
@@ -82,9 +81,6 @@ void Bitboards::init() {
|
||||
for (unsigned i = 0; i < (1 << 16); ++i)
|
||||
PopCnt16[i] = uint8_t(std::bitset<16>(i).count());
|
||||
|
||||
for (Square s = SQ_A1; s <= SQ_H8; ++s)
|
||||
SquareBB[s] = (1ULL << s);
|
||||
|
||||
for (Square s1 = SQ_A1; s1 <= SQ_H8; ++s1)
|
||||
for (Square s2 = SQ_A1; s2 <= SQ_H8; ++s2)
|
||||
SquareDistance[s1][s2] = std::max(distance<File>(s1, s2), distance<Rank>(s1, s2));
|
||||
|
||||
Reference in New Issue
Block a user