介紹
GPU通用計算API
GPU通用計算技術,簡單的說就是讓GPU(顯示卡核心)處理圖形數據之外的其他數據。
在過去的幾年裡,GPU一直以每年或每半年更新一代的速度發展,其發展速度已遠把CPU拋在後面。隨著DirectX 10規範的出現,GPU開始採用統一渲染架構,其性能與功能也變得更為強大,它能做的事情已不單只是運行3D遊戲,不少科學計算領域已開始利用GPU的優勢進行計算。ATI最先提出通用計算的概念,與史丹福大學合作,在Folding@Home研究項目中利用ATI Radeon X1900作運算加速。通過GPU來模擬蛋白質合成,進而找尋有關蛋白質的疾病。自ATI R520 GPU問世以來,基於它的可程式架構,ATI投入大量資源研究通用計算,也就是說用GPU處理非圖形數據,處理一般在主流伺服器和桌面處理器上運行的軟體,性能比CPU高出10-30倍。
由於CPU與GPU在架構完全不同,軟體要在GPU上運行,就必須通過特定的環境或接口。通俗來說,就 是需要一種工具,把程式設計師的語言翻譯成GPU聽的懂的語言。這個工具,就叫做GPU通用計算API。目前主流的通用計算API包括OpenCL 、Directcompute。當然還有nVIDIA CUDA架構和ATI Stream架構也可實現相同的功能 。
技術硬體支持
nVIDIA Geforce8系列,9系列,GT200系列,GT400系列,GT500系列 ,GT600系列,ION系列。AMD Radeon HD4000系列,HD5000系列,HD6000系列顯示卡均提供最Directcompute的硬體支持。
作業系統支持
Windows Vista(需更新 KB971512補丁,以便打開Vista的DirectX 11支持)、Windows 7、Windows Server 2008提供對Directcompute的支持。Windows XP以下和非Windows系統不在支持之列。
實際套用
視頻處理
GPU在視頻轉碼方面有著得天獨厚的優勢。Windows 7增加了 視頻即時拖放轉換功能,可以將電腦中的視頻直接轉換到移動媒體播放器上,如果你的GPU支持Directcompute,那么這一轉換過程就將由GPU完成。其轉換速度將達到CPU5-6倍。
Windows 7中的Windows Media Player和Windows Media Center增加了對H.264和Quicktime.mov.content高清播放的原生支持。Windows 7還增加了對由GPU支持的高清播放的in-the-box支持,可以流暢觀看,同時CPU占用率很低。這一切都是藉助Directcompute實現的。
CyberLink旗下軟體最新版均提供Directcompute支持。在AMD顯示卡上,通過ATI Stream技術實現,在nVIDIA顯示卡上,則通過CUDA技術實現。
物理加速
nVIDIA公司非常成功的將PhysX物理引擎,通過CUDA技術與Geforce顯示卡相結合,誕生了nVIDIA PhysX物理加速技術,但是PhysX物理加速技術是基於私有的CUDA標準。為了與之競爭,AMD推出了基於OpenCL和Directcompute的“開放物理計畫”與之抗衡。開放物理計畫聯合了Havok、Bullet和Pixelux DMM三種物理引擎,基於ATI Stream、OpenCL和Directcompute,將AMD GPU中強大的並行計算能力運用到遊戲中去加速物理計算。同時開放物理計畫也貫徹了異構運算理念,由CPU+GPU聯合進行物理計算,GPU負責柔性材料模擬、流體模擬、爆炸模擬等大計算量的物理模擬計算。任何支持Directcompute技術的顯示卡都將支持這一計畫。
動態模擬
利用Directcompute技術,GPU可以對自然界的事物做動態模擬,達到以假亂真的效果。
右圖是nVIDIA製作的DEMO,透過Directcompute技術,在GPU上運算快速傅立葉變換,展現了模擬的動態海洋。
隨著技術的發展, 動態模擬越來越多的用到遊戲中,為我們在遊戲中帶來栩栩如生的虛擬世界。
網頁加速
Internet Explorer 9加入了對Directcompute技術的支持,可以調用GPU對網頁中的大計算量元素做加速計算,從而減輕CPU的負擔。 在AMD顯示卡上,通過ATI Stream技術實現,在nVIDIA顯示卡上,則通過CUDA技術實現。
辦公軟體
Excel2010、Powerpoint2010均提供Directcompute技術支持。在AMD顯示卡上,通過ATI Stream技術實現,在nVIDIA顯示卡上,則通過CUDA技術實現。
參見條目
•OpenCL
•CUDA
•GPGPU