APP技術概覽
AMD APP技術發展歷程
AMD APP技術沿襲自ATI Stream技術。 在過去的幾年裡,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上運行,就必須通過特定的環境或接口。為此,NVIDIA方面發布了CUDA技術,並放出了相應的開發包,程式設計師通過這個接口進行軟體開發,軟體就能在GeForce 8系列及其以上的顯示卡上運行。作為NVIDIA顯示卡市場上最大的競爭對手,AMD方面當然不甘落後,在08年12月發布了ATI Stream技術(現稱作AMD APP技術)回應NVIDIA的CUDA。這樣,NVIDIA與AMD的競爭便從3D性能擴展到GPU並行計算上了
AMD的APP流處理技術可使Radeon HD系列顯示卡發揮出其強大的並行計算能力。現在AMD的高端顯示卡Radeon HD5970擁有3200個流處理器,可以簡單理解成擁有3200個核心,通過APP技術便可發揮這3200個核心的計算能力。
相比於CUDA基於nVIDIA自身的封閉架構不同,AMD APP技術是基於開放標準的,因為幾乎所有曾經存在的私有標準都消亡了。目前還活著的私有標準幾乎只剩下Nvidia的CUDA了,而同樣是Nvidia的標準,其早先的Cg已經看不見身影。相對的,開放性標準中,DirectX、OpenGL都是為我們所熟知的,而DVI、CDP、JEDEC也都還確實存在著。AMD企業級計算的產品專家Ed Buckingham表示,他們認為未來的標準將必然傾向於開放式,而其中最有前途的就是OpenCL和DirectX。因此AMD APP技術自從其誕生之日便是基於OpenCL和Directcompute這些開放標準。
最新的APP技術依然基於開放型標準的OpenCL開發而來,並且AMD目前還提供了APP SDK2.2技術開放。而且在未來一段時間裡,包括微軟在內的越來越多廠商也將紛紛加入AMD APP技術的陣營當中。
Fusion(融合)理念
無論是NIVIDA還是AMD,都意識到GPU強大的運算能力並不只在3D遊戲領域,在其他需要類似大型運算的領域裡,GPU同樣可以勝任,因此便有了GPU用於並行計算的概念。但與NVIDIA力推GPU最為重要或Intel堅持CPU更重要不同,AMD認為CPU和GPU同樣重要。AMD認為,GPU可用於大型運算,而CPU則繼續負責傳統的串列運算。只有兩個配件相互配合,發揮自己的優勢,才是最最佳化的平台,這也是AMD的“Fusion”理念。通過AMD APP這項技術,AMD可以讓GPU和CPU聯合起來進行通用計算,大大提高計算機的速度。
GPU相對CPU具有著兩方面的特性,一是具備龐大的並行運算能力,任務越複雜,越能體現其運算優勢;另一個特性是因為GPU的並行能力,所以其編程環境和開發方法與CPU相比要有所不同。
AMD意識到GPU的強大運算潛力並不一定只該套用在圖形處理領域,在其他需要進行類似運算的領域裡,GPU同樣可以發揮作用。AMD認為,讓CPU充當一個指令翻譯或是將任務分解為很多小任務的工作,然後將這些任務交給GPU來運算,這會大大提高運算速度。於是有了Fusion的融合理念。
相比CUDA需要獨立的編程環境來針對GPU編程,AMD的AMD APP SDK則是開放的。也就是說,通過後面第三方開發的接口程式,用戶甚至可以直接讓CPU充當翻譯的工作,只需要像以往一樣編程,也可以調用GPU來做大規模運算。
這個Fusion這個理念里,我們不會看到GPU取代CPU的想法,也不會看到CPU仍然把持主要計算,而讓GPU充當協處理器。實際上,GPU在某種程度上與CPU站在了一起,CPU和GPU真正融合,互相發揮長處,彌補不足,發揮更大性能。
驅動支持
從2010年10月開始,AMD將在驅動發布中同時提供兩個版本,其中的Catalyst APP版本驅動在提供傳統驅動功能的同時,加入了對AMD APP技術的支持,並將完整的支持OpenCL。目前為止,支持AMD APP技術的顯示卡包括AMD Radeon HD4000、HD5000、HD6000系列顯示卡。
AMD APP技術的套用
視頻處理
AMD顯示卡驅動中自帶的ATI Video Converter便是基於APP技術的視頻轉碼軟體,ATI Video Converter並非一個完全基於GPU轉碼的軟體,而是CPU+GPU聯合轉碼。它能夠讓AMD GPU與CPU共同加速,來一起完成以往僅有CPU參與的視頻壓縮,大大減少壓縮時間。與支持NVIDIA CUDA技術的Badaboom視頻壓縮軟體相比,ATI Video Converter擁有更好的轉換效率,並支持更多的格式,最重要的是ATI Video Converter是免費的,而Badaboom是收費的。
在視頻轉換的速度上,ATI Video Converter確實比Badaboom更快。轉換同一個視頻,HD 4870的電腦採用AVIVO僅需48秒就轉換完成,而GTX 280採用Badaboom則需要114秒。當然,速度不是唯一的標準,質量更為重要,ATI Video Converter的壓縮質量目前還比不上Badaboom,這點仍需要改進。
不過需要注意的是:ATI Video Converter並非調用顯示卡中的流處理器來進行轉碼,而是調用UVD引擎進行視頻轉碼。因此不同檔次的ATI顯示卡在使用ATI Video Converter轉碼時,能力是一樣的。而Badaboom是調用nVIDIA顯示卡的CUDA單元(流處理器)參與轉碼,CUDA單元多的顯示卡轉碼就會更快。
除了驅動自帶的ATI Video Converter之外,CyberLink公司的威力導演系列軟體,魅力四射系列軟體、ArcSoft TotalMedia公司的Theater軟體等均支持AMD APP技術。
物理加速
nVIDIA公司非常成功的將PhysX物理引擎,通過CUDA技術與Geforce顯示卡相結合,誕生了nVIDIA PhysX物理加速技術。為了與之競爭,AMD推出了基於AMD APP技術的“開放物理計畫”與之抗衡。開放物理計畫聯合了Havok、Bullet和Pixelux DMM三種物理引擎,基於OpenCL標準和AMD APP技術,將AMD GPU中強大的並行計算能力運用到遊戲中去加速物理計算。同時開放物理計畫也貫徹了Fusion理念,由CPU+GPU聯合進行物理計算,GPU負責柔性材料模擬、流體模擬、爆炸模擬等大計算量的物理模擬計算。
開放物理計畫尚沒有遊戲支持,但是已經不斷有新的DEMO在各個場合進行展出。
科學研究
Folding@HomeATI與史丹福大學合作,在Folding@Home研究項目中利用ATI Radeon X1900作運算加速。這是GPU第一次用於科學研究計算。在AMD收購ATI之後,雙方繼續進行合作。迄今為止,全球有不計其數的AMD GPU正在基於AMD APP技術摺疊蛋白質,以幫助科學家攻克人類疾病。
同時,AMD APP技術在石油勘探,地震研究等方面也有很多套用。中國超級計算機“天河一號”便使用了2560塊4870x2顯示卡做並行計算處理器,這同樣是基於AMD APP實現的。
Brown Deer技術公司是一個通過地動波來勘測石油天然氣的公司。在用到AMD APP技術以後,該公司發現其地動波的實時運算比用CPU快了120多倍。而同樣,在中國高性能計算年會上獲得第二名的中國科學院的研究生用AMD APP技術在HD 4870顯示卡上計算中型到大型規模的矩陣,在疊代次數達到3000以上的時候比CPU提升了至少27倍的效率。
其他方面的套用
Excel2010、PowerPoint2010、Internet Explorer 9、Adobe Flash 10.1等軟體均加入了對AMD APP技術的支持。