在圖形圖像及高清多媒體技術領域的領導廠商S3 Graphics發布了S3 FotoPro™,這是一款基于Chrome 400系列顯示芯片可編程架構的GPGPU應用程序。它完美利用S3流處理器矩陣,利用GPU加速并行數據處理,觸發數以千計的線程進行并行處理,從而實現千兆級的數據計算能力。S3 FotoPro™的發布標志著GPGPU真正開始進入應用階段。
GPGPU:從圖形處理到通用計算
GPU用于通用計算(General Purpose GPU,也就是GPGPU)成為最近幾年來業內備受關注的一個話題。在很長一段時間,GPU都是圖形處理的專有載體,很少有人想過使用GPU來處理繪圖之外的一般計算。然而,近幾年來,GPU性能的迅速提升以及相關技術的發展讓人們對于GPU的這一應用給予了空前的期望和熱情。
在性能提升的速度上,GPU已經遠遠超出CPU。很長一段時間以來,CPU一直按照摩爾 定律闡釋的速度向前發展,每隔18個月單位面積IC上所容納的晶體管數目便增加一倍,性能也提升一倍。然而,自1993年開始,GPU的性能便以每年2.8倍的速度高速增長。
而在浮點運算能力和帶寬等關鍵指標上,GPU也遠遠超出了同期的CPU。拿一塊工作頻率為3.0GHz的P4處理器來說,其晶體管數目為1.25億個,即使算上SSE指令集的SIMD,也只有6GFlops的峰值浮點處理能力,而同期的一塊NV 40 GPU就有2.22億個晶體管,峰值浮點運算能力很輕易就超過40GFlops。拿帶寬來說,英特爾曾為其P4 XE系列處理器(1066MHz前端總線)所能提供的8.6G帶寬而倍感自豪,而同期一塊普通的GeForce 6800就擁有20GB/s以上的顯存帶寬。
基于強大的并行處理能力和極高的存儲器帶寬,我們完全可以將GPU抽象成一個流處理器(Steam Processor),來用于諸如科學計算、數據分析、線性代數、流體模擬等需要大量重復的數據運算和密集的內存存取的應用程序,那么我們就能獲得比CPU強悍的多的計算能力。
隨著GPU可編程性技術的出現,GPGPU也由構想逐漸進入可以實用的嶄新階段。
S3 FotoPro™:開GPGPU應用之先河
但是從實用到應用,還有一個重要的坎要跨,那就是必須有相應的計算工具與之相配合。S3 FotoPro™正是這樣一款計算工具,目前其主要的應用是借助S3 GPU的流處理器架構從事復雜圖形計算進而改善圖像質量。
FotoPro可以對圖像進行評估,然后使用可定制算法對圖片進行適當調整,以增強色彩清晰度、減少霧化、優化飽和度和音色平衡性、提高人物皮膚平滑度等,還能同時對多個圖像進行自動增強處理。此外,在進行圖像質量增強的時候,并不破壞原始文件,而是在文件名之后加入“_r”后綴另存為新圖像。
原始圖片 經過Fotopro增強后的圖形效果
如下圖所示,在使用S3 FotoPro™進行圖像質量改善的時候,并不是GPU承擔所有的計算任務,而是GPU和CPU來協同完成。如下圖所示,其基本的程序如下,當圖形計算的任務下達后,首先由CPU完成解碼工作,然后將需要進展的后續工作根據不同的處理單元特性進行匹配性分配。需要進行大量并行計算的任務便由GPU承擔,而剩下的協調計算任務則由CPU自己來完成。在這個過程中,基本的計算資料置于CPU的寄存器中,GPU和CPU根據各自計算的需要從中調用基礎數據。當這一階段的計算過程完成,CPU便將雙方計算獲得的數據進行整合,重新編碼,進而獲得質量改善后的圖片。
由于在使用過程中,GPU的并行計算能力得到了充分的應用,直接反應在結果上,便是處理任務的時間大幅縮短。如下圖所示,在將GPU納入之后,處理同一任務的時間縮短近60%,但是圖像處理的品質卻毫不遜色。
注:在本次測試中,CPU采用的是Intel E8200 (2.66G dual-core)
如今,S3 FotoPro還在持續改進中。據S3工程師介紹,在未來推出的版本中,將會讓GPU承擔更多的計算任務,如解碼/編碼、更多的分析工作等,以充分發揮其強大的并行計算能力。
盡管目前的應用還沒有脫離圖形處理的范疇,但是S3 FotoPro的推出還是讓人們看到了希望:GPGPU并不是僅僅停留在概念或者實驗室層面,而是已經可以應用并解決現實問題。相信,不久之外,在HPC、高清視頻編解碼、科學計算、工程計算、醫學、圖像處理、物理計算等眾多領域,我們都可以看到GPGPU技術應用的身影。
(新聞稿 2008-11-17)