儘管深度學習與AI應用的竄紅,開始讓GPU重要性跟以往截然不同,靠著GPU在AI應用的高CP值,越來越多企業與AI新創都有意採用。不過即便GPU在一些AI設備的重要性與日俱增,甚至受重視程度還高過於CPU,但還是不能因此就認為GPU可以無所不能,GPU本身還是有其局限的存在。
像是GPU缺乏處理大量不同性質運算能力的特性,就是最常被人拿來凸顯GPU不足的其中一個例子。因為GPU原本就被設計成專門處理大量高同質性的資料運算工作,是只能專心做相同事情的專才。
所以,當面對需要依據大量資料的不同特徵而做決策的運算時,GPU就顯得不太在行,這方面則是CPU的強項,因為CPU晶片內的每一顆核心,都是獨立運作可以負責處理各自不同的任務,CPU是能處理不同事情的通才,而不像GPU,雖然擁有遠超過CPU的核心數量,但這些核心的作事方式都是每個核心都只做同一件事。
臺灣大學資工系副教授洪士灝則是以更簡單易懂的方式,來說明GPU和CPU兩者角色的差別。他形容,GPU就像是工廠雇用的一群作業人員,這些作業員每日只需負責處理大量同類型的工作,例如產品檢測、組裝等,反觀CPU則較像是獨立運作的廠房專業人員,專門處理主管交付下來的不同各別任務,例如調度產線機臺或加派人力支援等。
洪士灝過去在效能調校、平行運算與異質系統方面很有經驗,今年他也一路全程參與GTC大會。他觀察,儘管GPU的高度運算能力在AI應用方面今年獲得高度的關注,但以目前來說,GPU要就此要取代CPU的角色仍有難度。他解釋,GPU在進行深度學習這類特殊的運算時,效率雖然比CPU高很多,但在面對處理一些運算後還需進一步決策或判斷的運算工作時, GPU的執行效率就比不上CPU,所以這方面還是需要CPU來完成。
在平行運算略占下風的CPU廠商近年來也開始提高CPU的運算能力,例如處理器大廠英特爾在新一代CPU處理器內,就陸續特別增加晶片內的核心數量,所以現在,可以看到越來越多的x86伺服器內配置的CPU核心數量,至少都超過10個以上。不僅如此,洪士灝更進一步指出,將來甚至有機會看到一些特殊版本的伺服器推出,這些伺服器至少具備有60至70顆以上的核心數,就是要用來拉近和GPU之間的距離。
GPU面臨的2個難處
而當CPU正逐步縮短與GPU之間的差距時,洪士灝明白點出,GPU至今仍有兩大瓶頸尚未解決。其中一個即是GPU目前還無法在系統內單獨使用,使得GPU取得資料的速度比CPU還慢。
洪士灝表示,截至目前,GPU還是以一種加速器或加速卡的方式存在系統,只能從旁擔任CPU的輔助角色。所以,不像CPU可以直接存取硬碟上的資料,GPU必須得靠CPU的幫忙,從檔案系統中將資料拿出並餵給GPU後,GPU才能進行後續的運算處理工作,使得GPU通常比CPU得花更多的時間才能拿到資料來計算。
GPU不只是取用資料得仰賴CPU的幫忙,洪士灝也指出,這也衍生出了GPU目前遭遇到的另一個困境,就是距離資料取得的地方太遠,使得GPU得經過好幾手的傳遞後才能取得資料。以大數據分析來舉例的話,GPU要取用資料就得經過GPU來聯繫,中間還得通過好幾層關卡,才能讓位在系統後端的GPU收取資料,所以當然距離資料就遠。
洪士灝表示,當GPU要借助記憶體內運算技術時,也同樣會遇到資料傳不夠快的問題。
GPU要從記憶體拿取資料,目前必需經由I/O 匯流排介面當作傳輸通道,但問題是,目前伺服器所用的I/O 匯流排,普遍都是PCIe這個傳輸介面,其傳輸速度仍遠低於作為CPU和記憶體之間資料傳輸的記憶體匯流排(Memory Bus)的速度。如果只是少量運算還好,但當需要運用大量記憶體內運算的時候,GPU拿資料的速度就會變慢,而影響了GPU的利用率。
不過至今,GPU所存在的這2大難題,還是遲遲未能獲得有效改善。洪士灝也坦言,這並非是單靠一家GPU廠商就能處理得了的事,而是得要有CPU和其他系統廠商的共同合作,才有辦法共同坐下來一起解決。所以,Nvidia再挑戰要讓更多企業在AI與深度學習都能用GPU的同時,接下來也得要想辦法解決GPU目前所面臨到的種種局限才行。
臺灣大學資工系副教授洪士灝表示,GPU至今仍有兩大瓶頸尚未解決,其中一個是GPU目前還無法在系統內單獨使用,只能擔任輔助角色使得GPU取得資料的速度比CPU還慢;另一個目前所遭遇到的困境則是GPU距離資料取得的位置太遠,因此當需要處理大量資料運算時,就很容易影響了GPU的利用率。
【相關報導請參考「GPU靠AI直攻運算龍頭」專題】