SOAT Miner v0.1.2 - NVIDIA Vulkan was 50x too slow
If you have an NVIDIA card, replace v0.1.1. It was giving you about 3 MH/s.
Vulkan was 50x too slow on NVIDIA
The dataset was not allocated as a dedicated allocation, so the driver never
gave it large pages. Every one of the 33 random lookups per nonce missed the
TLB. The card sat at 100% utilisation doing almost nothing.
Measured at the current 7.27GB dataset:
| GPU | v0.1.1 | v0.1.2 |
|---|---|---|
| RTX 5080 | 5.7 | 267.6 |
| RTX 4090 | 2.9 | 162.5 |
| RX 6700 XT | 82.9 | 82.9 |
AMD was never affected. Memory utilisation on the 5080 went from 4% to 99%.
The CUDA build only ran on 40-series cards
v0.1.1 shipped one cubin, sm_89, and no PTX. On anything else it refused to
start with "no kernel image is available for execution on the device".
Two causes. The architecture list was hardcoded to Ada. And separable
compilation was throwing away the PTX, so there was no fallback either.
Now it builds sm_75, sm_86, sm_89 and sm_120 where the toolkit supports them,
plus PTX so newer cards still work. The list comes from asking nvcc what it can
target instead of being written down.
Backend auto now goes by GPU, not by brand
Vulkan is faster on Blackwell. CUDA is faster on Ada. Both were measured on
Linux and Windows and they agree.
| GPU | picks | margin |
|---|---|---|
| RTX 5080 | Vulkan | 22% |
| RTX 4090 | CUDA | 34% |
| RX 6700 XT | Vulkan | only option |
Leave BACKEND=auto alone and it sorts itself out.
Building on Windows never worked
The CMake build did not compile run.cpp or stratum.cpp, so it failed to link.
It is the only supported way to build CUDA on Windows. Fixed and tested on a
5080 with CUDA 12.9.
RTX 50-series needs CUDA Toolkit 12.8 or newer for native code. Older toolkits
fall back to PTX and still work.
Also
- --list-devices works in the CUDA build. It used to start mining instead.
- The Vulkan backend is now checked by make test against the same mainnet block
as CUDA, with a negative control. Nothing was gating it before. - The README is half the length and tells you how to mine in the first screen.
Verify your download
fccfc03fcb9764c8fedb196515ecdd0afa02f6f7aa2f328ba6df6b50127f35b9 soat-miner_v0.1.2_Lin64.tar.gz
f947d00359a2df1e607f4b237a28186f11e9c36e004a7c58b22705615ba37f25 soat-miner_v0.1.2_Win64.zip
The Windows zip is the Vulkan build only. CUDA cannot be cross compiled from
Linux. Build it from source if you want CUDA on Windows.