keryx-miner-supr v0.6.5.3
Fixes for multi-GPU rigs run as one process per GPU (separate --cuda-device N, separate wallets/workers). Reported symptom: workers fine up to 3 GPUs, then the 4th exhausts host RAM (e.g. WSL's default 32 GB cap) → volatile hashrate + rejected shares.
Fixes
- Shared, cached possession tree — no more N× host RAM. The PoM Merkle tree was written to a per-process file and rebuilt on every start, so N per-GPU processes each held an identical copy (N× page-cache RAM + N concurrent rebuild spikes). Now there is one
pom-tree.binper model directory: a single process builds it under a cross-process lock, every other process (and every restart) reuses it read-only — one shared copy, no rebuild. Validated four ways before reuse (cache version, GGUF length+mtime, tree size, on-disk root == R_T); any mismatch → rebuild. This is the fix for the 4th-GPU OOM. - OPoI inference on the process's own GPU. A single-
--cuda-deviceprocess now runs inference on its own card instead of the globally-biggest GPU (which made every per-GPU process pile inference onto one shared card). Multi-GPU single-process behavior is unchanged. New--no-shared-inferenceflag (andKERYX_INFERENCE_GPUenv) force own-card explicitly.
Notes
- No protocol/consensus change. Drop-in over v0.6.5.x.
mining.subscribeuser-agent stayskeryx-miner-supr/0.6.5. - Immediate mitigation for WSL users: raise the WSL memory cap in
.wslconfig([wsl2]\nmemory=56GB) +wsl --shutdown. - Three build lines: modern (CUDA 12.9, R575+), legacy (CUDA 12.4, R550+), pascal (sm_60, GTX 10-series; run
--cpu-inference --light). Each in hiveos / smos / mmpos / linux.