課 程 : 論文研討
班 級 : 資工產碩二
日 期 : 100年 10月7日
演講者 : 輔仁大學電機工程系王元凱教授
題 目 : Parallel Vision with GPGPU/CUDA 以GPGPU/CUDA進行平行視覺
姓 名 : 魏早達
學 號 : 99366512
  記得我的第一台電腦宏碁的小教授,使用著Z80 CPU,當時寫程式只能使用Z80組合語言,而且要將組合語言自己去翻譯成16進位碼才可以輸入電腦。到後來買了Apple II,開始了高階語言的寫作之旅,即使是Apple II也只是使用6502這顆8位元的CPU,這和今天的CPU真是不能比。
  就正如Moore’s Law 所說的每18個月CPU的電晶體個數會增加一倍,人們不斷追求著高速的CPU運算時代,但是沒多久就發現CPU中電晶體的成長受到了許多物理因素的影響(如:發熱現象),已經到了一個成長的極限。所幸發現了可以使用多核來解決此一問題。也因此CPU的發展進入了多核的時代。其實多核的發展早就在GPU上實現,現在的GPU動輒數百核,實在不是現在的CPU所能比擬的,所以如果能將一些耗費CPU的運算交由GPU去執行,那不就是儼然有了一部超級電腦,但是要完成這個想法,光有硬體的配合是不夠的,也要在程式的撰寫上做到多執行緒的部份,另外如何能用到GPU,目前有兩種API framework,分別為CUDA和OpenGL,以使用nVidia顯示卡來說,甚至於可以將C++程式碼不用修改直接用CUDA編譯後,就可以在GPU執行而且得到不錯的效果,如果再配合CUDA的規範去改寫甚至可以有數百倍的效果。
  有了這個的特性,王教授把它運用在需要高度運算的平行視覺領域中,更是得到如魚得水的效果,譬如在一個光線不怎麼好的環境要做影像復原(Image Restoration),也就是如何把亮與不亮的部份都變亮,常用的方法就是高斯模糊的演算法,當然在運用CUDA的細節部份還需要考量那些適合使用GPU,大致可以歸納出:
l   Domain decomposition à GPGPU
l   Function decomposition à CPU
從實驗數據來看,確實也獲得非常好的效果。
  從王教授的演說內容給我了一些啟發,我們現在作實驗經常需要好幾台機器跑好幾天,如果能運用GPGPU來做,應該可以節省不少時間,只不過現在通常運用的一些模擬工具(如:NS2,OMNet++等)不知是否支援CUDA,如果能夠支援的話,那對我們真是一大福音。
 
沒有留言:
張貼留言