mirror of
https://github.com/pseXperiments/icicle.git
synced 2026-01-08 23:17:54 -05:00
icicle-babybear@2.1.0 icicle-bls12-377@2.1.0 icicle-bls12-381@2.1.0 icicle-bn254@2.1.0 icicle-bw6-761@2.1.0 icicle-core@2.1.0 icicle-cuda-runtime@2.1.0 icicle-grumpkin@2.1.0 icicle-hash@2.1.0 icicle-stark252@2.1.0 Generated by cargo-workspaces
Rust Bindings
icicle-core defines all interfaces, macros and common methods.
icicle-cuda-runtime defines DeviceContext which can be used to manage a specific GPU as well as wrapping common CUDA methods.
icicle-curves implements all interfaces and macros from icicle-core for each curve. For example icicle-bn254 implements curve bn254. Each curve has its own build script which will build the CUDA libraries for that curve as part of the rust-toolchain build.
Building a curve and running tests
Enter a curve implementation.
cd icicle-curves/icicle-bn254
To build
cargo build --release
The build may take a while because we are also building the CUDA libraries for the selected curve.
To run benchmarks
cargo bench
To run test
cargo test