《GPU發(fā)展及CUDA編程介紹》由會員分享,可在線閱讀,更多相關(guān)《GPU發(fā)展及CUDA編程介紹(31頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本
2、樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,GPU,發(fā)展及,CUDA,編程介紹,1,GPU,是什么?,為什么使用,GPU,?,GPU,在通用計算上的應(yīng)用,GPU,的整體架構(gòu),GPU,編程的優(yōu)缺點,GPU,的未來,GPU,發(fā)展,2,Graphic Processing Unit,:圖形處理器,顯卡的處理核心,NVIDIA,公司在,1999,年發(fā)布,Geforce 256,圖形處理芯片時首先提出,GPU,的概念,隨后大
3、量復(fù)雜的應(yīng)用需求促使整個產(chǎn)業(yè)蓬勃發(fā)展至今。,Geforce 256,之所以被稱作,GPU,原因就在于,Geforce 256,劃時代的在圖形芯片內(nèi)部集成了,T&L,(幾何光照轉(zhuǎn)換)功能,使得,GPU,擁有初步的幾何處理能力,徹底解決了當(dāng)時眾多游戲瓶頸發(fā)生在,CPU,幾何吞吐量不夠的瓶頸。,GPU,是什么,3,第一代,GPU(1999,年之前,),:,部分功能從,CPU,分離,實現(xiàn)硬件加速,,GE(Geometry Engine),為代表,只能起到,3D,圖像處理的加速作用,不具有軟件編程特性,第二代,GPU(1999-2002,年,),:,進一步硬件加速和有限的編程性,1999,年,NVIDI
4、A GeForce 256,將,T&L(Transform and Lighting),等功能從,CPU,分離出來,實現(xiàn)了快速變換,2001,年,NVIDIA,和,ATI,分別推出的,GeForce3,和,Radeon 8500,,圖形硬件的流水線被定義為流處理器,出現(xiàn)了頂點級可編程性,同時像素級也具有有限的編程性,但,GPU,的編程性仍然比較有限,第三代,GPU(2002,年之后,),:,2006,年,NVIDIA,推出了,CUDA(Computer Unified Device Architecture,,統(tǒng)一計算架構(gòu),),編程環(huán)境,GPU,通用計算編程的復(fù)雜性大幅度降低,GPU,已演化為
5、一個新型可編程高性能并行計算資源,全面開啟面向通用計算的新時代,GPU,是什么,4,為什么使用,GPU,1,:強大的處理能力,2,:高顯存帶寬,5,HPC Top500 List,為什么使用,GPU,6,中國,HPC Top100 List,為什么使用,GPU,7,GPU,在通用計算上的應(yīng)用,工業(yè)設(shè)計,醫(yī)學(xué)研究,石油勘探,物理學(xué)研究,8,GPU的整體架構(gòu),與CPU相比,GPU具有更多的計算單元,但對于復(fù)雜控制過程的處理能力則比CPU差,GPU更適用于同時進行大量簡單的統(tǒng)一操作,9,GPU的整體架構(gòu),基本硬件架構(gòu),:,流多處理器(Stream Multiprocessor),流處理器(Strea
6、m Processor),共享內(nèi)存(Shared Memory),板載顯存(Device Memory),10,GPU,的整體架構(gòu),Tesla,Fermi,11,高度并行,處理速度,傳輸帶寬,可擴展性,算法設(shè)計,編程實現(xiàn),程序優(yōu)化,程序調(diào)試,GPU,編程的優(yōu)缺點,12,融合?,整合?,GPU,的未來,13,Intel,和,AMD,都計劃在未來的,CPU,中集成北橋功能和,GPU,模塊,這會給,NVIDIA,帶來什么影響?,GPU,生來就是做圖形計算的,不是和,CPU,競爭的,二者應(yīng)當(dāng)肩并肩生存。,CUDA,技術(shù)不是讓,GPU,取代,CPU,的。我相信,GPU,不需要集成不同類型的核心。,GPU
7、,的未來,14,CUDA,是什么?,CUDA,的使用,CUDA,編程算法實例,CUDA,編程的優(yōu)缺點,CUDA,的未來,CUDA,編程,15,Compute Unified Device Architecture,:統(tǒng)一計算設(shè)備架構(gòu),是由,NVIDIA,推出的通用并行計算架構(gòu),(2006,年,11,月第一顆基于,CUDA,架構(gòu)的,GPU,,,2007,年,CUDA C,語言發(fā)布,),CUDA,是什么,16,一種可擴展的編程模型,CUDA,是什么,17,CUDA,是什么,GPU,中的并行層次,網(wǎng)格中塊的并行,,blockIdx,全局存儲器通信;,同一塊里的線程的并行,,threadIdx,全局存
8、儲器、共享存儲器通信。,18,CUDA,是什么,GPU內(nèi)線程分布結(jié)構(gòu),在CUDA中,采用SIMT(Single Instruction,Multiple Thread)的執(zhí)行方式,19,一種異構(gòu)多核的并行編程模型,CPU的控制流程,CPU,控制整個程序的運行過程,在需要并行計算時候?qū)?shù)據(jù)傳入,GPU,從,GPU,得到計算結(jié)果繼續(xù)執(zhí)行程序,GPU的計算流程,GPU,接受來自主機的數(shù)據(jù),并行計算,將結(jié)果返回給主機,CUDA,的使用,20,CUDA,的使用,CPU控制整個程序的主流程,GPU為協(xié)處理器,主存(Host Memory),顯存(Device Memory),21,處理程序中的并行計算部分
9、,核函數(shù)(kernel function),CUDA,的使用,/CPU program,/sum of two vectors a and b,void add_cpu(float*a,float*b,int N),for(int idx=0;idxN;idx+),aidx+=bidx;,void main(),.,add_cpu,(a,b,N);,/CUDA program,/sum of two vectors a and b,_global_ void add_gpu(float*a,float*b,int N),int idx=blockIdx.x*blockDim.x+threadI
10、dx.x;,if(idx(a,b,N);,22,矩陣乘法:,A B=C,CUDA,的算法實例,23,CUDA,的算法實例,CPU中利用三層循環(huán)實現(xiàn)矩陣乘法,代碼,24,CUDA,的算法實例,GPU中利用每個線程計算一個元素,每個線程每次計算的數(shù)據(jù)直接從全局存儲器讀取,無分塊矩陣乘法代碼,不使用共享存儲器,25,GPU,中實現(xiàn)矩陣乘法的核函數(shù)代碼:,CUDA,的算法實例,26,CPU,與,GPU,的矩陣乘法時間比較,CPU,:,Quad2 Q8400,GPU,:,GeForce GTX460,CUDA,的算法實例,27,易學(xué),易用,高度并行化,可擴展,數(shù)據(jù)傳輸,與,CPU,交互,優(yōu)化及調(diào)試,僅限于,N,卡,CUDA,編程的優(yōu)缺點,28,CUDA,?,OpenCL,?,CUDA,的未來,29,謝謝!,30,參考文獻,31,