CUDA架構

yyfn風辰發表於2010-01-05
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE         本來一直都想把自己對CUDA架構的理解寫出來,但是一方面自己是個懶人,不太願意動筆,另一方面又感覺不太好組織語言,今天終於藉著這個第四期有獎討論的機會,把我對CUDA 架構的理解寫下來吧!

    至於題目中提到的有人將CUDA架構和x86的一樣理解,這一定是錯誤的,如果說把GPU的架構和x86架構類比,這還有點道理。

         要理解CUDA架構,個人認為應當先理解CUDACUDAcompute unit device architecture的簡稱,它統一了NVIDIA用於通用計算的GPU的程式設計模式,同時引入的共享儲存器也是一大特色,大大提高了速度。有時我們說CUDA是指軟體,有時又是指硬體,更多時是指CUDA C語言,因此本文將分三個部分簡略的說明。

         從軟體的角度上說,CUDA軟體棧包含兩個層次,一個是驅動層的API,這類函式以cu開關,一個是執行層的API,以cuda開頭,執行層API是建立在驅動層API之上的,是對驅動層API的封裝,這種封裝方便了使用,但是同時也犧牲了靈活性。一般而言,我們的開發都是優先使用執行時API。要提到的是:NVIDIA自身也提供了一些建立在這兩者之上的庫,供大家使用。

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

從另外一個方面說,CUDA的軟體架構也應當包含這一系列的語言支援。當然這只是個人觀點,歡迎大家討論。

         從硬體的角度看,CUDA架構應當包含TPC--&gtSM--&gtSP結構及它們的關係。各種儲存器及其組織,以及硬體對執行緒的建立、執行、排程等,本人部落格將會專門細說這個問題,所以也就不詳細說了。

         CUDA C語言的角度看,CUDA的架構包括函式修飾符,變數修飾符,以及一些內建函式等,這方面內容本人的部落格將會詳細說明,因此,此處就不多說了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23057064/viewspace-624392/,如需轉載,請註明出處,否則將追究法律責任。

相關文章