Version 43 (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)
(圖來源 Nvidia company programing guile)
- 硬體架構主要區分每個multiprocessors,有8個thread processors。而9800GT的產品,共有16 multiprocessors,所以總共128 thread processors。
Attachments (9)
- 什麼是平行運算.JPG (23.3 KB) - added by adherelinux 15 years ago.
- PeakGFLOPS.JPG (18.6 KB) - added by adherelinux 15 years ago.
- CPUVSGPU.JPG (794.5 KB) - added by adherelinux 15 years ago.
- 大型主機.JPG (13.9 KB) - added by adherelinux 15 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