| Version 41 (modified by adherelinux, 15 years ago) (diff) | 
|---|
Adherelinux's Page
Introduce GPGPU
- 前言
- 平行運算 
 - GPGPU(General Purpose Graphic Unit) 
 
 - 平行運算 
 - CUDA硬體架構 
- 高速運算的方案 
 - CUDA軟硬體  
 
 - 高速運算的方案 
 
前言
- 電腦與人腦的比較
- 人腦的運算能力:10次運算/秒(10 HZ)。
 - 電腦的運算能力: 109 次運算/秒 (109 HZ,十億次)。
 - Hz(赫 Hertz)等於每秒振動一週之頻率。單位時間(如1秒)內所產生的脈衝個數稱為頻率。
 
 - 需要長時間計算工作最常見的工程問題
- 飛彈的導引系統:1011 ~10 12次運算/秒。
 - 天氣預測。
 - 核子試爆結果。
 - DNA結構模擬。
 
 
什麼是平行運算
平行運算其實就是將同一個運算的工作,交給整個 Cluster 裡面的所有 CPU 來進行同步運算的一個功能。由於使用到多個 CPU 的運算能力,所以可以加快運算的速度。
(圖檔來源鳥哥私房菜)
GPGPU(General Purpose Graphic Unit)
- GPU,最主要的功能是滿足電腦顯示圖形的元件。
 - GPGPU就是以繪圖晶片進行通用的運算,由於新型的繪圖晶片開始允許可程式性,讓原本被鎖定用於繪圖運算的繪圖晶片,開始可執行通用運算。
 - 一般而言,中央處理器負責大部分的運算工作,也是所謂的通用運算,而顯示卡晶片專門處理影像,彼此的分工明確。
 - GPU多核心的架構,比起傳統CPU架構帶來更強的處理能力,人類對於運算的需求越來越大,如核能試爆、氣候預測與病毒防治,都需要大規模的運算能力,但傳統的中央 處理器架構,以英特爾的Xeon處理器為例,最高只有6個核心,然而一顆Nvidia GeForce? 8800 GTX繪圖晶片,卻擁有128個處理核心,由於多核心的架構,更適合超級電腦的平行運算運用。
 - 以華碩推出的GPU伺服器,內含Nvidia Tesla繪圖晶片,光是一臺直立式伺服器就擁有968個運算核心,浮點運算量就可達到1.1teraflop。 (1 Teraflop表示每秒鐘可完成1萬億次浮點計算)
 
(圖來源Nvidia progrmming guile)
(1 GFLOP/s為每秒所能完成十億浮點運算數)
- 在2001微軟推出DirectX9,讓繪圖處理器也能用浮點進行數學運算,讓繪圖晶片可程式化,開始做為通用運算之用,再加上,繪圖晶片擁有數量龐大的核心數,針對平行運算應用,帶來更為強 大的浮點運算能力,讓GPGPU(General Purpose Computing on Graphics Processing Units)就因此而誕生,利用繪圖核心來處理原本中央處理器負責的通用運算任務。
 - 2006年Nvida公司編寫一套編譯器NVCC得函式庫,NVCC是處理器與編譯器的混合體。當遇到CUDA程式碼,編譯器會自動編譯為GPU的代碼,也就是會轉換為CUDA Driver的代碼。若是Host Host C++代碼,則用C++編譯器進行編譯。
 
(圖來源Nvidia progrmming guile)
(CPU與GPU的結構不同)
高速運算的方案
- PC Cluster:MPICH2(支援C,C++,Fortran,Python)。目前有4核心的CPU,如果50電腦,透過MPICH2以便有200個核心一起做平行計算。Intel在2009年底有新一代的8核心Xeon CPU量產,Intel預計在2020年推出80核心的產品。
 
(圖來源a joint entity of the University of Chicago and Argonne National Laboratory)
(大型主機)
- GPGPU(GPGPU(General Purpose Graphic Unit): 2006年11月Nvidia公司推出Cuda使用於8000 Geforce 系列的產品,可以使用C語言寫顯示卡的計算程式。然而AMD也提 供C語言的工具與之競爭。 2008年底蘋果電腦公布OpenCL(Open Computing Language)規格,是跨硬體的程式語言。 遵守C和C++語法,但FORTRAN或PYTHON可以透過mixed language。
 
- PC Cluster+GPGPU:MPICH2+CUDA透過MPICH2可以使各電腦的GPGPU一起做平行運算,充分發揮硬體計算能力。
 
CUDA 軟硬體架構
- Nvidia 公司的產品 Nvidia 9-Series Architecture (Geforce 9800 GT)
 
Attachments (9)
- 什麼是平行運算.JPG (23.3 KB) - added by adherelinux 16 years ago.
 - PeakGFLOPS.JPG (18.6 KB) - added by adherelinux 16 years ago.
 - CPUVSGPU.JPG (794.5 KB) - added by adherelinux 16 years ago.
 - 大型主機.JPG (13.9 KB) - added by adherelinux 16 years ago.
 - Nvidiaproduct9800GT.JPG (14.0 KB) - added by adherelinux 15 years ago.
 - nvidia9800GTstructure.JPG (44.0 KB) - added by adherelinux 15 years ago.
 - sofeware_and_hardware.JPG (38.3 KB) - added by adherelinux 15 years ago.
 - Grid_of_Thread Blocks.JPG (46.8 KB) - added by adherelinux 15 years ago.
 - GPGPU_Device.JPG (33.5 KB) - added by adherelinux 15 years ago.
 
Download all attachments as: .zip

