Improved mining speed - Single GPU

DISCLAIMER: This is still work in progress, it has only went through limited amounts of testing. The official release of this will be in v1.1.0 planned for next Thursday (December 13th)

NOTE: This update changes the interface between the miner and the node, thus you need to build both the miner and the node to use this update. The update is in a branch named PT-162445499-improve_mining on GitHub - aeternity/epoch.

Following the discussion on the inefficiency that follows from only doing one graph exploration in a GPU context, adding the overhead of creating the context to each attempt, we have re-designed how the miner interfaces with the epoch aeternity node. By doing this we can do multiple attempts in the same GPU context improving the mining rate. On one example machine we could get from 1 attempt per 3 seconds to 8 attempts in 4.6 seconds.

Instructions

To try this branch you should follow the exact steps of the mining guide prepared by Chris: Deploy AE Mainnet CUDA MultiGPU Miner. | by Chris | Medium
with two important exceptions:

  1. To clone the repository you should replace git clone -b multi_gpu https://github.com/aeternity/epoch.git multi_gpu && cd multi_gpu with
    git clone -b PT-162445499-improve_mining https://github.com/aeternity/epoch.git faster_mining && cd faster_mining, and

  2. When writing the epoch.yaml file you should not add instances: N but instead repeats: N.

This will run N cuckoo puzzles in the same GPU context, which should improve mining speed. But N needs to be calibrated. Look into the log/epoch_mining.log file of the node and check the interval between successive Start mining lines, like in this example:

2018-12-06 15:21:57.141 [info] <0.1267.0>@aec_conductor:start_mining:674 Starting mining
2018-12-06 15:22:02.413 [info] <0.1267.0>@aec_conductor:start_mining:674 Starting mining

Here it is 5.3 seconds between the mining attempts which is a bit high, for best network performance it should be between 3-5s. So adjusting N until the miner hits this sweetspot is crucial. Note: the node has to be restarted between changes to epoch.yaml. I suggest start with N = 5 and adjust accordingly.

Update

Monday, Dec 10th, 9:30 CET
Lifted the branch PT-162445499-improve_mining to include Tromp’s latest updates. I.e. it now supports the -c flag to reduce CPU load.

2 Likes

Updated - Monday, Dec 10th, 9:30 CET

1 Like