HowTo run PoW GPU Miner

From Veriblock Wiki
Revision as of 19:43, 10 May 2018 by TimStall (talk | contribs) (Created page with "See: HowTo_run_PoW_Miner __TOC__ == Overview == The GPU miner is much much faster than the the CPU miner. However, it requires a NVidia GPU card to run. For testnet, t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

See: HowTo_run_PoW_Miner


The GPU miner is much much faster than the the CPU miner. However, it requires a NVidia GPU card to run.

For testnet, the GPU Miner is initially throttled to produce shares only ~0.4% of the time (which makes GPUs competitive with CPUs on testnet). The final version will not be throttled, and will produce shares at full capacity.


The GPU Miner requires an NVidia card (9xx, 10xx, Titan X, Titan XP, Titan V, or corresponding Quadro/Tesla).

It requires a recent version of the NVidia display drivers. It should work on any driver >=391.25, but driver version 397.64 is recommended (download from here:

Steps to run


Download and unzip:

This contains a detailed README.txt. Please read, as it answers many initial questions. From the instructions in the readme.txt, pick which version you'll run (such as "nvml\cpu_shares\release\sm_50").

Update the run.bat (using Notepad, Notepad++, or some other basic text editor) to contain your address (such as V5bLSbCqj9VzQR3MNANqL13YC2tUep) rather than the dummy placeholder.

VeriBlock.Miner.PoW.exe -o -u V5bLSbCqj9VzQR3MNANqL13YC2tUep -d 0


  1. Run NodeCore, catch up to the most recent block (See: HowTo_run_NodeCore)
  2. Run NC_CLI and run the "startpool" command (See: NodeCore_CommandLine#startpool)
  3. In a specific folder via instructions in the readme (such as "nodecore-cudapow\nvml\gpu_shares\release\sm_52"), execute "run.bat"
    1. If that crashes, then follow the readme instructions to pick another folder. Note: If repeated crashes occur, please submit a Github issue at including your OS version (Windows 7, 8, 8.1, 10...), and any other information you deem to be relevant (run as administrator, etc.).

Upon first running, several startup outputs will appear:

GPU Miner run 1.png

Then it will switch to a new screen showing the shared being submitted. The text here is updated in-place, it is not continually appended like a log file.

GPU Miner run 2.png


Does the GPU miner make the CPU miner obsolete?

In one sense yes... as the GPU miner may be 100x faster than a CPU miner. However, the CPU miner still serves as a reference implementation. It can still join a pool and can submit shares.

What does the file structure mean?

There are many different versions of the miner available, which is explained in the README. Overall, three choices must be made:

1.) NVML, yes/no? NVML allows the program to query lots of device-specific information (clock speed, memory speed, temperature), as well as detailed information regarding your current NVidia driver. Try NVML software first, and if it fails try the non-NVML equivalent.

2.) CPU_SHARES vs GPU_SHARES? The CPU_SHARES version of the GPU miner submits shares at the same difficulty as the CPU miner. Because it is several orders of magnitude faster than the CPU miner, it finds these shares incredibly often. If you want to mine as fast as possible on a CPU-dominated testnet, you will need to run the CPU_SHARES version. However, if you want to see the true performance of the GPU miner in it's "natural habitat" (pool software the GPU-miner-level shares being served normally), run the GPU_SHARES version. In other words, the GPU_SHARES version reflects real-world mainnet performance of the GPU miner, but the CPU_MINER submits many "low difficulty" shares which is in-line with the current CPU-dominated behavior of VeriBlock NodeCore Testnet.

3.) Benchmark or Release? The benchmark version of the software will allow you "mine" even if it cannot connect to a pool. Normally, mining software should not mine unless it can submit the results of mining ("shares") back to the pool and get rewarded. However, some users may wish to run the miner in isolation to test performance, without having to run an instance of NodeCore (of find a public pool). In short, if you are looking to mine VeriBlock testnet coins, use the release version. If you are interested in testing out the performance of particular hardware without actually attempting real mining, use the benchmarking software.

The file structure of the CUDA GPU miner is:

  • no_nvml
    • cpu_shares
      • benchmark
        • sm_50
          • cudart64_91.dll
          • run.bat
          • VeriBlock.Miner.PoW.exe
        • sm_52
        • sm_60
        • sm_61
        • sm_70
      • release
    • gpu_shares
      • ...
  • nvml
    • ...
  • README.txt


Check the log file

The GPU miner outputs to a log file, such as "cuda-miner.log". If you encounter errors, this log file should have information to help troubleshoot.

Graphics Card is not working

Ensure that your system has an NVidia GPU card. If this is Windows (only Windows is supported for the initial CUDA miner release), you should be able to see NVidia in your Device Manager, and open up the NVidia Control Panel (an item in "Control Panel"). If you cannot open the "NVidia Control Panel", and it does not have at least a GTX 9xx or 10xx GPU (or Titan, Quadro, or Tesla card utilizing the Maxwell, Pascal, or Volta architecture) with driver version 397... then solve that first before proceeding.

If you get any of the following errors, then most likely your driver does not meet the criteria mentioned above.

addKernel launch failed: no kernel image is available for execution on the device
grindNonces failed!
CUDA encountered an error while setting the device to 0: 35
Last error: CUDA driver version is insufficient for CUDA runtime version
cudaSetDevice failed!  Do you have a CUDA-capable GPU installed?grindNonces failed!