Crate chess_vector_engine

Source
Expand description

§Chess Vector Engine

A fully open source, production-ready Rust chess engine that revolutionizes position evaluation by combining vector-based pattern recognition with advanced tactical search and NNUE neural network evaluation.

§Features

  • 🎯 Hybrid Evaluation: Combines pattern recognition with advanced tactical search
  • ⚡ Advanced Tactical Search: 14+ ply search with PVS, check extensions, and sophisticated pruning
  • 🧠 NNUE Integration: Efficiently Updatable Neural Networks for fast position evaluation
  • 🚀 GPU Acceleration: CUDA/Metal/CPU with automatic device detection and 10-100x speedup potential
  • 📐 Vector Position Encoding: Convert chess positions to 1024-dimensional vectors
  • 🎮 Full UCI Compliance: Complete chess engine with pondering, Multi-PV, and all standard UCI features
  • ⚡ Production Optimizations: 7 major performance optimizations for 2-5x overall improvement

§Quick Start

use chess_vector_engine::ChessVectorEngine;
use chess::Board;
use std::str::FromStr;

// Create a new chess engine
let mut engine = ChessVectorEngine::new(1024);

// Add some positions with evaluations
let board = Board::default();
engine.add_position(&board, 0.0);

// Find similar positions
let similar = engine.find_similar_positions(&board, 5);
println!("Found {} similar positions", similar.len());

// Get position evaluation
if let Some(eval) = engine.evaluate_position(&board) {
    println!("Position evaluation: {:.2}", eval);
}

§Open Source Features

All features are included in the open source release (MIT/Apache-2.0):

  • Advanced UCI Engine: Complete chess engine with pondering, Multi-PV, and all standard features
  • Professional Tactical Search: 14+ ply search with check extensions and sophisticated pruning
  • GPU Acceleration: CUDA/Metal/CPU support with automatic device detection
  • NNUE Networks: Neural network evaluation with incremental updates
  • Ultra-fast Loading: Memory-mapped files and optimized data structures
  • Vector Analysis: High-dimensional position encoding and similarity search
  • Opening Book: 50+ professional chess openings and variations

§Performance

  • 🚀 Ultra-Fast Loading: O(n²) → O(n) duplicate detection (seconds instead of hours)
  • 💻 SIMD Vector Operations: AVX2/SSE4.1/NEON optimized for 2-4x speedup
  • 🧠 Memory Optimization: 75-80% memory reduction with streaming processing
  • 🎯 Advanced Search: 2800+ nodes/ms with PVS and sophisticated pruning
  • 📊 Comprehensive Testing: 123 tests with 100% pass rate

§License

Licensed under either of:

at your option.

Re-exports§

pub use auto_discovery::AutoDiscovery;
pub use auto_discovery::FormatPriority;
pub use auto_discovery::TrainingFile;
pub use gpu_acceleration::DeviceType;
pub use gpu_acceleration::GPUAccelerator;
pub use lichess_loader::LichessLoader;
pub use lsh::LSH;
pub use manifold_learner::ManifoldLearner;
pub use nnue::BlendStrategy;
pub use nnue::EvalStats;
pub use nnue::HybridEvaluator;
pub use nnue::NNUEConfig;
pub use nnue::NNUE;
pub use opening_book::OpeningBook;
pub use opening_book::OpeningBookStats;
pub use opening_book::OpeningEntry;
pub use persistence::Database;
pub use persistence::LSHTableData;
pub use persistence::PositionData;
pub use position_encoder::PositionEncoder;
pub use similarity_search::SimilaritySearch;
pub use streaming_loader::StreamingLoader;
pub use tactical_search::TacticalConfig;
pub use tactical_search::TacticalResult;
pub use tactical_search::TacticalSearch;
pub use training::AdvancedSelfLearningSystem;
pub use training::EngineEvaluator;
pub use training::GameExtractor;
pub use training::LearningProgress;
pub use training::LearningStats;
pub use training::SelfPlayConfig;
pub use training::SelfPlayTrainer;
pub use training::TacticalPuzzle;
pub use training::TacticalPuzzleParser;
pub use training::TacticalTrainingData;
pub use training::TrainingData;
pub use training::TrainingDataset;
pub use ultra_fast_loader::LoadingStats;
pub use ultra_fast_loader::UltraFastLoader;
pub use variational_autoencoder::VAEConfig;
pub use variational_autoencoder::VariationalAutoencoder;
pub use uci::run_uci_engine;
pub use uci::run_uci_engine_with_config;
pub use uci::UCIConfig;
pub use uci::UCIEngine;

Modules§

ann
auto_discovery
gpu_acceleration
lichess_loader
lsh
manifold_learner
nnue
opening_book
persistence
position_encoder
similarity_search
streaming_loader
tactical_search
training
uci
ultra_fast_loader
variational_autoencoder

Structs§

ChessVectorEngine
Chess Vector Engine - Fully open source, production-ready chess engine with hybrid evaluation
HybridConfig
Hybrid evaluation configuration
MoveRecommendation
Move recommendation data
TrainingStats
Training statistics for the engine