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!


"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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.