Harlan語言簡化GPU編程,圖像晶片也能變身超級電腦!

Harlan語言簡化GPU編程,圖像晶片也能變身超級電腦!

photo:Wimox/flickr

 

GPU的是圖像處理單位,但是,這些小小晶片除了讓圖像運算更流暢之外還有其他用處。例如Google正用GPU來建構人腦模型,雲端客戶關係服務商Salesforce則用GPU來分析Twitter數據。因為GPU很適合併行處理運算,也就是同時執行數以千計的任務。

訣竅就在於開發能挖掘GPU晶片性能的新軟體。最近,美國印第安納大學資訊工程博士霍克(Eric Holk)就開發了一個名為Harlan的程式語言,用來開發能夠執行GPU的應用程式。霍克說:「GPU編程仍然需要程式人員管理許多低階細節……我們希望開發一個系統來幫助程式人員管理這些細節,使它們提高生產力,也讓GPU得以發揮性能。」

通常電腦運算多由CPU完成。一個CPU就處理一個運算序列,也就是一次處理一個線程(Threads),速度越快越好。而GPU 的設計是為了一次處理多個線程,處理速度慢很多,但程序可以利用並行加快執行速度,就像一台超級電腦。

霍克表示,目前CPU已能執行併行運算了,但主要還是適合單線程的工作。

GPU這個用語在1999年出現,但最早在1970-1980年代已經有影音處理晶片了。當時得影音處理晶片非常依賴CPU處理圖像,但1990年代因為3D圖像的出現使圖像顯示卡越來越受歡迎、性能也變強大。

喬治亞科技大學的麥可蘭那漢(Chris McClanahan)認為,隨著技術演進,GPU已經從單一功能的圖像處理核心進步成一般電腦運算用的平行運算核心,越來越像通用運算CPU。同時,麥可蘭那漢也預測,CPU和GPU最終會結合。

開發者也開始利用GPU作不同的應用,包括建立實體系統模型、強化智慧手機功能等。現在已有一些GPU編程語言存在,包括CUDA和OpenCL。而事實上,Harlan可編譯成OpenCL。

但與其它語言不同的是Harlan語言具有更多抽象編程,與Python、Ruby等高級編程語言相近。霍克解釋,Harlan的目的是幫助開發者為目標硬體、程式作決策。

Harlan語法以Scheme為基礎,是Lisp語言的分支。為了讓編程語言更適合GPU運行, 霍克還用到了針對開發系統的Rust語言。霍克相信Harlan能產出更好的GPU程式,讓程式人員編寫的程式更有效。

 

推薦閱讀:

亞馬遜第一紅牌監視器創辦人獨家告白:軟體才是未來趨勢,硬體只是陪襯!

進階版4G LTE-A即將攻占你的行動世界!

比Google Earth還厲害,史丹佛團隊用零元手機鏡頭打造廉價商用衛星!