GPGPU加速大模型訓(xùn)練,用開源解決人、錢、時(shí)間難題。編輯 | GACS9月14日~15日,2023全球AI芯片峰會(GACS 2023)在深圳南山圓滿舉行。在次日AI大算力芯片專場上,上海交通大學(xué)計(jì)算機(jī)科學(xué)與工程系教授梁曉峣分享了題為《開源GPGPU平臺“青花瓷”的技術(shù)進(jìn)展與生態(tài)建設(shè)》的主題演講。梁曉峣教授以目前AI芯片領(lǐng)域的“王者”英偉達(dá)作為切入點(diǎn),解讀了英偉達(dá)是如何在“瘋狂的大模型時(shí)代”中,通過數(shù)制、稀疏性、互連、內(nèi)存帶寬方面的4項(xiàng)革新,以及涵蓋編程語言、運(yùn)行環(huán)境等完善的軟件生態(tài)建設(shè)應(yīng)對挑戰(zhàn),從而鞏固自己的地位的。他認(rèn)為,在英偉達(dá)以V100為代表的處理器中,CUDA Core和Tensor Core這兩個(gè)主要單元幫助英偉達(dá)奠定了AI時(shí)代算力基座的行業(yè)地位。為了建設(shè)國內(nèi)的開源生態(tài),梁曉峣團(tuán)隊(duì)于去年推出自研GPGPU平臺“青花瓷”,該平臺支持大規(guī)模的并行通用計(jì)算、科學(xué)計(jì)算、AI計(jì)算等。梁曉峣團(tuán)隊(duì)定義的“青花瓷”指令集分為9個(gè)大類,功能組合超過100個(gè),支持應(yīng)用超過100個(gè),通過這套自定義指令,能夠?qū)崿F(xiàn)架構(gòu)通用性、性能先進(jìn)性、生態(tài)兼容度。梁曉峣強(qiáng)調(diào),青花瓷平臺不收取任何費(fèi)用,完全免費(fèi)開放給大家使用。以下為梁曉峣的演講實(shí)錄:感謝主辦方的邀請,這是我連續(xù)第二次在芯片論壇給大家做匯報(bào)。如果說從去年到今年發(fā)生了一件特別重要的事情,毫無疑問就是大模型,它的橫空出世改變了我們?nèi)祟惖氖澜?。大模型可以做的事情非常多,包括在一些?biāo)準(zhǔn)化測試當(dāng)中,它的機(jī)器評分、人工智能評分已經(jīng)超越了人類。大模型最關(guān)鍵的就是大,即它的參數(shù)量非常大,動輒幾十億,甚至上百、上千億的規(guī)模。像最大的GPT-3模型,可以達(dá)到1700多億參數(shù)。伴隨著參數(shù),實(shí)際上就是算力的挑戰(zhàn)。因?yàn)槊恳粋€(gè)參數(shù)都需要參與計(jì)算,這么大的參數(shù)量就帶來巨大的算力。對于GPT-3最大的模型,用現(xiàn)在市場上最主流的A100 GPU,即使把1000塊A100 GPU互連在一起,也需要訓(xùn)練30多天的時(shí)間,可見大模型對算力的需求是有多么的巨大。其實(shí)進(jìn)入信息社會以來,人類社會發(fā)展史就是一部算力發(fā)展史。從最早期,人們采用分立元件三極管,搭出了一個(gè)人類歷史上第一臺通用計(jì)算機(jī)ENIAC。這個(gè)計(jì)算機(jī)有著非常大的體積,但它的算力可能也只是相當(dāng)于今天一個(gè)計(jì)算器的算力。隨著集成電路的出現(xiàn),我們發(fā)現(xiàn)可以把晶體管集成在晶圓、芯片上,可以在人眼看不見的尺寸上做所謂的集成電路,從而有了現(xiàn)在按照摩爾定律發(fā)展的28納米、14納米、7納米等尺寸芯片,晶體管尺寸會做得越來越小。伴隨著集成電路行業(yè)的發(fā)展,各種各樣的處理器、芯片類型都應(yīng)運(yùn)而生。比較有名的像CPU,英特爾是老大;現(xiàn)在如日中天的GPU,以英偉達(dá)為代表,在AI和數(shù)據(jù)中心中取得非常絕對的統(tǒng)治地位;像DPU主要做數(shù)據(jù)層面的分離和專用的處理,AI芯片也是其中一類。未來可能還會有更先進(jìn)的芯片,比如量子芯片、光子芯片、生物芯片等,這些芯片可能還需要一段時(shí)間的發(fā)展,但是這個(gè)方向也是非常明確的,未來會往這個(gè)方向走。
01.英偉達(dá)抓住時(shí)代機(jī)遇,GPGPU提高計(jì)算并行度
我今天的報(bào)告可能不會涉及到那么多,主要還是和大家聊一聊現(xiàn)在最主流的,也是最重要的一類AI芯片——GPGPU。所謂GPGPU,就是通用圖形處理器(General-Purpose Graphics Processing Unit),現(xiàn)在代表性的企業(yè)是英偉達(dá),這家公司在上半年市值突破了1萬億美金。歷史上只有幾家公司突破過1萬億美金,包括蘋果、微軟、谷歌和亞馬遜等。作為一家芯片企業(yè),突破1萬億市值是歷史上第一次。為什么英偉達(dá)能做到這一點(diǎn)?正是因?yàn)樗プ×藭r(shí)代機(jī)遇。大家都在AI大時(shí)代淘金,而英偉達(dá)常被稱作是“賣鏟子的”,其實(shí)它是賺錢最多的。從英偉達(dá)來看,我認(rèn)為最具有代表性的,真正讓英偉達(dá)進(jìn)入AI時(shí)代算力基座的、奠定基礎(chǔ)的是V100這代GPU。V100已經(jīng)是幾代以前的GPU了,但非常具有代表性。在一個(gè)GPU里面有很多處理器,下圖中一個(gè)方塊就是GPU的一個(gè)處理器。每個(gè)處理器放大來看,都是一樣的架構(gòu)。在英偉達(dá)以V100為代表的處理器中,有幾個(gè)主要的單元,其中最主要的是CUDA Core和Tensor Core這兩個(gè)單元。CUDA Core是大家耳熟能詳?shù)?,指的是GPU以SIMT,即單指令、多線程的方式運(yùn)行。在V100這代架構(gòu)里,英偉達(dá)增加了一個(gè)Tensor Core張量運(yùn)算引擎,加入的主要目的就是為了做AI計(jì)算,那時(shí)候還叫深度神經(jīng)網(wǎng)絡(luò)計(jì)算。因此,V100這代GPU是非常具有代表性的。那么具體分析,GPU為什么能夠算得這么快?為什么它的性能會這么好?主要得益于它極高的數(shù)據(jù)并行度。SIMT中,這個(gè)“T”指的是線程。一個(gè)GPU上可以有海量的線程,每時(shí)每刻都有成千上萬的線程可以同時(shí)運(yùn)行。舉一個(gè)非常簡單的例子,比方說有兩個(gè)矩陣,A矩陣乘以B矩陣,要得到一個(gè)C矩陣結(jié)果。在C矩陣中,每一個(gè)結(jié)果點(diǎn),即下圖中這個(gè)紅色的點(diǎn),它的計(jì)算就是從A矩陣中拿出一行,B矩陣中拿出一列,把它們相乘作一個(gè)內(nèi)值就得到了結(jié)果點(diǎn)。在CUDA Core里面,每一個(gè)線程都負(fù)責(zé)計(jì)算C矩陣中的一個(gè)結(jié)果點(diǎn),一個(gè)線程只計(jì)算一個(gè)結(jié)果點(diǎn)。GPU中成千上萬個(gè)線程同時(shí)執(zhí)行,所以一瞬間的功夫,這個(gè)C矩陣?yán)锏乃薪Y(jié)果都會被計(jì)算出來,這就是CUDA Core并行性比較強(qiáng)大的原因。以此做類比,假如用一個(gè)CPU去做,CPU里一個(gè)線程也只能計(jì)算一個(gè)點(diǎn),做完一個(gè)點(diǎn)再去做第二個(gè)、第三個(gè)點(diǎn)。但是CPU里可能只有十個(gè)線程,沒有這么高的并行性,所以它的算力、并行度沒有這么高,不如GPU計(jì)算那么快。這是在GPU CUDA Core里,用傳統(tǒng)的SIMT引擎里做計(jì)算。那么為什么要加入Tensor Core呢?因?yàn)橛ミ_(dá)意識到,即便用CUDA Core那種單點(diǎn)做矩陣的方式,速度還是不夠快。AI對于算力的需求是無止境的,AI模型參數(shù)在不斷變大,指數(shù)級上升,對算力需求也是指數(shù)級上升。只靠英偉達(dá)傳統(tǒng)SIMT里的CUDA Core還不夠,所以在V100這代GPU里,英偉達(dá)加入Tensor Engine,即張量運(yùn)行計(jì)算單元。Tensor Core改變了矩陣計(jì)算的方式,按照一個(gè)模塊、一個(gè)模塊去做矩陣,而不是一個(gè)點(diǎn)、一個(gè)點(diǎn)去做矩陣。在英偉達(dá)的Tensor Core里,以4×4的矩陣塊為一個(gè)基本單位,一次可以計(jì)算出一個(gè)4×4的矩陣乘上另外一個(gè)4×4矩陣的結(jié)果。這種方式比CUDA Core又要有效很多,速度、功耗各方面都會提升很多,這是英偉達(dá)加入Tensor Core的主要原因。剛才我們提到了,英偉達(dá)提出用張量引擎做矩陣,通過4×4的矩陣塊來進(jìn)行運(yùn)算。那么有沒有可能在更大的塊上做矩陣呢?原則上講,這個(gè)“塊”放得越大,一次能夠同時(shí)進(jìn)行計(jì)算的數(shù)越多,GPU的效率會越高,性能會越好。華為的AI處理器借鑒了同樣的概念,但是用更大的矩陣塊去做,它的矩陣塊大小是16×16,一次可以吃進(jìn)256個(gè)數(shù),吐出一個(gè)16×16的矩陣結(jié)果,所以效率、算力會更高,超過了英偉達(dá)的Tensor Core。當(dāng)然也有其他一些公司在考慮,除了Tensor Core,有沒有其他的方式可以更有效地進(jìn)行矩陣計(jì)算或者類似的計(jì)算?實(shí)際上是有的,比如谷歌自己的AI專用芯片TPU,特斯拉用在自動駕駛上的專用芯片F(xiàn)SD。無論是谷歌還是特斯拉,他們都采用一種脈動陣列的方式處理。比起張量引擎,脈動陣列的優(yōu)勢在于在很大規(guī)模的計(jì)算陣列上,增加了計(jì)算單元之間的互動、脈動,數(shù)據(jù)可以橫向滑,也可以縱向滑?;瑒拥募尤耄姑}動陣列變得更加高效,性能更高。脈動陣列并不是一個(gè)新的東西,早在上世紀(jì)60年代,就由H. T. Kung教授提出,只是那個(gè)時(shí)候還沒有AI。現(xiàn)在,谷歌和特斯拉發(fā)現(xiàn)這個(gè)結(jié)構(gòu)用在AI做矩陣計(jì)算上非常有效。如果你采用脈動陣列的方式來做矩陣計(jì)算,會比由點(diǎn)、小矩陣塊或大矩陣塊來做并行都更加高效。
02.四項(xiàng)巨大革新,英偉達(dá)鞏固AI領(lǐng)域王者地位
這樣看來,英偉達(dá)似乎處于非常被動的局面,大家都群起來挑戰(zhàn)英偉達(dá)。華為用大矩陣塊做并行,谷歌、特斯拉用脈動陣列做并行,這些方式都比英偉達(dá)芯片高效,所以英偉達(dá)面臨著巨大的挑戰(zhàn)和壓力。如果應(yīng)對不利,它可能會失去在AI領(lǐng)域的王者地位。面對華為、谷歌等公司的挑戰(zhàn),英偉達(dá)也立刻提起反擊。在V100以后,英偉達(dá)又做了A100、H100兩代芯片。我認(rèn)為,英偉達(dá)做了四項(xiàng)非常巨大的革新,從而再次鞏固了自己在AI芯片里王者的地位。第一項(xiàng)革新是數(shù)制。在做矩陣計(jì)算的時(shí)候,計(jì)算分為整型數(shù)和浮點(diǎn)數(shù),其中浮點(diǎn)數(shù)是最為重要的。從傳統(tǒng)意義上講,做浮點(diǎn)數(shù)計(jì)算需要遵照國際標(biāo)準(zhǔn),國際上有一個(gè)IEEE 754標(biāo)準(zhǔn)定義了浮點(diǎn)數(shù)計(jì)算的規(guī)則。無論是做CPU還是GPU,都要符合計(jì)算的標(biāo)準(zhǔn)。但是到了人工智能時(shí)代,我們發(fā)現(xiàn)這個(gè)規(guī)則其實(shí)是可以被打破的。在人工智能里做浮點(diǎn)數(shù)的計(jì)算,精度差一點(diǎn),對于最后的網(wǎng)絡(luò)結(jié)果影響并不大。在這個(gè)基礎(chǔ)上,大家提出是不是可以把傳統(tǒng)IEEE 754國際標(biāo)準(zhǔn)放寬松,計(jì)算精度要求低一點(diǎn)?因?yàn)榫仍降停懔υ礁?,功耗越省?/span>英偉達(dá)推出了自己的算制TF32,所謂TF32并不是32位的,其實(shí)只有19位數(shù)。英偉達(dá)稱,用19位的數(shù)來做計(jì)算,最后可以達(dá)到用32位浮點(diǎn)數(shù)來計(jì)算的等效網(wǎng)絡(luò)結(jié)果。最近,英偉達(dá)甚至在最新一代GPU中推出了TF8算制,也就是用8位浮點(diǎn)數(shù),就可以達(dá)到32位的效果。這實(shí)際上是英偉達(dá)的優(yōu)勢,因?yàn)樗茸鲞\(yùn)動員又做裁判員。英偉達(dá)說TF8好,那就是TF8好,為什么呢?因?yàn)閹缀跛械哪P?,落地都會首先落在英偉達(dá)的GPU上。也就是說,即便英偉達(dá)這個(gè)數(shù)制定義得不好,哪怕這個(gè)計(jì)算是錯(cuò)誤的,但是因?yàn)榇蠹叶际窃谒幕A(chǔ)上做的,所以它的錯(cuò)誤也變成了標(biāo)準(zhǔn),它定義的東西就變成了“事實(shí)上的標(biāo)準(zhǔn)”。換句話說,即便你有更好的方法,但是因?yàn)閯e人的模型都是在英偉達(dá)GPU上先落地,所以它利用先發(fā)優(yōu)勢形成了事實(shí)標(biāo)準(zhǔn)。這顯然可以對它所謂的生態(tài)起到了很大的“護(hù)城河”作用。第二個(gè)是稀疏性,這和剛才講的精度有相關(guān)聯(lián)的地方。我們發(fā)現(xiàn)在網(wǎng)絡(luò)里,雖然參數(shù)很多,但實(shí)際上不是每一個(gè)參數(shù)都那么關(guān)鍵。當(dāng)減掉一些參數(shù)后,網(wǎng)絡(luò)性并不受影響,這就是所謂的稀疏性。充分利用稀疏性,可以大量簡化計(jì)算,比方說四個(gè)參數(shù),減掉兩個(gè)參數(shù),就只需要計(jì)算兩次,但是對網(wǎng)絡(luò)精度結(jié)果并沒有太大影響。英偉達(dá)新的GPU里對稀疏性也進(jìn)行了支持。當(dāng)然,英偉達(dá)的支持是有限的,必須按照它的規(guī)則進(jìn)行支持。第三個(gè)方面是互連,我認(rèn)為這一點(diǎn)尤其是在大模型下是最關(guān)鍵的,是英偉達(dá)真正的殺手锏?;ミB包括芯片跟芯片間的互連,板卡跟板卡間的互連,以及服務(wù)器跟服務(wù)器的互連。幾年前,英偉達(dá)前瞻性地收購了一家做互連的公司Mellanox,也就有了后面我們統(tǒng)稱英偉達(dá)NVLink的高速互連網(wǎng)絡(luò)。大模型的參數(shù)都是數(shù)百上千億,以后可能還會更大,沒有一個(gè)單芯片能夠容納這么大的參數(shù),也沒有一個(gè)單芯片能夠容納這么大的算力。未來只要是大模型時(shí)代,所有的系統(tǒng)都需要由很多芯片互連在一起組成,少則幾百片,多則成千上萬片。這個(gè)時(shí)候,芯片之間的互連,數(shù)據(jù)之間的傳輸成為真正的瓶頸。芯片的算力未必能用得滿,但是互連網(wǎng)絡(luò)上數(shù)據(jù)的傳輸幾乎都是被耗盡的。如果互連網(wǎng)絡(luò)的速度帶寬不夠,芯片上的算力再高也是沒用的,發(fā)揮不出來,最后所有數(shù)據(jù)都被堵在互連的高速公路上。而在互連方面,毫無疑問,英偉達(dá)現(xiàn)在是世界上的王者。英偉達(dá)互連網(wǎng)絡(luò)的設(shè)計(jì)、速度、軟硬件的適配性是最好的,所以能在大模型下充分發(fā)揮出算力的優(yōu)勢。其他的芯片公司也許能做出很高算力芯片,但是因?yàn)闆]有這么好的互連網(wǎng)絡(luò)支持,芯片的性能很難發(fā)揮出來。第四點(diǎn)是內(nèi)存帶寬。當(dāng)我們有成千上萬數(shù)據(jù)的時(shí)候,在進(jìn)行計(jì)算之前,首先要有地方存放。如果連存都存不下,數(shù)據(jù)供不上,何談算力呢?在這方面,英偉達(dá)也是走在世界的前列,它率先采用了HBM、HBM2以及現(xiàn)在HBM3E,使用最先進(jìn)的片上堆疊的2.5D封裝技術(shù),它內(nèi)存的帶寬和容量都可以遠(yuǎn)遠(yuǎn)超越其他的競爭對手。英偉達(dá)通過四項(xiàng)核心技術(shù)的反擊,再次鞏固了自己在AI市場上“霸主”的地位。過去幾年,雖然面臨著眾多芯片公司的挑戰(zhàn),但是英偉達(dá)的市占率非常牢固,幾乎沒有被動搖。
03.大模型時(shí)代軟件生態(tài)成為重中之重,開源成為可能的出路
在近年相關(guān)的學(xué)術(shù)論文中,英偉達(dá)GPU作為AI芯片的出現(xiàn)頻率遠(yuǎn)超其他芯片。統(tǒng)計(jì)顯示,在國際頂級會議,使用英偉達(dá)來做學(xué)術(shù)探索的論文與使用其他芯片的論文發(fā)表相差20倍。這是非常關(guān)鍵的,因?yàn)锳I領(lǐng)域不斷在創(chuàng)新,不斷有新東西出現(xiàn),我們無法預(yù)測明年,甚至下個(gè)月會產(chǎn)生什么新的東西。而這些新的東西都是在學(xué)術(shù)界,包括大公司先進(jìn)的研究實(shí)驗(yàn)室中產(chǎn)生的。這些論文中的實(shí)驗(yàn)如果是在英偉達(dá)GPU上做的,自然落地首選就是英偉達(dá)GPU。其次,從AI數(shù)據(jù)中心的占比來看,英偉達(dá)無論是在阿里云、AWS,還是其他任何云里,都占據(jù)絕對主導(dǎo)地位,占85%以上。過去幾年,這個(gè)比例還在逐漸上升。這樣的絕對主導(dǎo)地位是什么問題造成的?我個(gè)人認(rèn)為,英偉達(dá)最大的優(yōu)勢還是在于它的軟件生態(tài)。一顆芯片好或不好,不是取決于它的硬件指標(biāo),不是取決于它的裸算力有多高、功耗有多低,而是取決于它好不好用。這個(gè)芯片做出來,大家是否能馬上用上,能否無縫遷移,能否很愉快地使用,這才是關(guān)鍵。而這點(diǎn)英偉達(dá)做得非常好,它有數(shù)十年的積累,新的模型幾乎都會先在英偉達(dá)GPU落地,這個(gè)先發(fā)優(yōu)勢是非常明顯的。關(guān)鍵中的關(guān)鍵就是生態(tài)。生態(tài)不只是幾個(gè)模型、幾個(gè)框架的問題,它是一個(gè)綜合性的問題,包括編程語言。編程語言,像英偉達(dá)的CUDA生態(tài),指的是CUDA編程的方式、習(xí)慣,它又直接聯(lián)系到芯片指令集的定義、芯片的架構(gòu)定義,一些運(yùn)行庫和Runtime(運(yùn)行時(shí))也非常關(guān)鍵。現(xiàn)在做AI、做算法的同事中,其實(shí)很少有人會去寫CUDA。大家說英偉達(dá)最大的生態(tài)是CUDA,我認(rèn)為不是這樣的,絕大多數(shù)人不寫CUDA,但是他們會用英偉達(dá)提供的算術(shù)庫和運(yùn)行時(shí)。這些運(yùn)行時(shí)是十幾年的積累,對于每一種網(wǎng)絡(luò)、應(yīng)用都有一個(gè)專業(yè)的庫去加速,這些庫是閉源的,我認(rèn)為這才是英偉達(dá)非常高的護(hù)城河,而不是CUDA編程環(huán)境。工具對于芯片的落地很重要,包括Debug工具以及其他相關(guān)的工具,所有這些,構(gòu)成了一個(gè)芯片的生態(tài)。早些年芯片的生態(tài),有幾個(gè)核心的芯片公司,像英特爾、英偉達(dá)、高通等來定義核心的芯片架構(gòu)、芯片產(chǎn)品。很多軟件公司圍繞這幾個(gè)核心的芯片大廠,去定制領(lǐng)域?qū)I(yè)的軟件。過去六七年,這個(gè)形勢發(fā)生了變化,如雨后春筍般出現(xiàn)了很多芯片公司。下圖列出了過去五六年國內(nèi)一些做AI芯片的公司,他們圍繞最主流的軟件框架,比如TensorFlow和PyTorch,去做AI芯片或GPGPU芯片。所謂行業(yè)變化,一開始,軟件公司圍繞硬件公司做領(lǐng)域?qū)I(yè)的軟件,后來變成芯片公司圍繞一兩個(gè)軟件框架,做領(lǐng)域?qū)S玫男酒?,這個(gè)過程一直持續(xù)到今天。本來這個(gè)過程,如果這樣發(fā)展下去,我認(rèn)為是有希望的。只要給這些芯片公司足夠多的時(shí)間,他們一定會跑出來,因?yàn)樾袠I(yè)在發(fā)展。但是半路上殺出一個(gè)程咬金,今年突然進(jìn)入了大模型時(shí)代。大模型層出不窮,導(dǎo)致這些做大芯片的芯片公司無所適從。大家都在做大模型,有這么多做大模型的公司,還有這么多做AI芯片的公司,到底怎么適配?本來大家只圍繞一兩個(gè)軟件框架去做還相對簡單,現(xiàn)在這么多大模型,我到底適配誰呢?大模型公司會看,這么多AI芯片公司到底誰能打,誰能打我就跟誰合作。當(dāng)然,英偉達(dá)是一個(gè)默認(rèn)的選擇,除了英偉達(dá)之外,誰能打呢?AI芯片公司也會問,這些做大模型的公司誰能賺錢呢?能賺錢,合作才有意義。這就出現(xiàn)了一個(gè)問題,在大模型時(shí)代,像英偉達(dá)這樣的公司過于領(lǐng)先的時(shí)候,就要想別的出路。我能想到一條出路,就是開源,用免費(fèi)、開放、開源的方式去解決錢、人、時(shí)間的問題。在硬件上比較有代表性的是RISC-V,它是一個(gè)開源的CPU指令集和硬件架構(gòu)。RISC-V是在2010年,由伯克利的David Patterson教授和Krste Asanovic教授從零開始設(shè)計(jì)的。當(dāng)時(shí)它只定義了50條左右的指令,沒什么影響力,但是隨著時(shí)間的發(fā)展,開源社區(qū)逐漸煥發(fā)出蓬勃的生機(jī)。現(xiàn)在在CPU領(lǐng)域RISC-V特別火,已經(jīng)成為繼英特爾x86體系、Arm指令集體系以外的第三極。這個(gè)開源的方式已經(jīng)被證明,當(dāng)對手特別強(qiáng)大的時(shí)候,實(shí)際上是一個(gè)有效的方式。
04.GPGPU領(lǐng)域的開源平臺,降低軟件開發(fā)難度
RISC-V是在CPU領(lǐng)域開源的方式,那么有沒有可能在GPGPU領(lǐng)域,我們也做一個(gè)開源的方式呢?這就是我們團(tuán)隊(duì)推出GPGPU開源平臺的原因。我們把它命名為“青花瓷”,“瓷”就是China。建設(shè)青花瓷平臺的目的,是支持大規(guī)模的并行通用計(jì)算、科學(xué)計(jì)算、AI計(jì)算等。講得直接一點(diǎn),除了打游戲的部分,其他英偉達(dá)GPU卡能做的,我們都希望能做,并通過這個(gè)平臺提供給大家。我們高度重視與英偉達(dá)GPGPU產(chǎn)品的兼容性。換句話說,我們希望終極的效果就是英偉達(dá)的GPU卡能夠跑的應(yīng)用,我們一行代碼都不用改,直接在卡上跑起來,這就是解決生態(tài)的問題。為了建造這樣一種新的GPGPU平臺生態(tài),我們做了三方面的工作。首先是打造了一個(gè)開源平臺,也就是“青花瓷”平臺。其次,我們出版了一本專業(yè)教材,叫《通用圖形處理器設(shè)計(jì) GPGPU編程模型與架構(gòu)原理》。這是國內(nèi)第一本,也是目前為止唯一一本專業(yè)介紹如何設(shè)計(jì)一個(gè)GPGPU架構(gòu)的教材。如果你是做GPGPU的芯片工程師,我相信基本上都讀過這個(gè)教材。這個(gè)教材出版到現(xiàn)在不過一年時(shí)間,一直在京東暢銷書排行榜上,可見大家對新的核心技術(shù)是非常關(guān)注的。最后,我們在上海交通大學(xué)打造了一門專門介紹通用圖形處理器設(shè)計(jì)的課程。我們的研究包括架構(gòu)、基礎(chǔ)指令、基礎(chǔ)軟件棧,同時(shí)通過開源社區(qū)方式來呈現(xiàn)給大家,下圖是“青花瓷”平臺的整體架構(gòu)和核心架構(gòu)。一句話總結(jié)來說,英偉達(dá)有的東西,我們都有。這里我要重新強(qiáng)調(diào)一下,GPGPU不是SIMD,也不僅僅是SIMT。SIMD叫單指令、多數(shù)據(jù),SIMT叫單指令、多線程。某種意義上講,GPGPU包括了SIMD和SIMT的功能,但遠(yuǎn)遠(yuǎn)大于SIMD和SIMT。GPGPU有很多復(fù)雜的設(shè)計(jì),包括存儲架構(gòu)、線程的調(diào)度、線程的管理,包括一些分支沖突的解決,以及復(fù)雜的同步機(jī)理,這些東西都是GPGPU的核心,它不是那么簡單的一個(gè)SIMT和SIMD的問題。我們定義的“青花瓷”指令集分為9個(gè)大類,功能組合超過100個(gè),支持應(yīng)用超過100個(gè),所以通過我們這套自定義指令,能夠?qū)崿F(xiàn)架構(gòu)通用性、性能先進(jìn)性、生態(tài)兼容度。英偉達(dá)的核心并不完全是CUDA,而是運(yùn)行時(shí)、運(yùn)行庫、運(yùn)行環(huán)境、API(應(yīng)用程序接口)的支持,這些是它的核心競爭力。我們也定義了6大類API,可以支持的復(fù)雜函數(shù)超過50個(gè)。下圖是我們提供給大家的,在這條路上,上面綠色的東西是開源的,下面藍(lán)色的東西也是開源的。有了這套東西,你可以獲得我們的基礎(chǔ)指令集、基礎(chǔ)軟件知識,可以在我們仿真模型上運(yùn)行任何程序。只要你是用CUDA或者框架寫的程序,都可以在上面運(yùn)行。當(dāng)然如果真的做芯片,你需要有RTL Model或者FPGA Model,這個(gè)我們是不開源的,我們只開源了這個(gè)仿真系。下圖是我們能夠支持的不同類型的程序和函數(shù),可以看出,我們這個(gè)平臺不只是為AI去做的,甚至跟AI沒有特別大的關(guān)系。AI只是我們能夠支持應(yīng)用中的一部分,有很多很多的算子、應(yīng)用都不是AI,但是它可能用在科學(xué)計(jì)算、金融活動以及人類生活的方方面面。下圖這些也是我們能夠支持的,是另一類應(yīng)用。最后這一類應(yīng)用是跟AI有關(guān)系的?,F(xiàn)在只要是推理網(wǎng)絡(luò),我們的平臺都能完全跑得通;對于訓(xùn)練網(wǎng)絡(luò),不是跑不通,而是時(shí)間太長了跑不完,但是簡單的訓(xùn)練像Tranformer是可以跑通的,并且不用改一行代碼。我們曾經(jīng)跟某個(gè)大廠有一些合作和討論,為了看這個(gè)平臺的兼容性如何,所謂耳聽為虛、眼見為實(shí)。他們丟給我們10個(gè)應(yīng)用,我們一行代碼不改,直接丟在平臺上跑,當(dāng)場跑通了8個(gè),還有2個(gè)調(diào)試一下也能跑通,這說明我們對于生態(tài)的兼容性是非常強(qiáng)大的。這也是我們做這個(gè)平臺最主要的目的,我們不會做任何一款芯片,這個(gè)平臺就是給大家提供一個(gè)參考設(shè)計(jì)。如果你是在學(xué)校、在科研院所做基礎(chǔ)研究,可以結(jié)合我們的書、課程進(jìn)行基礎(chǔ)研究。青花瓷可以作為一個(gè)實(shí)踐的平臺,開放、免費(fèi)地給大家使用,也支持在這個(gè)基礎(chǔ)上做一些突破創(chuàng)新。我們什么都可以做,但是我們唯一不做的就是收費(fèi),我們不收任何費(fèi)用,完全免費(fèi)開放給大家使用。剛才說的東西都在我們的網(wǎng)站和代碼倉庫上,如果大家有興趣可以下載。網(wǎng)站上有非常詳細(xì)的使用說明,只要根據(jù)說明一步一步去做,就可以試著去跑一些網(wǎng)絡(luò),跑一下最新的大模型。這個(gè)開源項(xiàng)目是不斷累積的過程,需要持續(xù)投入和漫長積累,唯有穿越行業(yè)的周期性長期存在,才有創(chuàng)造新生命的可能。RISC-V做了十多年才有今日的成就,我們的GPGPU平臺是一個(gè)新的生命,去年才剛剛發(fā)布,到現(xiàn)在不過一年的時(shí)間。我們希望堅(jiān)持十年、十五年的時(shí)間,就有機(jī)會成功。有任何問題可以聯(lián)系我們,這是聯(lián)系方式,謝謝大家!青花瓷網(wǎng)站:https://gpgpuarch.org聯(lián)系方式:liang-xy@cs.sjtu.edu.cn以上是梁曉峣演講內(nèi)容的完整整理。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。