隨著由ChatGPT引發的人工智能熱潮,GPU成為了AI大模型訓練平臺的基石,甚至是決定性的算力底座。為什么GPU能力壓CPU,成為炙手可熱的主角呢?
要回答這個問題,首先需要了解當前人工智能(AI,Artificial Intelligence)的主要技術。
人工智能與深度學習
人工智能是一個歷史非常長的學科。自上世紀50年代以來,在多個技術方向上進行過探索,也經歷過多次的高潮和低谷。想了解更基礎更有趣的人工智能介紹,可以看下面這篇文章:人工智能來了,小心你的飯碗不保。
人工智能在早期誕生了一個“不甚成功”的流派,叫做“人工神經網絡”。這個技術的思路是,人腦的智慧無與倫比,要實現高級的人工智能,模仿人腦就是不二法門。
人腦是由數以億計的神經元組成。這些神經元彼此連接,形成了龐大而復雜的神經網絡。嬰兒的大腦是一張白紙,經過后天的學習便可實現高度的智能。
參考人腦神經元,人工神經元模型就被設計了出來。
在上圖右側的人工神經元里,通過調整每個輸入的權重,經由神經元計算處理之后,便可得出相應的輸出。這里面的每個權重,就被稱作一個參數。
把這樣的多個神經元相互連接形成網絡,就是人工神經網絡了。人工神經網絡一般由輸入層、中間的多個隱藏層以及輸出層組成。
這樣的人工神經網絡就像嬰兒的大腦一樣空空如也,必須給它投喂大量的數據,讓它充分學習才能形成知識,才能用于實際解決問題。這個過程就叫做“深度學習”,屬于“機器學習”的子集。
以常見的“監督學習”為例,給AI投喂的數據必須包含問題和答案。比如說,我們的目標是讓AI判斷圖片里面是不是有一只貓,那就需要給AI大量確定有貓的圖片并給出貓的特征,讓它自己從中找規律。
首先AI拿出一張給定的圖片,采用初始權重得出自己的結論。然后比較這個結論和正確答案到底相差了多少,再返回去優化參數權重,這個過程循環進行,直至AI給出的結果和正確答案最為接近。
這個學習的過程就叫做訓練。一般來說,需要給AI大量含有正確答案的數據,才會得出比較好的訓練結果。
一旦我們認為訓練完成,就拿出試試成色。如果我們給它未知的問題,它也能很好地找出答案,就認為訓練是成功的,AI的“泛化”效果很好。
如上圖所示,從神經網絡上一層到下一層,參數權重的傳遞,本質上就是矩陣的乘法和加法。神經網絡參數的規模越大,訓練時需要的這些矩陣的計算也就越大。
最先進的深度學習神經網絡可以有數百萬到超過數萬億個參數,它們還需要大量的訓練數據來實現高精度,這意味著必須通過正向和反向傳遞運行驚人的輸入樣本。由于神經網絡是由大量相同的神經元創建的,因此這些計算本質上是高度并行的。
如此大規模的計算量,用CPU還是GPU好呢?
CPU,擅長控制的管家
我們先說CPU(Central Processing Unit)。
此物可謂電腦的大腦,是當仁不讓的核心中的核心。
CPU內部主要包含運算器(也叫邏輯運算單元,ALU)和控制器(CU),以及一些寄存器和緩存。
數據來了,會先放到存儲器。然后,控制器會從存儲器拿到相應數據,再交給運算器進行運算。運算完成后,再把結果返回到存儲器。
在早期,一個CPU只有一套運算器、控制器和緩存,同一時間只能處理一個任務。要處理多個任務,只能按時間排隊輪著來,大家雨露均沾。這樣的CPU就是單核CPU。
后來,人們把多套運算器、控制器和緩存集成在同一塊芯片上,就組成了多核CPU。多核CPU擁有真正意義上的并行處理能力。
一般情況下,多核CPU的核心數量少則2個4個,多則幾十個。
在智能手機剛開始普及的時候,手機的外觀趨同,其他地方也乏善可陳,廠家就大力渲染CPU的核數,史稱智能手機的“核戰”。
不過“核戰”也就從雙核燒到4核再到8核,然后大家也就都就偃旗息鼓了。芯片廠家也都是在這個核心數量上做優化。
為什么CPU不多集成一些核心呢?
這是因為CPU是一個通用處理器。它的任務非常復雜,既要應對不同類型的數據計算,還要響應人機交互。
復雜的任務管理和調度使得它需要更復雜的控制器和更大的緩存,進行邏輯控制和調度,保存各種任務狀態,以降低任務切換時的時延。
CPU的核心越多,核心之間的互聯通訊壓力就越來越大,會降低單個核心的性能表現。并且,核心多了還會使功耗增加,如果忙閑不均,整體性能還可能不升反降。
GPU,并行計算專家
下來再看GPU(Graphics Processing Unit)。
GPU叫做圖形處理單元。其設立的初衷是為了分擔CPU的壓力,加速三維圖形的渲染,常用于電腦的顯卡。
圖像的處理,正是一種針對矩陣的密集并行計算。從下圖可以看出,左側的圖像由大量的像素點組成,可以很自然地表示成右側的矩陣。
GPU一詞從1999年Nvidia推出其GeForce256時開始流行,該產品對每一個像素點同時處理,執行圖形轉換、照明和三角剪裁等數學密集型并行計算,用于圖像渲染。
為什么GPU善于承擔密集的并行計算呢?這是因為GPU的在架構上和CPU有很大的不同。
CPU的核數少,單個核心有足夠多的緩存和足夠強的運算能力,并輔助有很多加速分支判斷甚至更復雜的邏輯判斷的硬件,適合處理復雜的任務。
相比之下GPU就簡單粗暴多了,每個核心的運算能力都不強,緩存也不大,就靠增加核心數量來提升整體能力。核心數量多了,就可以多管齊下,處理大量簡單的并行計算工作。
隨著時間的推移,GPU也變得更加靈活和可編程,它的工作也就不局限于圖像顯示渲染了,還允許其他開發者用來加速高性能計算、深度學習等其他工作負載。
由于趕上了人工智能這樣并行計算需求暴增的機遇,GPU一改以前的邊緣角色,直接站到了舞臺中央,可謂炙手可熱。
GPU的名字,也變成了GPGPU,即通用GPU。
將AI訓練這種并行性自然地映射到GPU,與僅使用 CPU 的訓練相比,速度明顯提升,并使它們成為訓練大型、復雜的基于神經網絡的系統的首選平臺。推理操作的并行特性也非常適合在 GPU 上執行。
因此,由GPU作為主力所提供的算力,也被叫做“智算”。
-
gpu
+關注
關注
27文章
4443瀏覽量
126874 -
AI
+關注
關注
87文章
26659瀏覽量
264329 -
人工智能
+關注
關注
1777文章
44178瀏覽量
231072 -
深度學習
+關注
關注
73文章
5247瀏覽量
119992
發布評論請先 登錄
相關推薦
評論