回顧數據運算工具的歷史,從算盤、加法器,到1946年第一部真空管元件的電腦ENIAC、1974年以電晶體製作的PC,乃至2007年iPhone問世,發展趨勢是:體積越來越小,速度越來越快。
至於數據運算的應用,一開始是日常生活的算數,後來發展至自動化控制、數學和科學運算、多媒體應用,今日還要加上人工智慧應用的運算。
賴伯承指出,這些運算有個趨勢,按時間排序的話,最早是單一執行緒(一項獨立運算的工作),然後是多執行緒(一項工作可拆成10 個至100個),現在是超多執行緒(數量可到上千乃至百萬)。另一個趨勢是資料量的增加,最早只有少量資料(幾KB),到了近代有大型資料(以MB計),今天則是海量資料(可能大到硬碟裝不下)。
運算的本質,一開始是要代替人類做日常生活邏輯判斷和數據處理,終極目標則是像個僕人,能聽命行事,甚至揣摩上意,提前完成任務。
至於電腦架構的起源,由范諾曼(John von Newmann)奠定基礎,他把計算機分成兩部份:處理器、記憶體。指令會先放進記憶體,然後送進處理器執行,處理器一次只執行一個指令。
雖然這樣的處理方式很清楚,但速度不夠快。怎麼解決?賴伯承解釋,思考重點在於「平行度」(同時做很多事)。處理器的平行化有很多種方式,可以借用生產線的分工原理,也可以讓不同的指令同時執行,效率會因此提升。
但是單一核心處理器越來越沒有效率,為了提高投資報酬率,研發人員在執行緒、資料、應用、使用者等層級提高平行度,因此處理器的架構開始朝多核心處理器發展。觀察多核心處理器,會發現廠商在CPU之外還加了GPU。
GPU是圖形處理器,主要是處理3D圖形的點和多邊形,特色是平行度非常大(3D圖形要同時轉每個點和多邊形),處理的資料量也很大(每個點都是資料)。
美好的巧合
圖形運算和智慧運算有何關係呢?賴伯承說:「這是美好的巧合。」因為兩者有共同點:高平行度運算、資料量大、精準運算,再加上現在的軟硬體環境成熟、效能成長性佳,因為這些原因,GPU就剛好被拿來用在智慧運算上。
但GPU要一統天下了嗎?GPU一開始是要處理圖形,在智慧運算上的效率並不高,而且要付出功耗的代價。根據研究,使用「專用」處理器,功耗效率會提升10倍,但如果使用專用處理單元,效率會再往上跳100倍。
就以深度學習網路為例,使用GPU會消耗很多能源。有廠商就研發出張量核心(tensor core),專門執行多維度的矩陣運算,能提高效率。另一個例子是Google的TPU(張量處理單元),它就是很大的矩陣運算處理器加上記憶體,然後放到資料中心,因為專門設計,效率比GPU高。
未來趨勢