Convert constants and inputs from big-endian to lane-LE byte order to
match SHA3 output layout, enabling correct XOR and comparison operations
with SHA3 digests stored in lane-LE format.
- Clean up and unify endian conversion and load/store helpers -
Implement device-side SHA3-512 with correct lane ordering - Add bytewise
big-endian XOR distance calculation and comparison - Optimize early-exit
with atomic flag and optional debug outputs - Remove duplicate/unused
code and improve readability
Enable sampler debugging via MINER_CUDA_SAMPLER env var to verify
host/device parity of sampler outputs, logging warnings on mismatch
Add example env file for RTX 3060 debug configuration
- Introduce constant memory variables and device buffers for sampler -
Initialize sampler in CudaEngine when MINER_CUDA_SAMPLER=1 - Change SHA3
kernel to output digest bytes in big-endian format - Add sample mismatch
metric counter
- Add `metrics` dependency and feature to engine-gpu-cuda crate -
Introduce constant memory for target and threshold values in CUDA kernel
- Implement limb-wise big-endian conversions for distance calculations -
Use constant memory when available for target/threshold within kernel -
Emit backend label metric for GPU CUDA engine - Track false positives
with metrics on host verification failure
Reject false positives from device by verifying on host and add
Prometheus counters for estimated rates, found and false-positive
candidates per engine and job.
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