最近可能要開始玩CUDA,先來搞懂CUDA是甚麼!!
CUDA(Compute Unified Device Architecture, 計算統一設備架構)是NVIDIA所推出的技術,是NVIDIA的GPGPU的正式名稱。透過這個技術,用家可利用NVIDIA的GeForce 8以後的GPU和較新的Quadro GPU進行計算。亦是首次可以利用GPU作為C-編譯器的開發環境。NVIDIA行銷的時候,往往將編譯器與架構混合推廣,做成混亂。實際上,CUDA架構可以相容OpenCL或者自家的C-編譯器。無論是CUDA C-語言或是OpenCL,指令最終都會被驅動程式轉換成PTX代碼,交由顯示核心計算。
GeForce 8800 GTX的 核心擁有128個內處理器。利用CUDA技術,就可以將那些內處理器串通起來,成為執行緒處理器去解決數據密集的計算。而各個內處理器能夠交換、同步和共 享數據。利用NVIDIA的C-編譯器,通過驅動程式,就能利用這些功能。亦能成為流處理器,讓應用程式利用進行運算。
GeForce 8800 GTX顯示卡的運算能力可達到520GFlops,如果建設SLI系統,就可以達到1TFlops。
但程式設計師在利用CUDA技術時,須分開三種不同的存儲器,要面對繁複的執行緒層次,編譯器亦無法自動完成多數任務,以上問題就提高了開發難度。而將來的G100會採用第二代的CUDA技術,提高效率,降低開發難度。
目前,已有軟體廠商利用CUDA技術,研發了一個Adobe Premiere Pro的外掛程式。通過外掛程式,使用者就可以利用顯示核心去加速H.264/MPEG-4 AVC的編碼速度。速度是單純利用CPU作軟體加速的7倍左右。
在NVIDIA收購AGEIA後,NVIDIA取得相關的物理加速技術,即是PhysX物理引擎。配合CUDA技術,顯示卡可以模擬成一顆PhysX物理加速晶片。目前,全系列的GeForce 8顯示核心都支援CUDA。而NVIDIA亦不會再推出任何的物理加速卡,顯示卡將會取代相關產品。
為了將CUDA推向民用,NVIDIA會舉行一系列的編程比賽,要求參賽者開發程式,充分利用CUDA的計算潛能。但是,要將GPGPU普及化,還要看微軟能否在Windows作業系統中,提供相關的編程介面。
文章出處:wiki CUDA
留言列表