<p>"Memory hard" means the algorithm is <em>designed</em> to use a lot of memory; its purpose is to prevent an ASIC being developed that would overwhelm the existing CPU/GPU-based mining.</p>

<p><a href="https://www.geforce.com/hardware/desktop-gpus/geforce-gtx-1070/specifications" rel="nofollow noreferrer">This site</a> indicates the memory bandwidth for a GTX-1070 is in fact 256GB/sec, which fits your calculation. </p>

CC BY-SA 3.0
2018-02-07T14:05:01.330Z
2018-02-07T14:05:01.330Z
Hannah Vernon
<p>According to the Ethash algorithm <a href="https://github.com/ethereum/wiki/wiki/Ethash" rel="nofollow noreferrer">described here</a>, the computation for each nonce requires a loop of 64 iterations, where each iteration reads a chunk of 128 bytes from a pseudo-random location in memory.</p>

<p>Reported hash rates for the NVIDIA GTX 1070 are around 30MH/s, which means that every second this GPU is reading 30.000.000 nonces x 64 iterations x 128 bytes from memory. That is <strong>245.76 GB/s</strong>.</p>

<p>I was unable to find the peak memory bandwidth that the 1070 is capable of, but <a href="https://devtalk.nvidia.com/default/topic/954019/gtx-1070-cuda-mem-performance-thread/?offset=3" rel="nofollow noreferrer">this thread</a> suggests it should be 197.76 GB/s, and Ethash is achieving even more than that. Howcome?!</p>

<p>Also, I would expect that reading from many different memory locations (as opposed to sequential reads) would result in a very inefficient use of memory, but it seems it doesn't really matter?</p>

<p>I'd appreciate if someone could clear this up, thank you!</p>

<development><hashpower><ethereum><gpu><algorithms>
How is Ethash a 'memory hard' algorithm if it utilizes peak GPU memory bandwidth?
vLx
# How is Ethash a 'memory hard' algorithm if it utilizes peak GPU memory bandwidth?

(Asked by: username_0 on 2018-02-07)

According to the Ethash algorithm [described here](https://github.com/ethereum/wiki/wiki/Ethash), the computation for each nonce requires a loop of 64 iterations, where each iteration reads a chunk of 128 bytes from a pseudo-random location in memory.

Reported hash rates for the NVIDIA GTX 1070 are around 30MH/s, which means that every second this GPU is reading 30.000.000 nonces x 64 iterations x 128 bytes from memory. That is **245.76 GB/s**.

I was unable to find the peak memory bandwidth that the 1070 is capable of, but [this thread](https://devtalk.nvidia.com/default/topic/954019/gtx-1070-cuda-mem-performance-thread/?offset=3) suggests it should be 197.76 GB/s, and Ethash is achieving even more than that. Howcome?!

Also, I would expect that reading from many different memory locations (as opposed to sequential reads) would result in a very inefficient use of memory, but it seems it doesn't really matter?

I'd appreciate if someone could clear this up, thank you!

**Tags:** development, hashpower, ethereum, gpu, algorithms


---

## 1 answers

### Answer by username_1 on 2018-02-07. Score: 0 | Accepted answer

"Memory hard" means the algorithm is *designed* to use a lot of memory; its purpose is to prevent an ASIC being developed that would overwhelm the existing CPU/GPU-based mining.

[This site](https://www.geforce.com/hardware/desktop-gpus/geforce-gtx-1070/specifications) indicates the memory bandwidth for a GTX-1070 is in fact 256GB/sec, which fits your calculation.


---

