Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,15 @@ perft-epd: (build-target-release "byte-knight")
[doc('Run perft benchmark over the EPD test suite')]
[group('chess')]
[group('performance')]
perft-bench: (build-target-release "perft-bench")
perft-bench file='data/standard.epd': (build-target-release "perft-bench")
echo "Running perft benchmark..."
target/release/perft-bench -e data/standard.epd
target/release/perft-bench -e {{ file }}

[doc('Run criterion benchmarks')]
[group('chess')]
[group('performance')]
bench:
cargo bench -p chess

[doc('Generate magic numbers use for magic bitboards')]
[group('chess')]
Expand Down
2 changes: 1 addition & 1 deletion chess/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ thiserror = { workspace = true }
criterion = { workspace = true, features = ["html_reports"] }

[[bench]]
name = "sliding_piece_moves"
name = "benchmarks"
harness = false
10 changes: 10 additions & 0 deletions chess/benches/benchmarks.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
use criterion::{criterion_group, criterion_main};

use crate::{move_gen::move_gen_benchmark, sliding_piece_moves::sliding_piece_benchmark};

mod move_gen;
mod sliding_piece_moves;

criterion_group!(attacks, sliding_piece_benchmark);
criterion_group!(move_gen, move_gen_benchmark);
criterion_main!(attacks, move_gen);
13 changes: 13 additions & 0 deletions chess/benches/move_gen.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
use chess::{board::Board, move_generation};
use criterion::Criterion;

pub fn move_gen_benchmark(c: &mut Criterion) {
let board = Board::from_fen("R6R/3Q4/1Q4Q1/4Q3/2Q4Q/Q4Q2/pp1Q4/kBNN1KB1 w - - 0 1")
.expect("Invalid FEN");

c.bench_function("move-gen", |b| {
b.iter(|| {
let _moves = move_generation::generate_legal_moves(&board, chess::moves::MoveType::All);
});
});
}
7 changes: 2 additions & 5 deletions chess/benches/sliding_piece_moves.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
use chess::{attacks, bitboard_helpers::next_bit, board::Board, pieces::Piece, side::Side};
use criterion::{Criterion, criterion_group, criterion_main};
use criterion::Criterion;

pub fn sliding_piece_benchmark(c: &mut Criterion) {
let board = Board::from_fen("R6R/3Q4/1Q4Q1/4Q3/2Q4Q/Q4Q2/pp1Q4/kBNN1KB1 w - - 0 1").unwrap();
let mut queen_bb = *board.piece_bitboard(Piece::Queen, Side::White);
let next_queen = next_bit(&mut queen_bb);
c.bench_function("test", |b| {
c.bench_function("queen attacks", |b| {
b.iter(|| attacks::queen(next_queen as u8, board.all_pieces()))
});
}

criterion_group!(benches, sliding_piece_benchmark);
criterion_main!(benches);
6 changes: 6 additions & 0 deletions data/disservin_bench.epd
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 ;D7 3195901860
r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - ;D5 193690690
8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - ;D7 178633661
r3k2r/Pppp1ppp/1b3nbN/nP6/BBP1P3/q4N2/Pp1P2PP/R2Q1RK1 w kq - 0 1 ;D6 706045033
rnbq1k1r/pp1Pbppp/2p5/8/2B5/8/PPP1NnPP/RNBQK2R w KQ - 1 8 ;D5 89941194
r4rk1/1pp1qppp/p1np1n2/2b1p1B1/2B1P1b1/P1NP1N2/1PP1QPPP/R4RK1 w - - 0 1 ;D5 164075551
2 changes: 1 addition & 1 deletion engine-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "byte-knight"
version = "3.0.0"
version = "4.0.0"
edition = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion engine/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "engine"
version = "3.0.0"
version = "4.0.0"
edition = "2024"


Expand Down
Loading