CUDA編程技術掃盲貼

 問:什麼是CUDA?
答:CUDA 是 NVIDIA 的 GPGPU 模型,它使用 C 語言爲基礎,可以直接以大多數人熟悉的 C 語言,寫出在顯示芯片上執行的程序,而不需要去學習特定的顯示芯片的指令或是特殊的結構。

問:NVIDIA公司爲何開發CUDA
答:以前大家都聽說過GPGPU,就是通用用途的GPUGPU隨着3D圖形處理越來越複雜,GPU規模也越來越大,後來GPU從計算角度來說,性能提升比CPU性能提升快很多。GPU計算能力這麼強,除了做圖形處理之外,還能進行其他應用,就是通用計算。
那個時候使用GPU計算很麻煩,那時候GPU完全是爲圖形進行設計的,它是一個非常專用的處理器,你要使用GPU 來做計算的話,你需要透過圖形API進行,通過這種圖形的API來訪問GPU計算核心,你必須要把你的計算所需要的數據,通過API假設這種計算是3D的計算,然後你要走過一遍圖形處理過程,才能得到計算結果。第一,編程非常複雜,第二,效率也不會達到很高。因爲中間必須要走過渲染的過程。
但是對於真正需要並行計算的人,比如說科學家,可能讓他們再學圖形就是爲難他們的事情,這些人都忙得要死。在這種情況下,把並行計算和圖形結合起來,所以NVIDIA開發了CUDA



問:CUDA對於行業的價值是什麼?
答:CUDA對於行業的價值,通過CUDA支持CUDAGPU,兩者結合在一起,所有的廠商很容易利用GPU強大的計算能力做各種各樣的並行計算工作,這就是最大的價值。它不需要你瞭解其他的,只需要有C語言編程能力就可以。C語言是最流行的語言,大家都會用。


問:CUDA是面向什麼樣的人羣的,能夠解決什麼問題?
答:CUDA不僅僅是面向開發軟件的人CUDA也有各種各樣的程序,比如說玩遊戲的人也可以從中得到很多好處,就是物理加速方面的計算。


問:如果我沒有采用NV的產品,是否能從cuda的體系中受益?比如說,我現在的電腦,沒有采用NV的硬件產品,我能否進行基於CUDA平臺的開發?
答:沒有用NVIDIA的顯卡,也可以使用CUDA做一些開發工作,你可以進行開發的調試,我們可以用虛擬的顯卡。另外CUDA可以支持多核CPU,這是我們最新支持的。你完全可以在CPU上編寫,如果你有GPU,比CPU快很多,我們現在最新的支持已經在多核CPU上進行的。如果沒有GPU,擴大程序也是可以編寫的。 CUDA有一個最大的好處,就是不同於別的並行計算,CUDA的硬件成本非常非常低,現在CUDA兩三百塊錢在市場上多的不得了,而且速度有8000萬左右,在很多的PC上可以進行,不管是工作站還是服務器。


問:cuda和其它的C編譯環境有何區別 cuda編程的架構是怎樣的?和其它的圖形編程平臺有何區別?
答:CUDA是專門針對GPU來進行編程的平臺,它最大的特點,CUDA如果在GPU方面來說,是所謂的異構計算系統。它和CPU有很大的不同,CPU我們只是針對一個處理器計算,CUDA是針對GPU的,它在編輯的時候會把CPU代碼和GPU代碼分開,GPU代碼編輯成工作代碼,CPU還是需要其他的C語言編譯系統來編譯。這可能是最大的不同。CUDA一定是需要CPU來參與的,我們叫異構計算環節。所謂異構計算,就是CPUGPU兩個架構是不一樣的,但是他們共同協同動作來解決同一個問題。
至於說CUDADirectX的關係,對於CUDA來說,是不需要OPenGl的支持。



問:包含了CUDA架構的顯卡,目前都支持哪些操作系統?也就是說,我是否能夠編譯出 for Linux或者Unix系統下運行的並行計算程序?
答:主流的操作系統WindowsVISTAXP,還有最新的win7,還有LINUXUNix,幾乎所有的操作系統都包括了。CUDA2.0Beta已經嵌入到顯卡的驅動程序,你使用了CUDA,就可以運用了CUDA各種各樣的程序。


問:CUDA的庫和做C語言編程的庫如 ATL是否兼容?CUDA是否有容錯和校驗的機制?
答:CUDA的庫和C語言的標準模板庫是不一樣的,而且CUDA今後會有容錯和校驗的機制。

CUDA編程技術掃盲貼
http://cudabbs.it168.com/forum.php?mod=viewthread&tid=216&fromuid=9964449
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章