Ethereum’s Directed Acyclic Graph, commonly known as the DAG file, has been increasing at a rapid rate ever since the Byzantium update last October. A new DAG file is created at every epoch, which occurs every 30,000 blocks, or approximately every 125 hours at current mining speeds.
A DAG file is a large randomly generated data-set used by Ethereum’s PoW Dagger-Hashimoto algorithm, also known as Ethash. The DAG file is what keeps mining difficulty high enough so that new blocks are generated at a consistent rate of one every 14.1 seconds and acts as a counter to miners adding increased hash-power to try and speed the process up.
Since GPUs need to load the DAG in their working memory, the increasing DAG size means that graphics cards with 3GB RAM, such as a Nvidia 1060 GTX, will become “obsolete” for mining very soon.
The DAG file size is expected to reach 3GB on block 6,900,000. But because a GPU has roughly 80-100MB of memory overhead, all 3GB GPUs will be unable to mine Ethereum shortly before that time. The expected “moment of death” (at least for for Ethereum mining) will be around block 6,750,000, as this is when the DAG size will reach 2.92GB. As with the 2GB DAG transition in February of 2017, depending upon your exact cards memory layout, some cards may get a few more weeks of mining than others, but eventually they will all succumb the the DAG file limitations.
Owners of 3GB GPUs will have until sometime toward the end of November before their 3GB cards will lose the ability to mine Ethereum. All is not lost however, as other Ethash coins with smaller DAG files will still be mine-able with 3GB GPUs, as well as coins using other algorithms such as Zcash and its Equihash algorithm.
Owners of 4Gb cards fare much better and will have until October of 2020 before the DAG file size becomes to big for them to mine Ethereum.
Some of the important dates and Ethereum DAG files sizes are listed below:
Epoch | Block Number | Date | DAG Size |
110 | 3,300,000 | 02/22/2017 | 2GB (already occurred) |
230 | 6,900,000 | 11/29/2018 | 3GB |
345 | 10,350,000 | 08/15/2020 | 4GB |
Early Problems
There have also been some early reports of users experiencing memory issues with 3GB cards, even though there are a few months left before running up against the hard limit. One solution for Claymore miners is to add -eres 0 in your configuration file.
According to the Claymore Readme file:
-eres this setting is related to Ethereum mining stability. Every next Ethereum epoch requires a bit more GPU memory, miner can crash during reallocating GPU buffer for new DAG.
To avoid it, miner reserves a bit larger GPU buffer at startup, so it can process several epochs without buffer reallocation.
This setting defines how many epochs miner must foresee when it reserves GPU buffer, i.e. how many epochs will be processed without buffer reallocation. Default value is 2.
As you can see from the description, the default value is set to 2, so by changing this value to 0, it will not reserve any more memory at startup that it needs for the current DAG file size.
Another headache for Ethereum miners using 3 GB cards who are also running the latest version of Windows 10, comes from Microsoft.
According to this Microsoft Technet question; Windows 10 does not let CUDA applications to use all VRAM on (especially secondary) graphics cards, users with 3 GB cards may find that 500 MB is reserved by Windows. So far there seems to be no solution for this problem other than use a different OS, as Windows 7, Windows 8, some older builds of Windows 10, Server 2016 and Linux don’t have this issue.
Leave a Reply