[package]
edition = "2021"
name = "stwo-gpu"
version = "2.0.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "GPU-accelerated Circle STARK prover and verifier — ObelyZK fork of STWO with CUDA/Metal backend"
readme = false
license = "Apache-2.0"
repository = "https://github.com/Bitsage-Network/obelyzk.rs"
[package.metadata.cargo-machete]
ignored = ["stwo-std-shims"]
[features]
cuda-runtime = [
"gpu",
"parallel",
"cudarc",
"aes-gcm",
"getrandom",
]
default = ["std"]
gpu = []
multi-gpu = ["cuda-runtime"]
parallel = [
"rayon",
"indexmap/rayon",
]
prover = [
"std",
"tracing/attributes",
]
slow-tests = []
std = [
"blake2/std",
"blake3/std",
"hex/std",
"itertools/use_std",
"indexmap/std",
"num-traits/std",
"starknet-crypto/std",
"thiserror/std",
"tracing/std",
"serde/std",
"tracing-subscriber/std",
"stwo-std-shims/std",
]
tracing = []
[lib]
name = "stwo_gpu"
crate-type = ["lib"]
path = "src/lib.rs"
bench = false
[[example]]
name = "cuda_streams_benchmark"
path = "examples/cuda_streams_benchmark.rs"
[[example]]
name = "e2e_starknet_proof"
path = "examples/e2e_starknet_proof.rs"
[[example]]
name = "gpu_real_stark_proof"
path = "examples/gpu_real_stark_proof.rs"
[[example]]
name = "gpu_vs_simd_real_benchmark"
path = "examples/gpu_vs_simd_real_benchmark.rs"
[[example]]
name = "h100_comprehensive_benchmark"
path = "examples/h100_comprehensive_benchmark.rs"
[[example]]
name = "large_proof_benchmark"
path = "examples/large_proof_benchmark.rs"
[[example]]
name = "multi_gpu_benchmark"
path = "examples/multi_gpu_benchmark.rs"
[[example]]
name = "obelysk_production_benchmark"
path = "examples/obelysk_production_benchmark.rs"
[[example]]
name = "true_multi_gpu_benchmark"
path = "examples/true_multi_gpu_benchmark.rs"
[[test]]
name = "gpu_integration_tests"
path = "tests/gpu_integration_tests.rs"
[[test]]
name = "gpu_unit_tests"
path = "tests/gpu_unit_tests.rs"
[[bench]]
name = "barycentric_eval_at_point"
path = "benches/barycentric_eval_at_point.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "bit_rev"
path = "benches/bit_rev.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "eval_at_point"
path = "benches/eval_at_point.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "eval_at_point_by_folding"
path = "benches/eval_at_point_by_folding.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "fft"
path = "benches/fft.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "field"
path = "benches/field.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "fri"
path = "benches/fri.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "lookups"
path = "benches/lookups.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "merkle"
path = "benches/merkle.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "pcs"
path = "benches/pcs.rs"
harness = false
required-features = ["prover"]
[[bench]]
name = "prefix_sum"
path = "benches/prefix_sum.rs"
harness = false
required-features = ["prover"]
[dependencies.aes-gcm]
version = "0.10"
optional = true
[dependencies.blake2]
version = "0.10.6"
default-features = false
[dependencies.blake3]
version = "1.5.0"
default-features = false
[dependencies.bytemuck]
version = "1.14.3"
features = [
"derive",
"extern_crate_alloc",
]
default-features = false
[dependencies.cfg-if]
version = "1.0.0"
[dependencies.dashmap]
version = "6.1.0"
[dependencies.educe]
version = "0.5.0"
[dependencies.fnv]
version = "1.0.7"
default-features = false
[dependencies.getrandom]
version = "0.2"
optional = true
[dependencies.hashbrown]
version = ">=0.15.2"
features = ["serde"]
[dependencies.hex]
version = "0.4.3"
features = ["alloc"]
default-features = false
[dependencies.indexmap]
version = "2.10.0"
default-features = false
[dependencies.itertools]
version = "0.12"
features = ["use_alloc"]
default-features = false
[dependencies.lazy_static]
version = "1.4"
[dependencies.num-traits]
version = "0.2.19"
default-features = false
[dependencies.rand]
version = "0.8.5"
features = ["small_rng"]
default-features = false
[dependencies.rayon]
version = "1.10.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false
[dependencies.starknet-crypto]
version = "0.6.2"
features = ["alloc"]
default-features = false
[dependencies.starknet-ff]
version = "0.3.7"
features = [
"alloc",
"serde",
]
default-features = false
[dependencies.stwo-std-shims]
version = "1.0.0"
default-features = false
[dependencies.thiserror]
version = "2.0.12"
default-features = false
[dependencies.tracing]
version = "0.1.40"
default-features = false
[dependencies.tracing-subscriber]
version = "0.3.18"
default-features = false
[dev-dependencies.aligned]
version = "0.4.2"
[dev-dependencies.test-log]
version = "0.2.15"
features = ["trace"]
[target.'cfg(all(target_family = "wasm", not(target_os = "wasi")))'.dev-dependencies.wasm-bindgen-test]
version = "0.3.43"
[target.'cfg(all(target_os = "linux", target_arch = "x86_64"))'.dependencies.cudarc]
version = "0.11"
features = [
"driver",
"nvrtc",
"cuda-12050",
]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
version = "0.5.1"
features = ["html_reports"]
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.criterion]
version = "0.5.1"
features = ["html_reports"]
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.cudarc]
version = "0.11"
features = [
"driver",
"nvrtc",
]
optional = true
[lints.clippy]
missing_const_for_fn = "warn"
[lints.rust]
future-incompatible = "deny"
nonstandard-style = "deny"
rust-2018-idioms = "deny"