rob thijssen
e9eada661d
mark job result as served and track serving metrics in miner service
...
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.
2025-09-14 14:05:26 +03:00
rob thijssen
6d9e5ab89b
Add engine health dashboard for Grafana monitoring
2025-09-14 13:29:36 +03:00
rob thijssen
d6f98398ed
Update Grafana engines comparison dashboard JSON formatting and widgets
2025-09-14 13:16:00 +03:00
rob thijssen
531eb7df99
refine mining metrics to reduce redundancy and improve cleanup
...
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.
2025-09-14 13:08:42 +03:00
rob thijssen
c385f25af8
add set_job_estimated_rate_backend function to metrics crate
2025-09-14 12:54:01 +03:00
rob thijssen
80f3bb3eae
Add janitor thread to prune stale job and thread metrics
2025-09-14 12:50:58 +03:00
rob thijssen
ca9f97a265
adjust active thread count based on desired iterations in CUDA kernel
...
launch
2025-09-14 12:18:43 +03:00
rob thijssen
d2842cf7ed
refactor CUDA G2 batching to allocate inputs and outputs per batch
2025-09-14 11:58:40 +03:00
rob thijssen
8399bd6f7d
early-exit detection and per-batch base nonce logic to CUDA miner
...
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.
2025-09-14 11:22:44 +03:00
rob thijssen
3fa3b60b20
Disable CUDA sampler in 3060 debug example env file
2025-09-14 10:56:43 +03:00
rob thijssen
0d3d3c50e3
Reduce CUDA threads and increase batches in miner config
2025-09-14 10:54:47 +03:00
rob thijssen
06629e85b7
Add MINER_CUDA_BATCHES to cuda-miner-3060-debug env file
2025-09-14 10:42:41 +03:00
rob thijssen
e57e91bec9
Refactor CUDA engine bounds calculation for clarity
2025-09-14 10:38:53 +03:00
rob thijssen
8288d21423
CUDA kernel batching and estimated attempt rate metrics
...
Support multiple batches per launch controlled by MINER_CUDA_BATCHES.
Report estimated device attempt rate (nonces/sec) to metrics per batch.
2025-09-14 10:35:51 +03:00
rob thijssen
b58e54eacd
Fix nonce coverage calculation to use actual covered count
2025-09-14 10:11:52 +03:00
rob thijssen
4c5fe8b36d
Adjust CUDA iterations per thread based on remaining nonce range
...
Calculate effective iterations to avoid exceeding coverage and update
all relevant uses from configured iterations to this dynamic value.
2025-09-14 09:57:44 +03:00
rob thijssen
928f2fe4c2
Add detailed debug logs for CUDA G1 and G2 coverage prefixes
2025-09-14 09:42:15 +03:00
rob thijssen
ce749eebc3
Add RUST_LOG settings to cuda-miner debug environment file
2025-09-14 09:22:09 +03:00
rob thijssen
b0eedef3e5
Improve full-precision bound checks for CUDA G2 coverage and hashing
2025-09-14 09:11:55 +03:00
rob thijssen
05bb5d885f
Increase CUDA kernel ABI version and add coverage bounds check
...
Limit per-thread iterations to prevent hashing beyond assigned coverage
range in the kernel and update kernel launch parameters accordingly.
2025-09-14 08:28:10 +03:00
rob thijssen
2a2bc1f60b
debug and warn logs for CUDA G2 winner diagnostics
...
Update cuda-miner-3060-debug.env with optimized thread and iteration
settings
2025-09-14 05:46:26 +03:00
rob thijssen
060a851300
Bump CUDA ABI version to 2 and use sentinel values for winners
...
Use u32::MAX as invalid sentinel for winner coordinates to improve
result validation. Also update ABI version constant to reflect this
change.
2025-09-13 13:17:48 +03:00
rob thijssen
25fdbf6ed2
Add kernel ABI version constant and probe in CUDA engine
...
Probe device kernel ABI version if present for better compatibility and
add logging for fallback when winner coordinates readback fails.
2025-09-13 13:01:30 +03:00
rob thijssen
fa9b90ef28
report winner thread and iteration via output buffers for nonce
...
reconstruction
2025-09-13 12:44:27 +03:00
rob thijssen
9739f7c08a
record winner thread and iteration on device for accurate nonce
...
reconstruction
2025-09-13 12:33:49 +03:00
rob thijssen
fbd143f1cc
Fix nonce calculation by tracking per-thread base nonces
2025-09-13 12:17:15 +03:00
rob thijssen
d8c96df8ba
Add alternative nonce mappings to diagnose CUDA false positives
2025-09-13 12:02:40 +03:00
rob thijssen
8dada4cb61
Add additional host distance check for false positive logs
2025-09-13 11:45:24 +03:00
rob thijssen
24ba4b0aa4
Fix qpow kernel to use h_le instead of digest_be in XOR and assignments
2025-09-13 11:31:23 +03:00
rob thijssen
fd048d4923
Fix big-endian byte order handling in qpow kernel
2025-09-13 11:19:20 +03:00
rob thijssen
17eb8e473c
Fix byte order in qpow kernel to use big-endian reversal
2025-09-13 11:04:29 +03:00
rob thijssen
39d68b989c
Fix digest big-endian conversion to preserve lane order
2025-09-13 10:54:00 +03:00
rob thijssen
ff477754d2
Use big-endian bytes consistently in qpow kernelSHA3 digest and
...
comparisons
2025-09-13 10:36:23 +03:00
rob thijssen
860503792c
Adjust qpow kernel to use lane-LE byte order for target and threshold
...
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.
2025-09-13 10:26:34 +03:00
rob thijssen
03d3225478
Clarify sha3_512_64bytes_le input interpretation
2025-09-13 10:15:38 +03:00
rob thijssen
57483a0050
Refactor GPU kernel for G2 SHA3-512 with threshold check
...
- 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
2025-09-13 09:57:45 +03:00
rob thijssen
b72be05386
Fix Keccak state indexing in keccak_f1600 kernel for CUDA
2025-09-13 09:19:02 +03:00
rob thijssen
7a3c40d8e8
Unroll Keccak-f1600 rounds for better performance
2025-09-13 09:06:33 +03:00
rob thijssen
642b596fad
rewrite distance and comparison logic to use big-endian byte arrays
...
instead of uint64 limbs
2025-09-13 08:51:47 +03:00
rob thijssen
6048d08664
optimize big-endian distance calculation in qpow kernel
2025-09-13 08:38:45 +03:00
rob thijssen
f62eff6be1
use little-endian output and byte-wise XOR in qpow kernel
2025-09-13 08:20:09 +03:00
rob thijssen
734b4fbb74
richer diagnostics for cuda false positive logging
2025-09-13 07:56:47 +03:00
rob thijssen
5fe204349f
Add debug output buffers to CUDA G2 kernel and log on false positive
...
rejection
2025-09-13 07:43:18 +03:00
rob thijssen
16057a8e20
Add optional CUDA sampler readback and parity check
...
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
2025-09-13 06:24:28 +03:00
rob thijssen
8a6de1a53f
Simplify CUDA build workflow by removing Dockerfile
...
Replace multi-stage Docker build with direct use of cuda-builder image
for building and stripping quantus-miner binaries, streamlining CI
steps.
2025-09-13 06:07:01 +03:00
rob thijssen
8db0496b88
sampling logic for debugging decisions
2025-09-13 04:52:01 +03:00
rob thijssen
0aaacdf85d
Add optional CUDA sampler support and big-endian SHA3 output
...
- 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
2025-09-13 04:02:06 +03:00
rob thijssen
191cc799b7
fix: cuda metrics and initialize estimated rate gauge
2025-09-13 02:42:48 +03:00
rob thijssen
300fa89927
Add optional metrics and big-endian limb support to CUDA engine
...
- 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
2025-09-13 01:54:54 +03:00
rob thijssen
9fc95a1ca8
Add estimated rate and candidate metrics to mining jobs
2025-09-13 01:23:26 +03:00