How is Ethash a 'memory hard' algorithm if it utilizes peak GPU memory bandwidth?

1

1

According to the Ethash algorithm described here, 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 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!

vLx

Posted 2018-02-07T09:04:52.407

Reputation: 13

Answers

0

"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 indicates the memory bandwidth for a GTX-1070 is in fact 256GB/sec, which fits your calculation.

Max Vernon

Posted 2018-02-07T09:04:52.407

Reputation: 1 376