- Track candidate origin (cpu, gpu-g1, gpu-g2) in metrics with counters
and gauges - Log detailed info on candidate discovery per origin in CUDA
engine - Emit per-job found-origin gauge in miner-service with actual
job_id - Cleanup origin metrics on
kernel launches
Include detailed logs for device info, context creation, buffer
allocations, kernel resolution and launch parameters, and data transfers
to help diagnose CUDA behavior and failures. Also add fallback and error
logging enhancements.
Initialize CUDA context and load module once per engine instance,
storing them in a mutex-protected cache to avoid repeated setups. Use
cached context/module for kernel launches, creating a fresh stream each
call. Adjust grid dimension calculation to consider multiprocessor
count.
Add dynamic tuning of desired_iters based on coverage and thread count.
Enhance info logs with attempts and utilization metrics. Update example
config.
Introduce C_DEBUG_FORCE_WIN device constant to force a winner on GPU at
tid=0,j=0. Enable control via MINER_CUDA_FORCE_WIN environment variable
in Rust to trigger early exit and aid debugging.
support for verifying first W candidates on the host when
MINER_CUDA_VERIFY is set, logging any missed winners.
add a metric for missed winners and info logging for found flags.
remove redundant estimated rate gauges and ensure all related job and
thread metrics are cleaned up on job cancellation and completion.
update GPU CUDA metrics to use backend-specific estimated rate.
early-exit checks for found solutions within each batch by copying and
validating device results. Rebuild per-batch base nonces and initial
states for kernel launches using effective iters instead of
iters_per_thread. Log false positives with debug info for easier
diagnosis.
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