Development

如果 Ethash 利用峰值 GPU 記憶體頻寬,它如何成為“記憶體硬”算法?

  • February 7, 2018

根據此處描述的 Ethash 算法,每個 nonce 的計算需要一個 64 次迭代的循環,其中每次迭代從記憶體中的偽隨機位置讀取 128 個字節的塊。

據報導,NVIDIA GTX 1070 的雜湊率約為 30MH/s,這意味著該 GPU 每秒從記憶體中讀取 30.000.000 個隨機數 x 64 次迭代 x 128 個字節。那是245.76 GB/s

我無法找到 1070 能夠達到的峰值記憶體頻寬,但這個執行緒建議它應該是 197.76 GB/s,而 Ethash 的實現甚至不止於此。怎麼會?!

另外,我希望從許多不同的記憶體位置讀取(而不是順序讀取)會導致記憶體的使用效率非常低,但這似乎並不重要?

如果有人能解決這個問題,我將不勝感激,謝謝!

“記憶體硬”是指算法被設計為使用大量記憶體;其目的是防止正在開發的 ASIC 會壓倒現有的基於 CPU/GPU 的挖礦。

該網站指出 GTX-1070 的記憶體頻寬實際上是 256GB/秒,這符合您的計算。

引用自:https://bitcoin.stackexchange.com/questions/70371