輝達突破3兆美元市值,為什麼AI時代離不開GPU?

前言

2024年6月上旬,輝達市值超過3兆美元,儘管後續跌了1.18%,市值又回到了3兆美元以下,但是這依舊沒有冷卻人們內心對輝達的狂熱,過去五年,輝達的市值已經增長了3200%,但是無數人依舊相信,輝達還存在增長前景。

而現在的輝達已經做到我要打十個的狀態,實際上在寫這篇文章的今天,輝達的市值已經到了3.34兆美元,一天的交易日的漲跌都超過IBM的總市值。

假如在2019年,某人購買了10萬元的輝達股票,現在他將可以收穫340萬+。

借用2024年5月22日的市值對比圖,實際上現在更多了。


為什麼輝達的市值可以達到如此"恐怖"的高度,一方面肯定是輝達的技術硬實力,在GPU領域的深耕,另外是輝達非常善於利用自身優勢,構思在競爭對手前面,提前佈局未來需求,這幾年無獨有偶的總是趕上了一系列算力的風口,比特幣、元宇宙、大模型人工智慧、智能駕駛、人形機器人。

輝達早已不是以前“玩物喪志”的遊戲顯示卡生意,在 AI 伺服器核心晶片(GPU)領域,輝達佔據了近乎 80%的收入份額。其展現出的市場統治力令人驚嘆,幾乎完美復刻了英特爾鼎盛時期在 PC 市場上對 CPU 的市佔率表現。而GPU的各大買家,還在催著要輝達的貨,就差把拉貨的飛機停在代工廠台積電的門口。

聊了這麼多,也算是進入今天的正題了,為什麼在AI大模型時代,高算力的GPU如此的稀缺?為了搞明白這個問題,我們首先要搞清楚GPU和CPU的區別?

CPU和GPU的區別

在我早些年接觸加密貨幣的時候,我聽說,加密貨幣需要算力,算力需要顯示卡的支援,我當時就納悶了,為什麼算力問題通過顯示卡而不是電腦的核心處理器呢?

從運算能力的角度來說,肯定是中央處理器的運算能力更強才對;當我弄清楚CPU和GPU的區別,還有挖礦的具體邏輯的時候,我理解了為什麼加密貨幣需要顯示卡來完成。

CPU(中央處理器)

  • 通用性:CPU設計用於處理各種類型的任務,從作業系統的管理到複雜應用程式的執行。它們的架構使得它們可以高效地處理幾乎所有類型的計算任務。
  • 核心數量:現代的CPU通常有2到16個核心(高端伺服器可能更多),並且每個核心都非常強大。
  • 時鐘速度:CPU的時鐘速度(頻率)通常較高,可以執行複雜的指令。


GPU(圖形處理器)

  • 專用性:GPU最初是為圖形處理和圖像渲染設計的,尤其是需要平行處理的任務。
  • 核心數量:GPU擁有大量的核心,典型的GPU可以有幾千個核心,但每個核心的單執行緒性能不如CPU核心。
  • 平行處理:GPU的架構非常適合處理大量的平行計算任務。它們可以同時處理成千上萬的執行緒,這是它們在圖形渲染和科學計算中表現出色的原因。


類比一下

上面的專業對比似乎並不好理解,我們換一種更加通俗的方式去解釋:

CPU就像一個20人一下的教授團隊,每個核心都是一個教授,某些特別複雜的問題只有教授才能勝任。因此,教授在處理複雜單一任務時非常出色,適用於需要高技能和複雜思考的任務,如高級演算法計算、複雜資料分析等。

GPU更像一大群高中生,雖然單個高中生的能力不及教授,但他們可以同時處理許多簡單的任務,因此在處理大量簡單任務時效率極高,適用於需要大量重複和平行處理的任務,如圖像渲染、加密貨幣挖礦中的雜湊計算。

加密貨幣的計算特徵

瞭解了GPU與GPU的區別後,我又去瞭解了機密貨幣的一些邏輯,總算是可以清晰的解釋,為什麼挖礦使用GPU了。

