- 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.
Refactor all NVIDIA GPU profiles for mixed-load (lower) and dedicated
(upper) configurations. Enable auto-tuning of per-batch iterations (do
not set desired iters). Adjust thread/block counts, iteration budgets,
and enable/disable sampling and verification to balance responsiveness
and overhead for each profile. Add usage tips and logging level
guidance.
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.
keep completed jobs with served results for cleanup and log serving
info. add metric increments for result readiness and serving events.
re-verify nonce distance before serving and update job state
accordingly.
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.