我有一個CUDA應用程序是數據移動綁定(即從主機到設備的大內存,在內核中完成相對較少的計算)。在較早的GPU上,我是計算綁定的(例如QUADRO FX 5800),但是對於Fermi和Kepler架構,這不再是這種情況(對於我的優化代碼)。奇怪的結果CUDA SDK帶寬測試
我剛把代碼移到了GTX 680上,並且對計算性能的提升印象深刻,但對主機和GPU之間的帶寬似乎已經下降(相對於我的費米M20270)感到困惑。
簡而言之,當我運行罐裝SDK帶寬測試時,我在GTX 680上獲得〜5000 MB /秒,而在M2070上獲得〜5700 MB /秒。我認識到GTX是「只有玩家卡」,但GTX 680的規格看起來比M2070更令人印象深刻,除了總線寬度之外。
維基百科: M2070:102.4 GB /秒,GDDR3,512位總線寬度 GTX 680:192 GB /秒,GDDR5,256位總線寬度
我運行試驗罐頭以「 - -wc --memory = pinned「使用寫入組合內存。
我用這個測試得到的改進結果是通過我用優化的CUDA代碼獲得的結果進行鏡像的。不幸的是,我無法在同一臺機器上運行測試(並且只是切換視頻卡),但是我在舊機器和新機器上試用了GTX 680,並得到了相同的「降級」結果(相對於我登上M2070)。
任何人都可以證實,他們能夠實現與GTX 680的M2070 Quadro更高的吞吐量Memcopies?帶寬規格是否考慮到總線寬度?另一種可能性是,我沒有在GTX 680上正確/最佳地執行內存複製,但是在這種情況下,是否有一個帶寬測試補丁,以便它能夠顯示我將數據傳輸速度提高到了680到M2070?
謝謝。
對於GTX 680和M2070,帶寬將受到PCI Express帶寬的限制,而不是與GPU卡上的內存有關。由於操作系統和系統架構(如不同的CPU/IOH設備)的差異,帶寬測試結果中可能存在系統間差異。測試不依賴於內存總線寬度,因爲在這兩種情況下,卡都有足夠的帶寬。除非您在所有方面使用相同的系統配置,否則您無法真正做到像這樣的蘋果對蘋果比較。 –