2011-05-05 60 views
2

CUDA 4.0比3.2更快嗎?
我對添加CUDA 4.0不感興趣,而是知道如果我使用CUDA 4.0,內存分配和傳輸速度會更快。
感謝CUDA 4.0 vs 3.2

回答

7

內存分配和轉移更多的依賴(如果不是全部)的硬件功能(更高效的流水線,高速緩存的大小),而不是CUDA的版本。

+0

本聲明(7票和全部)相當具有誤導性。存儲器分配的速度對平臺有很大的依賴性;在具有多個GPU的64位具有UVA功能的系統上,CUDA 4.0上的固定分配將花費更長的時間,因爲它們可自動移植(即映射到所有GPU)。 – ArchaeaSoftware 2011-09-24 17:53:08

+0

@ArchaeaSoftware您是否認爲CUDA 4.0在上述設置*下生成的代碼效率低於CUDA 3.2 *?如果是這樣,我會更新;如果沒有,那麼這就是我的答案已經在說... – 2011-09-25 09:22:06

+0

我的評論涉及內存分配而不是傳輸性能。內存分配性能更多地取決於主機平臺和CUDA實現的「硬件功能(更高效的管道,緩存大小)」。由於CUDA 4.0將可移植固定內存設置爲支持UVA的系統的默認設置,因此在多GPU系統上分配固定內存絕對速度較慢。 – ArchaeaSoftware 2011-09-26 13:19:46

1

是的,我已經跑〜10%的速度曾經是相當可觀的應用程序切換我從3.2到4.0。這是沒有任何代碼更改以利用新功能。

我也有一個GTX480,如果有任何問題。

注意,性能提升可能是由於這樣的事實,我使用的開發驅動程序的新版本(升級時自動安裝)。我認爲nVidia很可能會像CUDA這樣的重磅遊戲一樣對CUDA性能進行調整。

+0

aaah我c ...所以它更好地卸載我所有的驅動程序和cuda工具包和sdk並重新安裝最新的工具包/ sdk /驅動程序? – Lora 2011-05-05 14:20:47

+0

我推薦它。 – peakxu 2011-05-05 15:07:02

+1

這也可能是由於'nvcc'編譯器的改進。 Nvidia做了很多。 – LumpN 2011-05-05 22:21:23

2

即使在對CUDA 3.2,您可以安裝CUDA 4.0驅動程序(270.x) - 驅動程序是向後兼容的。所以除了重新編譯應用程序之外,您可以測試它。確實存在影響運行時性能的驅動程序級優化。

雖然通常已經在Linux上工作得很好,我已經注意到MacOSX上一些麻煩。

-1

答案是肯定的,因爲CUDA 4.0降低系統內存佔用和CPU的memcpy()開銷

+0

也許愚蠢的問題,但獨立於設備的計算能力?也就是說,對於所有的硬件產品? – Bart 2011-05-07 19:42:02

0

內存分配的性能主要取決於主機平臺(因爲驅動程序的型號而異)和驅動程序的實現。對於大量的設備內存,分配性能不可能因CUDA版本而異;對於較小的金額(比如小於128K),驅動程序子分配器中的策略更改可能會影響性能。

對於固定的內存,CUDA 4.0是一個特例,因爲它引入了UVA能力的系統中的一些重大的政策變化。首先,在初始化時,驅動程序會進行一些巨大的虛擬地址預留。其次,所有固定內存都是可移植的,因此必須映射到系統中的每個GPU。

性能的PCI Express轉移的主要是平臺的神器,而且通常沒有太多的開發者能夠做到控制它。 (對於小型CUDA memcpy,驅動程序開銷可能因CUDA版本而異。)一個問題是,在具有多個I/O集線器的系統上,非本地DMA訪問遍及HT/QPI鏈接,因此速度要慢得多。如果您的目標是這樣的系統,則使用NUMA API將內存分配(和線程)引導到GPU所插入的同一CPU上。