何謂GPU運算?

張貼日期:Jan 26, 2010 3:6:37 PM

何謂GPU運算?

GPU運算為使用GPU(繪圖處理器)去執行一般的科學和技術的運算。

GPU運算的模式為在一個異質模型中同時使用CPU和GPU。其中有關應用程式的連續部分在CPU上運作,重度計算的部分則在GPU由GPU負責。就使用者的角度而言,由於採用了GPU的高效能去強化處理能力,因此應用程式的運作速度得以加快。

應用程式開發者必需修改他們的應用程式以將其重度計算的核心分配至GPU。應用程式的其他部分則仍在CPU上運作。欲將某功能分配至GPU,則必需重寫此功能,以執行此功能中的平行運算,並增加”C”關鍵字,如此才能在應用程式和GPU間傳輸數據。

GPU運算能力來自於由NVIDIA的龐大平行架構,其被稱為CUDA架構。此CUDA架構包含100多個處理器核心,這些核心經由協同運作以處理應用程式中的數據集。

Tesla 10-series GPU為第二代的CUDA架構,其功能針對科學應用進行最佳化,例如IEEE標準雙重精密浮點硬體支援;分佈在GPU中以分享記憶體形式存在的本地端數據數據快速緩衝儲存;以及合併記憶體接取等。

"繪圖處理器經過不斷的發展,已能輕易地執行許多實際應用,且其運作速度較多核心系統加快許多。

未來的運算架構將是複合式系統,由平行核心和多核心中央處理器共同運作。"

Prof. Jack Dongarra

創新運算實驗室主任

田納西大學

GPU運算的歷史

繪圖晶片最初是被做為固定功能繪圖管線。隨著時間進展,這些繪圖晶片的可程式化程度日益增加,讓NVIDIA得以推出全球第一顆GPU,或稱為繪圖處理器。在1999至2000年間,特別是電腦科學家,以及在醫療成像和電磁學等領域中的研究者開始採用GPU去運作一般的運算應用程式。他們發現GPU優異的浮點運算效能讓許多科學應用的效能大幅提昇,而這也帶動了科學界廣泛使用所謂的GPGPU;以GPU進行一般運算蔚為風潮。

NVIDIA深知讓廣大科學界使用GPU的高效能大有可為,因此決定投入資源修改GPU,使其能完全的程式化,以利科學領域的應用,並增加對於高階語言,例如C 和C++的支援。這些努力造就了GPU的CUDA架構

CUDA平行架構及程式化模型

CUDA平行硬體架構搭配有CUDA平行程式模型,其提供一抽象指令集,能夠表達精細等級不同的數據,以及平行任務。程式設計者可選擇以高階語言,例如C, C++, Fortran或是驅動程式API,例如OpenCL™ 和DirectX-11 Compute去表達平行任務。

NVIDIA首先針對C語言提供語言支援。CUDA的C語言軟體發展工具套件讓GPU能採用C語言,以最少的關鍵字或延伸指令進行程式化。針對Fortran, OpenC等程式語言的支援即將推出。

CUDA平行程式化模型導引程式設計者將問題劃分為數個粗略的子問題,這些子問題能被分別以平行的方式進行處理。之後再針對子問題進行精細的平行處理,以確保能以平行方式協同處理每一子問題。

CUDA GPU架構以及相對應的CUDA平行運算模型現已使用於100餘種應用中,且有將近1000篇的研究論文論及此架構及模型。 CUDA 專區列出多項應用及多篇文章。

OpenCL是蘋果公司之商標,經由Khronos集團授權使用。

鴻鵠國際代理資訊 歡迎來電洽詢