# bullet
A CUDA/CPU NN Trainer, used to train NNUE-style networks for [akimbo](https://github.com/jw1912/akimbo). Also used by many other engines, including: - [Alexandria](https://github.com/PGG106/Alexandria) - [Altair](https://github.com/Alex2262/AltairChessEngine) - [Carp](https://github.com/dede1751/carp) - [Midnight](https://github.com/archishou/MidnightChessEngine) - [Obsidian](https://github.com/gab8192/Obsidian) - [Stormphrax](https://github.com/Ciekce/Stormphrax) - [Willow](https://github.com/Adam-Kulju/Willow) - [Viridithas](https://github.com/cosmobobak/viridithas) ### Currently Supported Games: - Chess - Ataxx Raise an issue for support of a new game. ### Usage Import the crate with ```toml bullet = { package = "bullet_lib", features = ["cuda"] } ``` Check out the [wiki](https://github.com/jw1912/bullet/wiki/2.-Getting-Started-with-bullet) and [examples](/examples) to see how to use the crate. ### Utilities You can build `bullet-utils` with `cargo b -r --package bullet-utils`, to do the following: - Convert Data - Interleave Multiple Data Files - Shuffle Data Files - Validate Data Files Use `./target/release/bullet-utils[.exe] help` to see specific usage. ### Currently Supported Backends: #### Default CPU backend **not intended for serious training use**. It is suitable for training small networks or various utilities, such as loading nets to requantise them or test their output on specific positions. #### CUDA The "first class" supported backend. To compile to target CUDA you need to enable the `cuda` feature, as demonstrated in the [wiki](https://github.com/jw1912/bullet/wiki/2.-Getting-Started-with-bullet).