CUDA编程模型
2007年NVIDIA公司推出了CUDA[75],它的全稱是Compute Unified Device Architecture(統(tǒng)一計算設(shè)備架構(gòu)),是一種可以利用GPU作為并行計算設(shè)備的軟硬件體系。CUDA使用類C語言進(jìn)行編程,研究人員在開發(fā)程序時不必再借助復(fù)雜的圖形學(xué)接口。幾乎每臺個人電腦都會安裝GPU,因此CUDA的出現(xiàn)為在普通的個人電腦上實現(xiàn)大規(guī)模的計算提供了可能性。憑借CUDA這種通用的并行計算架構(gòu)平臺,研究人員能夠借助GPU以百計的核運(yùn)行以千計的線程解決極其復(fù)雜的并行計算難題。CUDA的版本也經(jīng)歷了不斷地升級,目前最新的版本為CUDA 8。
CUDA是用于實現(xiàn)GPU并行計算的開發(fā)環(huán)境,但CUDA程序并不是僅僅運(yùn)行在GPU上的,它也是需要CPU協(xié)作的。就像前文介紹過的一樣,CPU與GPU硬件架構(gòu)上的區(qū)別決定了它們在計算中扮演不同的角色。因此,“GPU比CPU更善于計算”這樣的說法并不準(zhǔn)確,要體現(xiàn)出GPU強(qiáng)大的計算能力一定有這樣的前提:極大的計算量與規(guī)則的數(shù)據(jù)結(jié)構(gòu)。在CUDA的編程模型中,CPU與GPU協(xié)同工作,各司其職。CPU負(fù)責(zé)進(jìn)行一般的串行計算與邏輯性強(qiáng)的事務(wù)處理,GPU主要負(fù)責(zé)高度線程化的并行處理任務(wù)。由于CPU與GPU在計算中扮演的角色不同,CUDA編程模型將CPU作為主機(jī)(Host),GPU或者其它并行處理器作為協(xié)處理器(Co-processor)或者設(shè)備(Device),如圖3-2所示。同時,CPU與GPU各自擁有相互獨(dú)立的存儲器地址空間:主機(jī)端的內(nèi)存和設(shè)備端的顯存。如何高效地實現(xiàn)存儲器間的數(shù)據(jù)傳輸也是在CUDA程序開發(fā)過程中需要注意的。
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
                            
                        - 上一篇: 并行计算及GPU简介
 - 下一篇: 基于MATLAB的TDOA算法的仿真