ATI OpenCL VS NVidia Cuda 核心
首先,我想說,我真的不希望這個文章成為關於你最喜歡的顯卡製造商的爭論。所以請把它帶到別處。
我從很多人那裡聽說 ATI 和 Open CL 比 NVidia 和 Cuda 更適合挖礦。
當我第一次聽到這個消息時,我有點震驚,因為我過去所聽到的幾乎所有內容都是 Nvidia 的 Cuda 在解決數學問題方面非常強大,我什至有幾個大學教授發誓要使用 Nvida 卡而不是 ATI這就是原因。
那麼,比特幣和萊特幣算法使 ATI 卡變得如此簡單,或者我應該說對 NVidia 卡更難的是什麼?我想了解常識背後的技術原因。
謝謝。
在許多方面,GPU 進行雜湊處理只是巧合。一些 GPU 引擎比其他引擎更適合我並不感到驚訝。特定的 GPU 可能非常擅長某些類型的數學運算(或渲染,就此而言),但可能不是特別適合散列。
這在bitcoin.it wiki上有詳細討論:
首先,AMD 設計的 GPU 具有許多簡單的 ALU/著色器(VLIW 設計),它們以相對較低的頻率時鐘(通常 1120-3200 ALU,625-900 MHz)執行,而 Nvidia 的微架構由更少更複雜的 ALU 組成,並試圖彌補更高的著色器時鐘(通常為 448-1024 ALU,頻率為 1150-1544 MHz)。由於這種 VLIW 與非 VLIW 的差異,Nvidia 每個 ALU 佔用更多平方毫米的晶片空間,因此每個晶片可以封裝更少的晶片空間,並且它們比 AMD 更快地達到頻率牆,這阻止了它們將時鐘提高到足夠高以匹配或超過 AMD 的性能。這轉化為 AMD 的原始 ALU 性能優勢:
- AMD Radeon HD 6990:3072 ALU x 830 MHz = 25500 億條 32 位指令每秒(Nvidia GTX 590:1024 ALU x 1214 MHz = 12430 億條 32 位指令每秒
這種大約 2 到 3 倍的性能差異存在於整個 AMD 和 Nvidia GPU 範圍內。它在所有 ALU 綁定的 GPGPU 工作負載中非常明顯,例如比特幣、密碼暴力破解器等。
其次,另一個有利於在 AMD GPU 上而不是在 Nvidia 上進行比特幣挖礦的區別是,挖礦算法基於 SHA-256,它大量使用了 32 位整數右旋轉操作。此操作可以在 AMD GPU (BIT_ALIGN_INT) 上作為單個硬體指令實現,但需要在 Nvidia GPU 上模擬三個單獨的硬體指令(2 班次 + 1 次加法)。?僅此一項就為 AMD 帶來了另外 1.7 倍的性能優勢(~1900 條指令而不是~3250 條指令來執行 SHA-256 壓縮功能)。
綜合起來,這兩個因素使 AMD GPU 在探勘比特幣時整體速度提高了 3 到 5 倍。
這也在比特幣談話執行緒中進行了討論。