GPGPU |
GPGPU就是以繪圖晶片進行通用的運算,由於新型的繪圖晶片開始允許可程式性,讓原本被鎖定用於繪圖運算的繪圖晶片,開始可執行通用運算,這麼一來,透過繪圖晶片將帶來更強大的運算能力。 |
一般來說,中央處理器負責大多數的運算,也就是所謂的通用運算,而繪圖處理器專門負責影像處理,彼此的分工相當明確,不過,這樣的分工模式開始有了變化,由於微軟於2001年推出DirectX9,讓繪圖處理器也能用浮點進行數學運算,讓繪圖晶片可程式化,開始做為通用運算之用,再加上,繪圖晶片擁有數量龐大的核心數,針對平行運算應用,帶來更為強大的浮點運算能力,讓GPGPU(General Purpose Computing on Graphics Processing Units)就因此而誕生,利用繪圖核心來處理原本中央處理器負責的通用運算任務。
特性 透過GPU多核心的架構,比起傳統CPU架構帶來更強的處理能力
人類對於運算的需求越來越大,如核能試爆、氣候預測與病毒防治,都需要大規模的運算能力,但傳統的中央處理器架構,以英特爾的Xeon處理器為例,最高只有6個核心,然而一顆Nvidia GeForce 8800 GTX繪圖晶片,卻擁有128個處理核心,由於多核心的架構,更適合超級電腦的平行運算運用。以華碩於去年推出的GPU伺服器,內含Nvidia Tesla繪圖晶片,光是一臺直立式伺服器就擁有968個運算核心,浮點運算量就可達到1.1teraflop。
也因此,目前包含ATI與Nvidia等繪圖晶片廠商都推出相關的GPGPU的產品。甚至,連CPU廠商英特爾也計畫推出Larrabee處理器,透過IA的繪圖核心,讓處理器的浮點運算能力可以達到teraflops等級。
發展 編譯器影響GPGPU的未來
GPGPU最大的優勢就是強大的運算能力,但最大的缺點就是應用程式必須改寫,臺灣超級電腦發展重鎮,國家高速網路與計算中心(國網中心),該中心副主任黃維誠表示,目前臺灣超級電腦的應用主要透過Fortran、C語言與C++語言來編寫程式,其中,比較老舊的應用程式絕大多數都是以Fortran語言來編寫,但以Nivida的CUDA為例,可以利用CUDA技術來使用底層繪圖處理器的運算資源,但目前CUDA技術並無法支援Fortran語言,如果改用GPGPU就必須要重新改寫程式碼,也因此,除非是全新開發的應用程式,否則都將面臨改寫的命運。黃維誠說:「GPGPU是一個重要的發展趨勢,雖然有強大的運算能力,但編譯程式則是攸關GPGPU運算的未來發展趨勢。」
雖然目前CUDA已經可以支援C與C++的語言介面,但並不表示,若是以C或C++語言編寫的程式就可以完全不用改寫程式碼,黃維誠表示,由於繪圖處理器與中央處理器的架構不同,就算用C或C++的語言來編寫應用程式,若轉移至CUDA平臺還是要改寫程式碼。
為了降低改寫的幅度,目前有部分廠商推出編譯器,透過編譯器可以將應用程式快速轉移至CUDA平臺,黃維誠認為,目前的編譯器效能並不太理想,比方來說,如果是一套未改寫的應用程式,透過編譯器只能提升2倍的效能,但如果重寫改寫這個應用程式,效能可能提升30倍。
也因此,黃維誠認為,GPGPU要能獲得超級電腦用戶的青睞,就是要提升編譯器的效能,因為如果有一套好的編譯器,可以讓使用者輕易做到移轉的動作,這麼一來,挾帶著GPGPU強大的運算能力,將會吸引許多研究者的目光。文⊙林文彬
熱門新聞
2025-02-08
2025-02-12
2025-02-11
2025-02-10
2025-02-10
2025-02-11