gpgpu編程技術
Ⅰ GPU, GPGPU ,CPU 有什麼區別
GPGPU,帶CPU處理能力的GPU。主要是GPU的工作,GPU的能力,可以有協助CPU的運算的能力,(通用圖形處理)超出GPU的能力范圍,甚至完全具備通用的數據處理。能否成為CPU看是否放在主板上。
GPU,用於圖形處理的晶元。(GPU也是一種CPU,,相對於顯卡)早期顯卡是沒有專門用做圖形處理的GPU的,不支持3D。
CPU,用於數據處理的晶元(圖形也可以認為是數據)。中央處理器,一種相對的概念。潛移默化被認定是放在主板上的那顆東西,通過向GPU傳送指令,控制GPU。其實也就是一種微處理器。
AMD-APU,加速處理器。集成GPU核心的CPU,並且融合。不同於Intel I系智能(GPU CPU獨立工作)。
Ⅱ 什麼是 GPU(圖形處理器)計算
GPU計算也就是GPU加速計算,由Nvidia提出來的概念,是利用一顆圖形處理器 (GPU) 以及一顆 CPU 來加速科學、工程以及企業級應用程序。 NVIDIA® 於 2007 年在這方面率先邁出了第一步,GPU 現已成就了世界各地政府實驗室、大學、企業以及中小企業內的節能數據中心。
GPU也就是圖形處理器,又稱顯示核心、視覺處理器、顯示晶元,是一種專門在個人電腦、工作站、游戲機和一些移動設備(如平板電腦、智能手機等)上圖像運算工作的微處理器。
Ⅲ 近年來,異構超算已經是大勢所趨,什麼是異構超算
1.先談談同構計算和異構計算。同構計算是使用相同類型指令集和體系架構的計算單元組成系統的計算方式。同構超算只單純使用一種處理器,日本超算「京」只採用的處理器是富士通製造的SPARC64 VIIIfx,神威藍光只採用了8704片申威1600,Mira和Sequoia(Sequoia採用了約160萬個A2處理核心),就只採用了PowerPC A2處理器,這些都沒有採用GPU或眾核晶元等加速器。日本的京,IBM 的Mira和Sequoia和中國的神威藍光都是同構超算的代表。
異構計算主要是指使用不同類型指令集和體系架構的計算單元組成系統的計算方式。常見的計算單元類別包括CPU、GPU等協處理器、DSP、ASIC、FPGA等。異構計算是一種並行和分布式計算,它或是用能同時支持simd方式和mimd方式的單個獨立計算機,或是用由高速網路互連的一組獨立計算機來完成計算任務。具體來說,異構計算是在運算中既使用處理器,又使用GPU或眾核晶元等加速器。以美國泰坦和中國天河2號為例,泰坦有18688個運算節點,每個運算節點由1個16核心AMD Opteron 6274處理器和1個NVIDIA Tesla K20加速器組成,共計299008個運算核心;
天河2號有16000個計算節點,每個節點由2片Intel的E5 2692和3片Xeon PHI組成,共使用了32000片Intel的E5 2692和48000片Xeon PHI;天河1A使用了14336片Intel Xeon X5670處理器和7168片NVIDIA Tesla M2050高性能計算卡。除了泰坦和天河2號和天河1A之外,曙光6000也是採用了異構計算架構。
(曙光6000)
2.超算的用途
要說異構計算的優勢,那就要從超算的用途說起了。
PC在日常使用中,除玩游戲、3D渲染等之外,大多是程序都倚重整數運算性能。
但超算則不同,超算大多應用於科研和軍事領域。例如彈道計算、核物理研究、氣候氣象、海洋環境、數值風洞、碰撞模擬、蛋白質折疊、基因研究、新葯研發、分子動力學模擬、量子化學計算、材料科學、動漫設計、工業設計等方面,在運算中更加倚重雙精浮點性能,對整數運算性能要求相對較低。這就產生了用加速器提升浮點運算性能的需求。
3.同構超算的高效率
同構超算雖然理論雙精浮點性能不如異構超算,但可以獲得較高的運行效率。異構超算雖然理論雙精浮點性能非常強悍,但運行效率不如同構超算。
(Sequoia,採用PowerPC A2處理器)
舉例來說,IBM Mira和Sequoia使用PowerPC A2處理器,效率達85.3%和85.6%。日本的京效率更是高達92.9%。
而異構超算效率普遍不高,採用E5和XeonPHI的天河2號和Stampede效率為61.7%、60.7%。採用AMD Opteron 6274和NVIDIA Tesla K20的Titan效率為64.9%。
天河2號和Stampede效率不高的一個重要因素就是Xeon PHI的浮點運算效率較低。在談這個問題前,先釋下linpack測試。
(Stampede)
衡量晶元性能的一個重要指標就是計算峰值,例如浮點計算峰值,它是指計算機每秒鍾能完成的浮點計算最大次數。包括理論浮點峰值和實測浮點峰值:
理論浮點峰值是該計算機理論上能達到的每秒鍾能完成浮點計算最大次數。
理論浮點峰值=CPU主頻×CPU每個時鍾周期執行浮點運算的次數×系統中CPU核心數目。
實測浮點峰值是指Linpack測試值,也就是說在這台機器上運行Linpack測試程序,通過各種調優方法得到的最優的測試結果。
在實際程序運行過程中,幾乎不可能長時間維持在實測浮點峰值,理論浮點峰值更是僅僅存在於紙面上的數據。理論浮點峰值和實測浮點峰值只是作為衡量機器性能的一個指標,用來表明機器處理能力的一個標尺和潛能的度量。
回歸正題,Xeon PHI在運行linpack測試時,實際性能僅僅相當於理論最大運算性能的百分之六十幾,相比之下,申威1600的linpack測試效率遠高於Xeon PHI。
但因Xeon PHI的理論浮點性能較高達1T Flop,大大超過申威1600的雙精浮點運算的理論峰值,因此即使僅僅只有百分之六十幾的效率,實測雙精浮點運算性能還是大幅超越申威1600。因而使Xeon PHI得到了國防科大等單位或公司的青睞。
因此,同構超算的效率相對高於異構超算,而天河2號效率偏低的原因更多的是Xeon PHI本身效率較低,不是國防科大的技術問題。
4.同構超算編程更方便
cpu適合做串列,邏輯復雜度高的任務,gpu適合做簡單,並行度高的任務,cpu和gpu的編程模型是不一致的;所以異構超算在編程方面就不太容易,比如使用amd的apu和nvidia的cpu+gpgpu在編程上就不如同構超算方便。另外,gpgpu作為加速卡和cpu是不共享內存的,需要程序員顯式拷貝而導致性能損失。
另外,因軟體方面的原因,異構超算的通用性相對於同構超算有所不如,舉例來說,GPGPU只能跑OPEN CL、OPEN ACC代碼,不能跑OPENMP代碼。
5.異構計算的優勢
以天河2號的一個計算節點為例:
Xeon E5的滿載功耗達145W,雙精浮點為0.21T Flops,而Xeon PHI功耗300W,雙精浮點達1T Flops。
天河2號一個計算節點由2片Xeon E5和3片Xeon PHI,理論雙精浮點性能為3.2T Flops,功耗為1190W,理論雙精浮點性能與功耗的比值為2.87GFlops/W。相同功耗下使用8片Xeon E5隻能獲得1696Gflops的理論雙精浮點性能,理論雙精浮點性能與功耗的比值為1.42GFlops/W。從數據可以看出,在同等功耗下,在使用Xeon PHI加速後,理論雙精浮點性能與是只使用Xeon E5的2倍。
因此,相同功耗的情況下,異構超算能獲得非常高的理論雙精浮點性能。
綜上所述,同構超算的編程方便,效率高,通用性強。異構超算編程麻煩,效率不如同構超算,通用性差,性能功耗比高。異構超算雖然在通用性和效率方面相比同構超算處於劣勢,但更加好的性能功耗比使其成為更受偏愛的原因。
Ⅳ GPGPU編程技術(仇德元 編著)中第四章一個實例 「第一個CUDA程序」我是在VS2008+CUDA5.0下運行的老出錯
因為cuda5.0 把cutil.h等一堆頭文件刪除並重寫了其中的函數,cuda4.x到5.x變化很大,給跪。。。
Ⅳ GPU的浮點運算能力為什麼會如此恐怖
要知道GPU本身就是從CPU演變而來的分支。原本奔騰4以前的時代,浮點運算一直都是CPU在執行,而今的系統和軟體發展,使得需求的硬體配置越來越高,將浮點運算從CPU中分離出來,單獨作為一個單元管理,所謂GPU就是這么來的。
由於CPU的任務繁多,除了3D顯示之外,還要做內存管理、輸入響應等非3D圖形處理工作,因此在實際運算的時候性能會大打折扣,常常出現顯卡等待CPU數據的情況,其運算速度遠跟不上今天復雜三維游戲的要求。
GPU相當於專用於圖像處理的CPU,在處理圖像時它的工作效率遠高於CPU,但是CPU是通用的數據處理器,在處理數值計算時是它的強項,它能完成的任務是GPU無法代替的,所以不能用GPU來代替CPU。
將3D顯示部分的計算交給GPU去處理,讓CPU和GPU各司其職,可以大大提高整機運行效率。
Ⅵ GPU和GPGPU是什麼它們和CPU有什麼區別
GPU概念 GPU英文全稱Graphic Processing Unit,中文翻譯為「圖形處理器」。GPU是相對於CPU的一個概念,由於在現代的計算機中(特別是家用系統,游戲的發燒友)圖形的處理變得越來越重要,需要一個專門的圖形的核心處理器。 GPU的作用 GPU是顯示卡的「心臟」,也就相當於CPU在電腦中的作用,它決定了該顯卡的檔次和大部分性能,同時也是2D顯示卡和3D顯示卡的區別依據。2D顯示晶元在處理3D圖像和特效時主要依賴CPU的處理能力,稱為「軟加速」。3D顯示晶元是將三維圖像和特效處.
GPGPU是用於通用目的計算的圖形處理器,可以幫助CPU進行非圖形相關程序的運算。這項技術被NVIDIA稱為CUDA(統一計算設備構架),目前NVIDIA採用以GeForce 8上龐大的流處理器作為硬體基礎,利用c語言為釋放可編程GPU的能力,實現全新類別的應用程序和新的計算性能水平。
GPGPU,也有人形象地稱為GP2U(GP的兩次方U)。這兩個GP代表拉不同的含義,後一個GP表示圖形處理器(Graphic Process),和U加在一起正是我們熟知的GPU(圖形處理器);前一個GP則表示通用目的(General Purpose),所以GPGPU一般也被稱為通用圖形處理器或通用GPU。
在3D領域,GPU的用途很簡單,就是為拉更好的渲染3D場景,減輕CPU在圖形運算方面的負擔。而時下剛剛出台的GPGPU,則是將應用范圍擴展到拉圖形之外,無論是科研教育,財務計算,還是在工業領域,GPGPU都得到拉廣泛的使用,關於它的科研成果和新應用模式也層出不窮
Ⅶ c語言 gpu
U越來越強大,GPU為顯示圖像做了優化之外,在計算上已經超越了通用的CPU。如此強大的晶元如果只是作為顯卡就太浪費了,因此NVidia推出CUDA,讓顯卡可以用於圖像計算以外的目的,也就是超於游戲,使得GPU能夠發揮其強大的運算能力。
一年前NVIDIA發布CUDA,這是一種專門針對GPU的C語言開發工具。與以往採用圖形API介面指揮GPU完成各種運算處理功能不同,CUDA的出現使研究人員和工程師可以在熟悉的C語言環境下,自由地輸入代碼調用GPU的並行處理架構。這使得原先需要花費數天數周才能出結果的運算大大縮短到數幾小時,甚至幾分鍾之內。
CUDA是用於GPU計算的開發環境,它是一個全新的軟硬體架構,可以將GPU視為一個並行數據計算的設備,對所進行的計算進行分配和管理。在CUDA的架構中,這些計算不再像過去所謂的GPGPU架構那樣必須將計算映射到圖形API(OpenGL和Direct 3D)中,因此對於開發者來說,CUDA的開發門檻大大降低了。CUDA的GPU編程語言基於標準的C語言,因此任何有C語言基礎的用戶都很容易地開發CUDA的應用程序。
那麼,如何使得CPU與GPU之間很好的進行程序之間的銜接呢?以GPGPU的概念來看,顯卡仍然需要以傳統的DirectX和OpenGL這樣的API來實現,對於編程人員來說,這樣的方法非常繁瑣,而CUDA正是以GPGPU這個概念衍生而來的新的應用程序介面,不過CUDA則提供了一個更加簡便的方案——C語言。我們回顧一下CUDA的發展歷史。
Ⅷ 有關OpenCL編程的書有哪些注意不是OpenGL
OpenGL Programing Guide(OpenGL紅寶書)
Ⅸ GPU編程常識求助:cg、opencv、opengl、cuda、glsl等
你好,
首先,cg,opengl,glsl都是跟計算機圖形有關的。cg基本是做渲染的,opengl是一個開源圖形庫,和微軟的direct3D是一樣的。glsl是shading language ,專門用來寫shader的,在GPGPU( general purpose GPU)概念出來之前,好多人用glsl來做並行計算。
其次,CUDA和OpenCL是兩個專門做GPU運算的庫。CUDA非常好用,它有自己的NVCC編譯器,和各個系統都兼容很好,但是僅限於用於NVIDIA自己的顯卡。OpenCL雖然任何顯卡都可以使用,但是它的GPU的代碼要放到單獨的一個文本文件中編譯,操作上要比CUDA要復雜。
最後,其實CUDA和OpenCL學那個多一樣,因為並行運算的思想是一樣的。推薦你兩本書:
Programming Massively Parallel Processors 2nd(入門)
CUDA Programming A Developer-'s Guide to Parallel Computing with GPUs (高級一點)
謝謝,望採納