歡迎星標 果殼硬科技
高睿昊 | 作者
中國科學院計算技術研究所 | 作者單位
科學大院(ID:kexuedayuan)| 來源
8年前,高考結束后的暑假,作為班里的“電腦愛好者”,我經(jīng)常被同學們問上大學配什么新電腦。當時的我告訴大家,配好電腦有兩個東西很重要,一個叫CPU,決定電腦反應速度的快慢;另一個叫GPU,負責圖形的運算,玩電腦游戲流暢可得靠它。
用于桌面計算機的GPU和數(shù)據(jù)中心計算機的GPU | Amazon
那時候的GPU,在大家印象里就是用來打游戲的。然而8年后的今天,隨著ChatGPT等大語言模型(LLM)橫空出世,能夠處理人工智能高性能計算的GPU突然引來各大科技公司搶購。自稱為“人工智能計算領域的領導者”的GPU生產(chǎn)商英偉達(NVIDIA)在一年內(nèi)股價飆升,6月19日更是一躍成為全球市值最高的公司。剛剛高考完的同學們要是想買臺帶GPU的電腦,申請“爸媽輪天使投資”的理由也變成了“我想學人工智能”。
GPU生產(chǎn)商英偉達 | 英偉達
8年之間,GPU如何從“游戲處理單元”蛻變成“人工智能處理平臺”?帶著這個問題,今天和大家一起聊聊,GPU到底是怎么回事。
GPU能做的事情CPU都能做?
我們?yōu)槭裁葱枰狦PU
比起GPU,大家可能更熟悉的還是計算機的CPU,全稱為中央處理單元(Central Processing Unit)。CPU是計算機的“大腦”,它支配計算機中的其他部件,協(xié)同完成網(wǎng)頁瀏覽、游戲渲染、視頻播放等等一切“計算任務”。CPU決定了計算機的運行速度,有一句網(wǎng)絡用語是“把我CPU干燒了”,就是用CPU工作溫度過高失靈,來比喻腦子里的事情太多太復雜,腦子轉不過來了。
左為CPU是計算機的“大腦”(圖片來源:veer);右為英特爾(Intel)i9-12900KS CPU | hothardware
而GPU也是被CPU支配控制的部件之一。GPU全稱為圖形處理單元(Graphic Processing Unit),主要功能是完成圖形處理相關任務,以GPU為核心的主板擴展卡就是大家在買電腦時經(jīng)常聽說的顯卡。
英偉達Geforce 6600 GT GPU | wiki
安裝在臺式機箱里的CPU和GPU,這是英偉達網(wǎng)站上一個搭載RTX40系列GPU的機箱概念圖 | 英偉達
理論上,所有能由GPU完成的計算任務,都能由CPU完成。一臺電腦沒有獨立GPU仍然能夠正常開機,但若是沒了CPU就“臣妾不能夠了”。既然如此,我們?yōu)槭裁催€要花大價錢去買GPU呢?因為,就像我們不能拋開劑量談毒性,計算機也不能拋開“性能”談“功能”。
CPU和GPU各有擅長的計算任務 | IBE
對于游戲渲染、人工智能這些計算任務,CPU并不擅長,雖然也能從功能層面上完成,但性能表現(xiàn)十分有限。對于游戲渲染而言,性能的局限性體現(xiàn)在更低的幀率,更粗糙的畫質(zhì)上,也許無傷大雅。但在人工智能的應用上,以大語言模型GPT為案例分析,如果僅使用CPU的話,其訓練時間將長達數(shù)百年,這樣的速度顯然不能滿足我們對于人工智能技術突破的渴望。
而GPU恰好擅長這些“熱門且艱巨”的任務。在配置了GPU的計算機系統(tǒng)中,CPU不再孤獨地承擔一切,而是將這些自己不擅長的任務卸載(offload)到GPU上加速執(zhí)行。得益于特殊的并行架構設計,GPU在處理這些任務時游刃有余,可以輕松地為我們提供細膩入微的3D畫質(zhì),讓OpenAI公司每隔幾個月就能推陳出新。
GPU是如何實現(xiàn)加速的?
從并行架構的角度看GPU與CPU的區(qū)別
在開始討論之前,我們需要進行一個類比:計算機中的一個程序,可以類比成由一連串運算題組成的試卷——計算機科學家們的祖師爺艾倫·圖靈就是這么構想計算機程序的。當然,這些運算題有難有易,有小學生就能輕松應對的四則運算,也有高中生可以玩轉的三角函數(shù),還有大學生才能完全掌握的微積分。
計算機科學家曾希望CPU可以像一位經(jīng)驗老道的“數(shù)學家”,發(fā)揮他的計算能力(計算指令)、敏銳的決策力(控制指令)快速地完成試卷(程序),得到用戶想要的結果。而隨著計算機的程序越來越復雜,“老數(shù)學家”的能力逐漸不能滿足要求了,他主要的缺點是:即使每道題都能算的很快,但任何時間都只能一心一意地算一道題。
單核CPU計算機的工作框架,黑線為數(shù)據(jù)流,紅線為控制流,均由單個CPU處理 | wiki
于是,英特爾、IBM、AMD等公司開始意識到,可以在一個CPU內(nèi)“聘請”多位數(shù)學家,也就構成了目前常見的多核CPU。當然受限于芯片散熱、良率的約束,多位數(shù)學家中的每一位都不像的從前的那么強,可能更像是多位準備參加高等數(shù)學考試的“大學生”。——為什么是準備參加呢?因為考完試就忘了(扎心)。
第四代AMD EPYC處理器架構,EPYC是AMD的高性能服務器處理器系列,圖中的Z4就是我們所說的“大學生”核心,一個CPU中可包含16-96個核心 | AMD官網(wǎng)
GPU則可以類比成約由幾千到上萬個“小學生”核心組成的大型計算團隊。相比于大學生核心,單個小學生核心只能計算更簡單的運算,且計算速度也僅有大學生的1/4~1/3。下圖展示了英偉達H100 GPU的架構,“小學生”核心對應圖中的綠色小格子,一共有18432個。一萬多名小學生核心先被層層劃分成為上百個“班級”,在班級內(nèi)部再動態(tài)劃分成32-64人一組的“值日小組”。
英偉達H100 GPU架構圖,GPU中包含了眾多小核心,按照層次結構進行組織 | 英偉達H100架構白皮書
該如何讓這么多小學生核心高效協(xié)作呢?像CPU一樣讓每個小學生都獨立完成試卷,顯然不是一個理智的方案。為了解決協(xié)同問題,英偉達GPU增加了一條規(guī)則限制:每個“值日小組”內(nèi)的所有核心(線程)在同一時間只能執(zhí)行一種運算操作(指令),而一個或多個值日小組(可以跨越班級)可以被組織起來共同完成一張程序試卷,這種協(xié)同工作模式被稱為單指令多線程并行(Single instruction, multiple threads,簡稱為SIMT),是英偉達GPU運作的核心模式。我們用一張示意圖對比CPU和GPU的并行運作方法。
多核與SIMT并行方式差異的示意圖 | 作者自制
聰明的你應該已經(jīng)意識到,這種奇妙的組織方式會讓CPU和GPU所能做答的試卷產(chǎn)生明顯的區(qū)別。如果CPU(單個核心)的試卷長這樣:
已知:
a = 1, b = 2, c = 3
又知:
d = a * 2
e = d + b
f = c / e
求: f
那么 GPU 的試卷將會是這樣的(假設一個值日小組有三個核心):
已知:
a0 = 1, a1 = 2, a2 = 3,
b0 = 4, b1 = 5, b2 = 6,
c0 = 7, c1 = 8, c2 = 9
又知:
d0 = a0 * 2
d1 = a1 * 2
d2 = a2 * 2
e0 = d0 + b0
e1 = d1 + b1
e2 = d2 + b2
f0 = c0 / e0
f1 = c1 / e1
f2 = c2 / e2
求: f0, f1, f2
這也太奇怪了!怎么會有人出這樣的試卷呢?事實情況是:圖形渲染和人工智能應用恰好符合這樣的特點。對于圖形渲染而言,輸入的3D圖形是由眾多離散的點坐標組成的,在渲染過程中需要并行地對多個點進行相同的位置轉換、光照運算;在人工智能應用中,現(xiàn)實世界輸入的圖像、文字被表達成了大規(guī)模的矩陣和向量,而矩陣和向量之間的運算操作也可以抽象成多個數(shù)值并行執(zhí)行相同的運算,正中SIMT并行的下懷!
既然,GPU的并行模式這么優(yōu)秀,我們?yōu)槭裁床桓纱喟袰PU也設計成這樣呢?答案是:SIMT并行相比多核并行損失了一定的“通用性”。在我們的類比中,更直觀的表達是:我們不一定能把試卷組織成適合GPU的樣子。一個案例便是我們每天都在訪問的微信、淘寶等互聯(lián)網(wǎng)應用,由于每個用戶都在發(fā)送不一樣的消息、查看不一樣的商品,很難讓GPU的值日小組高效協(xié)同。
如何乘上AI的“東風:從GPU到GPGPU
1999年,英偉達發(fā)布了世界上第一款GPU——GeForce 256,它集成了變換、裁剪及渲染等圖形計算的硬件加速,也因此被命名為圖形處理單元。
GeForce 256 GPU | wiki
早期GPU的可編程性很弱,大多數(shù)用戶只能調(diào)用固定的編程接口進行固定的圖形操作。但是一些具有前瞻視野的計算機科學家意識到了GPU可挖掘的并行計算潛力,他們嘗試將洋流模擬、大氣模擬等科學計算問題映射轉換成GPU可支持的圖形操作,并獲得了性能收益。
搭載GeForce 256 芯片的GPU板卡 | VGA Museum
也許是受到了這種“歪打正著”的應用場景啟發(fā),2007年英偉達推出了CUDA(Compute Unified Device Architecture)編程框架,向開發(fā)者全面放開了GPU的可編程能力。借助CUDA,用戶可以用類似C/C++的編程方式編寫適用于GPU的并行程序。從此,GPU的名字變成了GPGPU(General-purpose computing on graphics processing units),多出來的GP表達了對通用性的支持。
在比CUDA推出稍早一點的2006年,人工智能泰斗Hinton及其團隊改進了深度神經(jīng)網(wǎng)絡的訓練方法,屬于“連接主義學派”的深度學習方法開始回暖。到了2012年,圖像分類模型 AlexNet 贏得了 ImageNet 競賽,激發(fā)了深度學習研究的熱情,借助GPGPU進行訓練的方法開始被廣泛采納。2014年,NVIDIA推出了cuDNN深度學習加速庫,讓基于GPU的深度學習訓練變得更加容易。
之后的故事我們逐漸熟悉,2016年谷歌的人工智能圍棋軟件AlphaGo擊敗韓國棋手李世石,在AlphaGo的早期版本中,谷歌使用了176塊GPU支撐其運行。
由上百塊GPU訓練的AlphaGo擊敗了韓國棋手李世石 | Deepmind
2022年末,聊天機器人ChatGPT驚艷登場,引發(fā)了人門對于人工智能技術新一輪的憧憬。ChatGPT是一種大語言模型,能夠基于海量文本數(shù)據(jù)的訓練,通過機器學習理解并生成人類語言。盡管缺乏公開數(shù)據(jù)支持,但是相關領域研究者普遍認為OpenAI公司采用了數(shù)千到數(shù)萬塊當時頂級的NVIDIA A100 GPU以支持訓練。
聊天機器人ChatGPT掀起了人工智能新一輪的研究熱潮 | pexel
在此背景下,支撐大模型算力需求的GPU正成為各大科技企業(yè)爭奪的“緊俏貨”。作為具有壟斷地位的廠商,英偉達在這場人工智能的狂潮中,憑借十余年的技術積累,成功抓住了機遇,完成了從“游戲處理器”到“人工智能計算平臺”的華麗轉身,可謂是“好風憑借力,送我上青云”。
英偉達在GPU領域處于全球壟斷地位,然而受限于美國政府的出口限制,高端GPU型號對我國處于禁售狀態(tài)。開發(fā)設計具有獨立自主知識產(chǎn)權的人工智能計算平臺,是我國計算機科研人員當前發(fā)力的重點問題之一。那么,剛剛高考完“想要學人工智能”的你,愿不愿意參與到這一開啟未來的征程中來呢?
如果你是投資人、創(chuàng)業(yè)團隊成員或科研工作者,對果殼硬科技組織的閉門會或其它科創(chuàng)服務活動感興趣,歡迎掃描下方二維碼,或在微信公眾號后臺回復“企業(yè)微信”添加我們的活動服務助手,我們將通過該渠道組織活動——
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.