加密貨幣挖礦中的一個關鍵任務是解決雜湊函數(如SHA-256)的問題;

具體來說是什麼呢,在比特幣挖礦中,礦工的任務是找到一個特定的雜湊值,該雜湊值必須滿足一定的條件,這個過程被稱為“Proof of Work”(工作量證明),而“計算雜湊值”,這是一個非常耗時的過程,需要大量的計算。

為了找到符合條件的雜湊值,礦工需要嘗試大量的運算,這些嘗試是完全獨立的,可以同時進行,這就代表些運算是獨立的,可以同時進行。

這樣的場景化GPU的計算優勢就發揮出來了,雖然單個GPU核心的運算速度不如CPU核心,但由於平行處理的優勢,整體性能會比CPU高得多;一個GPU有成千上萬個小核心,可以同時處理成千上萬個雜湊計算任務。相比之下,CPU的核心數量少得多,無法提供如此高的平行計算能力。

簡而言之,加密貨幣挖礦依賴於大量的雜湊計算,而這些計算任務可以被分解成許多獨立的小任務,因此非常適合GPU的大規模平行處理能力。

為什麼AI時代離不開使用GPU?

其實通過上面的案例,我們也需要明白一點,顯示卡不僅僅是用來打遊戲,只不過3D遊戲的渲染需要GPU的平行計算能力,同時,過去幾十年的GPU主要被用在顯示卡這個領域,所以我們將自然而然的認為GPU = 顯示卡,甚至出現了錯誤的理解,顯示卡就是用來玩遊戲的。

實際上,GPU生來就是為了大規模平行計算。

現在我們回到文章的核心主題,為什麼類似chatGPT的技術離不開GPU,為什麼不用更加聰明的CPU呢?

大模型的本質是模擬人腦的神經網路

首先我們需要知道一點,大模型本質上是一個複雜的數學模型,用來模擬人腦的工作方式,這個模型由許多“神經元”組成,這些神經元分佈在不同的“層”中。

每一層神經元都與下一層神經元相連,形成一個網路。

訓練神經網路的過程就像教學生讀書寫字。我們給網路大量的資料(例如圖片、文字、聲音等),讓它們自行“學習”如何識別、理解或處理這些資料。

訓練神經網路

大模型是如何完成對文字的理解的呢?

首先,我們需要文字資料被轉換成數字表示,這些數字我們稱之為向量,大家可以理解為坐標。

為了方便大家理解,這裡採用B站Up主「新石器公園」的相關視訊截圖


大模型會在一個空間內不斷根據投喂知識調整每個字的坐標,每次調整的時候,都需要針對關聯的文字的向量進行計算,這部分的計算量是極其龐大的;

通過GPU實現平行計算

為了完成這些計算,大模型會利用成千上萬個計算核心,也就是GPU,同時對不同文字的坐標進行調整。這種同時進行很多計算任務的方式叫做平行計算

因為有大量的計算核心一起工作,大模型可以很快地處理這些龐大的計算任務。

隨著吸收的知識越來越多,大模型也對文字的理解也會越來越正確,就像國王與王后這2個詞非常接近。


最終大模型將會形成一個類似人腦結構,並且像人類一樣理解字與字、詞與詞之間的聯絡,對事物的正確理解,最終讓模型學習如何生成有意義的文章。


使用CPU行不行?

理論上可以,實際沒人會這麼幹,我們上面分析過CPU,類比來說,CPU是一群教授,但是我們的大模型訓練階段,需要大量的難度不大,但是數量很大的計算;

當我們使用GPU的叢集訓練類似GPT-3等級的大模型可能需要2周,甚至更短,如果使用CPU進行訓練則需要幾個月甚至更長時間,這幾乎就不存在可行性了。

總體來說,使用GPU訓練大模型的時間通常比使用CPU短一個數量級以上,也就是說通常可以節省10倍甚至更多的時間。 (我是狗阿木)