程序員的野心:讓GPU像CPU一樣運行
GPU代表的是圖形處理單元,但是,這些小小芯片除了處理圖形功能,還有其它用處。比如,Google使用GPU來為人腦建模,Salesforce則依賴GPU分析Twitter微博數據流。GPU很適合并行處理運算,也就是同時執行成千上萬個任務。怎么做呢?你得開發一個新軟件,讓它挖掘GPU芯片的潛力。最近美國印第安納大學計算機博士埃里克-浩克(Eric Holk)就作出嘗試,他開發了一個應用程序來運行GPU。浩克說:“GPU編程仍然需要程序員管理許多低層細節,這些細節是與GPU執行的主要任務分離 的。我們想開發一個系統,幫助程序員管理這些細節,讓GPU在提高生產力的同時仍然有很好的性能。”
本文引用地址:http://www.104case.com/article/147157.htm
一般來說,電腦計算任務大多由CPU完成。一個CPU處理一個計算序列,也就是所謂的一次處理一個線程,它必須盡可能快地執行。GPU的設計初衷是一次處理多個線程,這些線程處理速度慢很多,但程序可以利用并行優勢執行得更快一些,就像超級電腦一樣。
浩克稱,今天,CPU已經能執行并行運算了,多核也很流行,但它們主要還是針對單線程優化的。
GPU術語直到1999年才出現,但在此之前已經有早期的視頻處理芯片了,它們于1970-1980年推出。當時,視頻處理芯片嚴重依賴CPU進行圖形處理,1990年代圖形顯卡更流行了,也更強大了,主要是因為3D顯卡出現。
喬治亞科技大學克里斯-麥克拉納罕(Chris McClanahan)認為,GPU硬件架構已經進化,以前它只是特定單一核心,現在向一組高并行、可編程核心轉變,它可以用來處理更通用的計算。毫無疑 問,隨著GPU技術的發展,它會增加更多可編程性、更多并行性,變得越來越像CPU,可以用于通用計算。麥克拉納罕說,CPU和GPU最終會融合。同時, 開發者也開始挖掘GPU的能力,用于不同的應用中,包括物理系統建模、強化智能手機等。
浩克解釋道:“GPU的內存帶寬也比CPU高很多,在對海量數據進行簡單計算時,它的效率更好。”
已經有一些GPU編程語言存在,包括CUDA和OpenCL。漢克開發了新語言Harlan,它可以控制GPU。實際上,Harlan被編譯成 OpenCL。但與其它語言不同,Harlan語言的抽象思維更多與高級編程語言相近,比如Python、Ruby。浩克稱:“Harlan的另一個目標 是想回答一個問題:如果從一開始就開發一門語言,它最初的目標就是支持GPU編程,那會怎樣呢?目前的大多系統將GPU編程嵌入到現有語言中,開發者不得 不處理舊語言的所有問題。Harlan可以讓開發者更好地為目標硬件、程序作決策。”
Harlan語法基于Scheme,它是Lisp語言的現代變種,Scheme是所有好語言的始祖。為了讓編程語言更“正常”一些,浩克還用到 了Rust語言,這種語言主要面向開發系統,它可以操作硬件底層。浩克的目的是讓程序員編寫的代碼更有效,因為Harlan能生產更好的GPU代碼。

評論