Add optional __constant__ symbols for G2 kernel constants and prefer
these over parameter pointers when available. Update host code to
attempt populating these constant symbols for faster access.
Provide example .env files targeting typical block/thread configurations
for RTX 3060/3080/3090/4080/4090/5090 and A5000/A6000.
Include guidance on tuning iterations, pinned buffers, and kernel modes.
Document usage with systemd and manual export for ease of deployment.
Reorder code to launch G2 kernel with on-device SHA3 and early-exit
handling separately from G1 kernel that returns y values. Rename index
variables for clarity and adjust logging to measure kernel execution
time in both branches.
- Implemented qpow_montgomery_g2_kernel for on-device SHA3-512 hashing -
Added early-exit flag and linear index tracking in G2 kernel -
Integrated G2 kernel launch and result handling in Rust CUDA engine -
Introduced MINER_CUDA_MODE=g2 config option to select G2 kernel - Added
MINER_CUDA_PINNED option for pinned host buffers and async copies -
Updated README with new runtime config knobs and G2 usage instructions
- Allow forcing PTX or CUBIN image via MINER_CUDA_IMAGE env var - Enable
selecting G2 kernel with fallback to G1 via MINER_CUDA_MODE=g2 -
Allocate device constant buffers once outside loop - Implement parallel
host SHA3 over GPU results using MINER_CUDA_HASH_THREADS - Update README
with new env vars and usage notes
- Add engine-gpu-cuda crate with basic CUDA kernel (qpow G1) - Implement
CUDA build.rs compiling .cu to PTX when "cuda" feature enabled -
Integrate GPU engine into miner-service with runtime CUDA availability
check - Add fallback to CPU engine in gpu-cuda until full GPU kernel
support is ready - Enable optional "cuda" feature in miner-cli and
miner-service crates
Implement CIOS multiplication using MULX, ADCX, and ADOX instructions
for x86_64 with BMI2 and ADX features detected at runtime. Fall back to
other implementations when features are unavailable.
- introduce new `engine-montgomery` crate implementing a 512-bit
fixed-width montgomery multiplication backend for qpow mining. - mirror
`cpu-fast` engine behavior and metrics for direct comparison. - add
runtime backend selection with portable and x86_64 bmi2/adx kernels. -
expose `--engine cpu-montgomery` cli option in miner-cli. - integrate
engine and metrics support in miner-service with feature gating. - add
engine backend info metric for observability and a/b testing.
- Verify Baseline and Fast CPU engines produce matching results - Test
Exhausted and Cancelled engine states with precise hash counts - Cover
miner-service request validation error branches - Test miner-service
HTTP endpoints for expected status codes - Confirm chunked mining sends
progress and completion messages
- Detect effective CPUs with cpuset awareness (cgroup v2/v1 fallback) -
Log detected cpuset mask or fallback info at startup (debug) - Expose
miner_effective_cpus Prometheus gauge (metrics feature) - Add
production-ready systemd unit and example CPU affinity overrides -
Include documentation for installation, overrides, and validation