Listing the GPUs
Id is the number the other options use for a GPU, and Backend what Hashwarp can mine on it with: cu (CUDA) and cl (OpenCL). The log names each GPU by that number: gpu0, gpu1 …
Choosing GPUs
While mining, press a GPU’s number (
0 to 9) to pause or resume it, or p and r for all of them.
GPU memory
Each GPU holds the XHash DAG, which grows by 8 MB every epoch (720 blocks, about 5 days): around 1.7 GB in late 2026, 2 GB around mid 2027. Hashwarp builds it on the GPU when mining starts and at each new epoch, which takes under a second on recent GPUs:Epoch N needs ...). On rigs whose CPU or power supply struggles when every GPU builds its DAG at once, --dag-load-mode 1 builds them one after the other.
Checking the GPUs: —selftest
--selftest 60 for longer), checks every result on the CPU and ends with a verdict per GPU:
F (failed) in the share counts and is logged as Wrong result, lower the overclock if it happens often. --noeval turns the check off, which isn’t recommended.
Benchmarking
q or Ctrl+C; it prints the highest and mean hashrate. Use a current block number, so the DAG has its current size.
Kernel tuning
These take one value per GPU, or one for all. The defaults are right for most GPUs; change one at a time, and compare with--benchmark.
At start Hashwarp logs which CUDA kernel it chose, with both kernels’ hashrates:

