wiki:adherelinux

Adherelinux's Page

Introduce GPGPU

  • 前言
    • 平行運算
    • GPGPU(General Purpose Graphic Unit)
  • CUDA硬體架構
    • 高速運算的方案
    • CUDA軟硬體

前言

  1. 電腦與人腦的比較
    • 人腦的運算能力:10次運算/秒(10 HZ)。
    • 電腦的運算能力: 109 次運算/秒 (109 HZ,十億次)。
    • Hz(赫 Hertz)等於每秒振動一週之頻率。單位時間(如1秒)內所產生的脈衝個數稱為頻率。
  2. 需要長時間計算工作最常見的工程問題
    • 飛彈的導引系統:1011 ~10 12次運算/秒。
    • 天氣預測。
    • 核子試爆結果。
    • DNA結構模擬。

什麼是平行運算

平行運算其實就是將同一個運算的工作,交給整個 Cluster 裡面的所有 CPU 來進行同步運算的一個功能。由於使用到多個 CPU 的運算能力,所以可以加快運算的速度。

(圖檔來源鳥哥私房菜)

GPGPU(General Purpose Graphic Unit)

  • GPU,最主要的功能是滿足電腦顯示圖形的元件。
  • GPGPU就是以繪圖晶片進行通用的運算,由於新型的繪圖晶片開始允許可程式性,讓原本被鎖定用於繪圖運算的繪圖晶片,開始可執行通用運算。
  • 一般而言,中央處理器負責大部分的運算工作,也是所謂的通用運算,而顯示卡晶片專門處理影像,彼此的分工明確。
  • GPU多核心的架構,比起傳統CPU架構帶來更強的處理能力,人類對於運算的需求越來越大,如核能試爆、氣候預測與病毒防治,都需要大規模的運算能力,但傳統的中央 處理器架構,以英特爾的Xeon處理器為例,最高只有6個核心,然而一顆Nvidia Geforce 9800 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。

(圖來源 Nvidia company product)

  • 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。

(圖來源 Nvidia company programing guile)

  • 硬體方面是產品所附有的,這方面提供9800GT給予16 multiprocessors,128 thread processors。
  • 軟體方面

Last modified 15 years ago Last modified on May 10, 2010, 4:07:39 PM

Attachments (9)

Download all attachments as: .zip