All checks were successful
ci / fmt (pull_request) Successful in 20s
bench / build (pull_request) Successful in 1m15s
ci / clippy (pull_request) Successful in 1m40s
ci / doc (pull_request) Successful in 2m6s
bench / measure (pull_request) Successful in 2m51s
ci / test (pull_request) Successful in 7m45s
quantus/miner#3. New crate, nothing in engine-gpu touched. - kernels/mining.cu: the same host contract and sponge schedule as mining_u64.wgsl (host midstate, low-256-bit nonce increments, lazy second squeeze), bit-exact with pow_core. The field multiply is __umul64hi plus a plain multiply and one reduction, instead of four 32-bit partials with carry reconstruction. - build.rs: generates poseidon2_constants.cuh from qp-poseidon-constants (a hash change at origin is a dependency bump, never a hand-copied table) and, when nvcc is present, compiles one fat binary with cubins for sm_86/89/120 plus compute_120 PTX. Without nvcc it writes an empty image, the crate still builds, and CudaEngine::try_new fails with a clear message so the miner falls back to wgpu. - lib.rs: CudaEngine with the same batch loop, cancellation, thread-local device assignment, metrics (kernel label "cuda") and stale accounting as engine-gpu. cudarc 0.19 with dynamic loading; no link-time CUDA dependency. - miner-service: resolve_gpu_configuration tries CUDA first unless --gpu-engine wgpu; --gpu-engine cuda makes its absence an error. miner-cli gains the flag on serve and benchmark (MINER_GPU_ENGINE). - bench-harness: --engine auto|cuda|wgpu. - deploy.yaml: matrix rows carry the kernel validate expects; a wgpu fallback on a CUDA host now fails the deploy instead of passing at a fraction of the hashrate. Measured on quadbrat (RTX 3060, 130 W, miner paused, 2 x 10 s windows, parity 5/5 verified against CPU): wgpu 37.3 MH/s, CUDA 59.5 MH/s (1.59x). Grid sizing 8192 threads/SM or more is flat; 2048 loses 10%. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
57 lines
1.7 KiB
TOML
57 lines
1.7 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/bench-harness", # lair: quantus/miner#2
|
|
"crates/engine-cpu",
|
|
"crates/engine-cuda", # lair: quantus/miner#3
|
|
"crates/engine-gpu",
|
|
"crates/metrics",
|
|
"crates/miner-cli",
|
|
"crates/miner-service",
|
|
"crates/miner-telemetry",
|
|
"crates/pool-service",
|
|
"crates/pow-core",
|
|
"crates/quic-transport",
|
|
"crates/solver-wasm",
|
|
]
|
|
default-members = ["crates/miner-cli"]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
edition = "2021"
|
|
authors = ["Quantus Network"]
|
|
description = "Quantus External Miner Workspace"
|
|
version = "4.0.2"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1"
|
|
clap = { version = "4.5", features = ["derive", "env"] }
|
|
codec = { version = "3.6.12", default-features = false, package = "parity-scale-codec", features = ["derive", "std"] }
|
|
crossbeam-channel = "0.5"
|
|
env_logger = "0.10"
|
|
hex = { version = "0.4.3", features = ["alloc"] }
|
|
log = { version = "0.4.22", default-features = false }
|
|
num-bigint = { version = "0.4", features = ["rand"] }
|
|
num-traits = "0.2"
|
|
num_cpus = "1.16"
|
|
primitive-types = { version = "0.13.1", default-features = false }
|
|
qp-poseidon-core = { version = "3.1.0", default-features = false }
|
|
qpow-math = { git = "https://github.com/Quantus-Network/chain.git", tag = "v0.7.1-q-day-2", package = "qpow-math", default-features = false }
|
|
quantus-miner-api = "0.3.0"
|
|
rand = { version = "0.9", default-features = false, features = ["std", "std_rng", "thread_rng"] }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = { version = "1.0.132", default-features = false }
|
|
thiserror = "1"
|
|
tokio = { version = "1.36", features = ["full"] }
|
|
warp = "0.3"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
debug = false
|
|
incremental = false
|
|
|
|
[profile.dev]
|
|
opt-level = 1
|