Development
如果 Ethash 利用峰值 GPU 記憶體頻寬,它如何成為“記憶體硬”算法?
根據此處描述的 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/秒,這符合您的計算。