關於GTS450與GTX580的記憶體頻寬測試

我有兩張GPU卡,分別是:

  1. GTS450,微星 N450GTS-MD1GD3 顯示卡
  2. GTX580,技嘉 N580D5-15I-B 1536M DDR5/DVI2+miniHDMI1/384-bit
GTS450


GTX580

從上面兩張圖片可以看到,GTS450的bandwidth是28.8GB/s,GTX580的bandwidth是192.4GB/s。從這個數據看來,GTX580大勝GTS450,但是,如果執行nvidia cuda sdk裡面的bandwidthTest.exe,跑出來的結果如下圖所示:

看起來變成GTS450比GTX580好很多,為什麼為這樣呢?

TECHPOWER 上的頻寬未定義測量方式,故比較起來意義似乎不大…
CUDA中則測量三向速率,比較重要的應該是D2D的速度?

另CUDA中H2D+D2D的數值和,似乎略等於TECHPOWER的數值…?

最後,國外比較GTS450及GTX580
http://www.hwcompare.com/9143/geforce-gts-450-vs-geforce-gtx-580/
提供參考 :slight_smile:

謝謝caure大的回文。


GPU-Z的數據應該是nVidia官方的數據。
http://www.nvidia.com.tw/object/product-geforce-gts-450-tw.html
http://www.nvidia.com.tw/object/product-geforce-gtx-580-tw.html

然後nvidia cuda sdk裡面的bandwidthTest.exe跑出來的數據分別有D to H, H to D, D to D三種速度,應該是要以這個數據為準才是。

只是我現在的應用需要比較多的D to H跟H to D,看到GTX580的內存與顯存的傳送速度比GTS450還差,就覺得很想找出原因。

既然官網上面有GTS450跟GTX580的數據,那麼有哪一項數據是跟D to H及H to D有關的呢?

Bandwidth is the max amount of information (counted in megabytes per
second) that can be transferred past the external memory interface in a
second. The number is worked out by multiplying the card’s bus width by
its memory speed. If the card has DDR type memory, the result should be
multiplied by 2 once again. If DDR5, multiply by ANOTHER 2x.

The better the memory bandwidth, the faster the card will be in general.

唯一有看到的影響如上,
其餘看了說明,都僅說一般的BW都是指D2D最大速率…

另TECHPOWERUP裡,BW確實是算出來的,其改版資訊中:
Fillrate Pixel, Fillrate Texel, Memory Bandwidth will now correctly recalculate when clocks change
只是不知道如何算出來的=w=

總之是篇沒結論的回文XD

Host to Device = M/B main Memory to Graphic Card Memory (PCIe bus bandwidth)

Device to Host = Graphic Card Memory to M/B main Memory (PCIe bus bandwidth)
Device to Device = Graphic Card Memory <-> GPU (GPU memory bus bandwidth)

D大的意思是,H to D跟D to H的頻寬取決於:PXIe頻寬、北橋頻寬

D to D的速度則如同nvidia官網的數據。


延伸一個問題:如果希望H to D, D to H速度提升,是在選擇電腦的主機板、CPU、ram就決定的嗎? 如果是這樣的話,該怎麼選擇速度快的呢?

還請各位專家教一下了… 謝嚕…

D to H, H to D 是主記憶體加上PCIe bus的綜合頻寬:


主記憶體頻寬是bus width x RAM top speed
所以可以把dual bank 64bit 整成128bit (如AMD)
DDR3-1333 升成 DDR3-1600都有幫助.

而PCIe bus, PCIe-3 當然會比 PCIe-2 快上一倍, x16 也會比 x8 快上一倍.
要注意的是, 很多主機板在兩條x16插槽都上顯卡的時候, 其實會自動降成兩條x8.
所以要PK也請只插一張顯卡上去測比較準.

如果帳面規格都一樣, 其他就看北橋設計的功力了 (有的CPU已經整合北橋了),
以往經驗是, 相同規格下, Intel會比 AMD略快, 可能的話, 還是以實測為基準才是.

Ben自己有站, 也當過研討會的speaker, 可以聯絡各主機板廠公關室, 提出
你的簡歷表明要評測該公司的主機板於CUDA應用的各種performance 
(如D2H, H2D, D2D, run 16384pt FFT等等), 同時提出自己的評測proposal, 
各廠有興趣的話, 自然會提供主機板樣品供你測試, 並會附帶AE contact window, 
以便於提供工程支援 (萬一PK結果很糟的話, 根據你的測試結果找bug, 最後幫你刷beta版bios).

至於像GTX580的情況, 程式若寫成一次便從主記憶體拉進大筆待處裡資料 (H2D),

然後在GPU上執行大量遞迴運算 (長時間的D2D), 最後再一口氣把大量計算結果從
GPU memory拉回主記憶體 (D2H), 評測結果就會變成GTX580大勝GTS450.

若程式是不停的從主記憶體拉小區塊資料進GPU memory,
然後GPU運算一次後便又從GPU memory拉回主記憶體,
這樣就會變成GTS450與GTX580不相上下, 甚至小贏GTX580.

謝謝D大的說明。


我後來使用AIDA64做這兩台電腦的效能評比,結果如下:



結果確實安裝GTX580的電腦的RAM讀取與寫入速度低於安裝GTS450的電腦。


參考AIDA64提供的數據:

這樣我就知道應該選擇怎樣的主機板、CPU、RAM了。 (之前對這這都沒有概念)