兩年前,華為正式發(fā)布了名為“昇騰”的人工智能專(zhuān)用芯片,并高調(diào)宣布,這是當(dāng)時(shí)世界上算力最強(qiáng)的AI處理器。轉(zhuǎn)眼之間兩年過(guò)去了,牛年就要來(lái)了,在這篇文章里我們就一起來(lái)看看,昇騰到底“牛”在哪里。
為什么需要人工智能芯片
在探討昇騰芯片的軟硬件架構(gòu)之前,有必要首先明確人工智能芯片的必要性。
在過(guò)去的幾年里,人工智能技術(shù)取得了飛速的發(fā)展。業(yè)界普遍認(rèn)為,驅(qū)動(dòng)這一發(fā)展的主要力量有三個(gè):一個(gè)是海量數(shù)據(jù)的產(chǎn)生和累積,一個(gè)是理論算法的創(chuàng)新,還有一個(gè)就是計(jì)算技術(shù)的變革。
可以說(shuō),數(shù)據(jù)、算力、算法這三點(diǎn)是相互結(jié)合,缺一不可的。如果我們把人工智能技術(shù)的發(fā)展比作一個(gè)正在起飛的火箭,那么大數(shù)據(jù)就是它的燃料,算法和理論用來(lái)控制它的飛行軌跡和姿態(tài),計(jì)算技術(shù)則是它持續(xù)爆發(fā)的引擎。
為了讓這個(gè)火箭飛的更高,飛的更遠(yuǎn),我們就需要不斷獲取更多的數(shù)據(jù),并且不斷創(chuàng)造和改進(jìn)我們的算法、模型和理論,來(lái)對(duì)這些數(shù)據(jù)進(jìn)行更有效的處理、分析和利用。此外,我們還要不斷升級(jí)計(jì)算的能力,從而在更短的時(shí)間里處理更多的數(shù)據(jù)。而承載這一切發(fā)展的最重要的基礎(chǔ),就是芯片,特別是人工智能芯片。
在之前的文章里,我們介紹過(guò)四種主要的人工智能芯片,分別是針對(duì)AI應(yīng)用進(jìn)行了架構(gòu)優(yōu)化的CPU、GPU,還有FPGA,以及AI專(zhuān)用芯片ASIC。為了評(píng)價(jià)這四種AI芯片的優(yōu)勢(shì)和劣勢(shì),我們討論了衡量AI芯片的五個(gè)重要因素,分別是性能、靈活性、同構(gòu)性、成本和功耗。
總體來(lái)看,這四種芯片都有各自存在的意義。每種芯片都有自己的獨(dú)特優(yōu)勢(shì),也有不可忽視的短板。拿AI專(zhuān)用芯片舉例,它最主要的優(yōu)勢(shì)就是極高的性能和極低的功耗,但是代價(jià)就是極高的研發(fā)成本,以及較低的靈活性。關(guān)于其他的比較內(nèi)容,歡迎看一下那篇文章《算力至上?AI芯片大對(duì)決》。
接下來(lái),我們就重點(diǎn)看一下人工智能專(zhuān)用芯片,特別是華為的昇騰AI芯片的相關(guān)技術(shù)內(nèi)容。我會(huì)結(jié)合目前可以找到的公開(kāi)技術(shù)資料,盡量深入地分析昇騰AI芯片的一些技術(shù)特點(diǎn),包括硬件架構(gòu)、軟件框架,以及華為基于昇騰處理器的全棧式解決方案的一些有比較意思的內(nèi)容。
昇騰AI芯片 – 硬件架構(gòu)
首先來(lái)看一下昇騰AI芯片的硬件架構(gòu)。這里以及之后說(shuō)的“昇騰AI芯片”其實(shí)有兩個(gè),一個(gè)是2018年發(fā)布的昇騰310,它主要針對(duì)的是推理應(yīng)用,還有一個(gè)是2019年發(fā)布的針對(duì)訓(xùn)練應(yīng)用的昇騰910。
值得注意的是,作為人工智能專(zhuān)用芯片,昇騰310和昇騰910都是為了特定的應(yīng)用領(lǐng)域進(jìn)行設(shè)計(jì)和深度優(yōu)化的,這也是它們區(qū)別于CPU、GPU這些通用芯片的最主要的方面。我們都知道,AI系統(tǒng)又繼續(xù)分成訓(xùn)練和推理這兩個(gè)主要的過(guò)程,這也會(huì)造成不同AI芯片的優(yōu)化側(cè)重點(diǎn)有所不同。
比如,昇騰910主要針對(duì)的是云端的AI訓(xùn)練應(yīng)用,所以芯片的性能,也就是算力的大小,就是它優(yōu)化的重點(diǎn)。昇騰910使用臺(tái)積電7納米工藝制造,F(xiàn)P16算力可以達(dá)到256TFLOPS,INT8算力高達(dá)512TOPS,同時(shí)支持128通道全高清視頻解碼。這些性能其實(shí)都超過(guò)了同時(shí)期、或者使用同等工藝進(jìn)行制造的GPU,比如英偉達(dá)的V100。為了實(shí)現(xiàn)這么高的算力,昇騰910的最大功耗為310W,和GPU基本處于一個(gè)量級(jí)。
相比之下,昇騰310針對(duì)的是推理場(chǎng)景,主要應(yīng)用在移動(dòng)端,所以這就需要對(duì)性能和功耗進(jìn)行一定的平衡。這是因?yàn)槲覀兓静豢赡茉诓渴鹬悄?a class="article-link" target="_blank" href="/baike/482292.html">攝像頭、無(wú)人駕駛車(chē)輛,或者是我們的手機(jī)或者手表里放一個(gè)有著幾百瓦功耗的AI芯片。同時(shí)對(duì)于一些邊緣計(jì)算的場(chǎng)景,對(duì)芯片使用成本的控制,以及芯片本身的實(shí)時(shí)性、安全性等等,也都是重要的考慮因素。
所以結(jié)合這些需求,昇騰310采用的是12納米工藝進(jìn)行制造,最大功耗僅為8W。在性能方面,它的FP16算力達(dá)到了8TFLOPS,INT8的算力可以達(dá)到16TOPS,同時(shí)也集成了16通道的全高清視頻解碼器。這些在邊緣計(jì)算領(lǐng)域其實(shí)已經(jīng)是很高的算力了。
在之前介紹蘋(píng)果M1芯片的時(shí)候我們說(shuō)過(guò),現(xiàn)在很多的芯片結(jié)構(gòu)其實(shí)都是以片上系統(tǒng)(SoC)的形式進(jìn)行設(shè)計(jì)開(kāi)發(fā)的,當(dāng)時(shí)我們拿蛋糕舉過(guò)例子,也就是在一個(gè)盒子里裝了很多不同的小蛋糕,而不是直接做一個(gè)特別大的蛋糕。當(dāng)然有很多朋友也舉了不少其他的例子,比如什么雙拼披薩、肉夾饃,還有說(shuō)五仁月餅的。反正不管是什么吃的,這樣做都有很多的好處,比如每個(gè)小蛋糕可以分別做,還可以做不同的口味、大小,最后整合在一起就好,這樣既節(jié)省了制作的時(shí)間,也降低了制作的風(fēng)險(xiǎn)和成本。
同樣的,昇騰AI芯片的本質(zhì)也是一個(gè)片上系統(tǒng)。在芯片上有很多不同的模塊,也就是前面說(shuō)的小蛋糕組成,它們有的負(fù)責(zé)數(shù)據(jù)存儲(chǔ)、有的負(fù)責(zé)接口和通信、有的負(fù)責(zé)任務(wù)調(diào)度和控制,還有最重要的就是負(fù)責(zé)AI運(yùn)算的計(jì)算核心。
昇騰910架構(gòu)示意圖
從硬件結(jié)構(gòu)來(lái)看,昇騰AI芯片最主要的特點(diǎn),就是它的這個(gè)AI核心采用了華為自研的達(dá)芬奇架構(gòu)。昇騰系列的兩款芯片,也就是昇騰910和昇騰310,都使用了這個(gè)基于達(dá)芬奇架構(gòu)的AI核心。這個(gè)也是昇騰芯片的主要競(jìng)爭(zhēng)優(yōu)勢(shì)。
總體來(lái)說(shuō),這個(gè)達(dá)芬奇架構(gòu)可以分為三個(gè)主要的組成部分,分別對(duì)應(yīng)數(shù)據(jù)的計(jì)算、存儲(chǔ)和控制。
拿計(jì)算單元來(lái)說(shuō),它可以執(zhí)行標(biāo)量、向量和張量三種基礎(chǔ)運(yùn)算,分別對(duì)應(yīng)上圖中的藍(lán)色、橙色和紅色的部分。比如這個(gè)張量運(yùn)算就是專(zhuān)門(mén)用來(lái)加速AI應(yīng)用中的矩陣運(yùn)算,它也叫所謂的3D Cube單元,它可以用一條指令完成兩個(gè)16x16的矩陣相乘運(yùn)算。
由于篇幅所限,達(dá)芬奇架構(gòu)的具體細(xì)節(jié)在這里就不再一一介紹了,有興趣的朋友可以看一下《昇騰AI處理器架構(gòu)與編程》,這本書(shū)由華為官方背書(shū),里面有關(guān)于昇騰AI芯片比較深入的介紹。
昇騰AI芯片 – 軟件架構(gòu)
除了芯片的硬件結(jié)構(gòu)之外,同樣非常重要的就是編程方法和軟件架構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)。英偉達(dá)GPU之所以在人工智能領(lǐng)域大放異彩,并且得到非常廣泛的應(yīng)用,GPU芯片性能的提升固然重要,但更重要的就是它推出的成熟易用的編程框架CUDA。
相比之下,F(xiàn)PGA的編程難度極大,這也在很大程度上限制了FPGA的廣泛使用。當(dāng)然為了應(yīng)對(duì)這個(gè)問(wèn)題,F(xiàn)PGA廠商也在努力嘗試簡(jiǎn)化FPGA的編程難度,包括提供更加易用的編程工具,或者使用高層次綜合的方法對(duì)FPGA進(jìn)行編程等等,這些在之前的文章中詳細(xì)介紹過(guò),這里就不再贅述了。
對(duì)于AI專(zhuān)用芯片,編程性也是重中之重。為此,昇騰AI芯片也提供了一個(gè)多層的軟件棧和開(kāi)發(fā)工具鏈,來(lái)幫助開(kāi)發(fā)者更好的使用和開(kāi)發(fā)昇騰。通過(guò)軟件的多樣性,也能在很大程度上彌補(bǔ)專(zhuān)用芯片靈活性不足的劣勢(shì)。
總體來(lái)說(shuō),這個(gè)軟件??梢苑殖伤膶?。最底下的是處理器的計(jì)算資源,比如前面提到的AI核心、CPU,還有負(fù)責(zé)數(shù)字視覺(jué)的計(jì)算模塊等等。再往上是一些標(biāo)準(zhǔn)的加速庫(kù),負(fù)責(zé)給硬件輸出算子層面的任務(wù)。此外還有任務(wù)調(diào)度器和一些預(yù)處理模塊。然后再往上,就是框架層,顧名思義它就是用來(lái)調(diào)用和管理深度學(xué)習(xí)框架,并生成離線模型。
值得注意的是,昇騰AI處理器不僅支持主流的深度學(xué)習(xí)框架,比如TensorFlow和PyTorch,還支持華為自研的名叫MindSpore的深度學(xué)習(xí)框架。通過(guò)MindSpore框架產(chǎn)生的神經(jīng)網(wǎng)絡(luò)模型,可以直接運(yùn)行在昇騰AI處理器上,而無(wú)需進(jìn)行硬件的適配和轉(zhuǎn)換,這也就極大的提升了開(kāi)發(fā)效率。
在2020年的開(kāi)發(fā)者大會(huì)上,華為也正式將MindSpore框架進(jìn)行了開(kāi)源,這也是構(gòu)建廣闊生態(tài)系統(tǒng)的重要一步。
這個(gè)軟件棧的最后一層,就是應(yīng)用層,它的抽象程度最高,封裝集成了很多專(zhuān)用領(lǐng)域的計(jì)算引擎,比如針對(duì)計(jì)算機(jī)視覺(jué)、還有針對(duì)語(yǔ)言文字處理的算法封裝等等,用戶可以直接拿來(lái)進(jìn)行調(diào)用。
除了這幾個(gè)大的邏輯層次之外,昇騰的軟件棧還提供了一個(gè)完整的開(kāi)發(fā)工具鏈MindStudio,包括編譯、調(diào)試、性能分析、模型轉(zhuǎn)換等等,這里就不再多說(shuō)了,有興趣的讀者朋友可以看一下前面提到的書(shū)籍。
昇騰AI芯片 – 生態(tài)系統(tǒng)
有了硬件架構(gòu)和軟件棧,還需要最后一個(gè)大的環(huán)節(jié),來(lái)完成整個(gè)生態(tài)的閉環(huán),那就是提供結(jié)合軟硬件的系統(tǒng)級(jí)解決方案。這個(gè)其實(shí)是一個(gè)目前芯片業(yè)界的發(fā)展趨勢(shì),不管是CPU、GPU、FPGA還是這樣的AI專(zhuān)用芯片,其實(shí)都是在遵循這個(gè)規(guī)律在發(fā)展。
簡(jiǎn)單來(lái)說(shuō),就是芯片公司不僅要提供牛逼的芯片,當(dāng)然這個(gè)是最基本的大前提,除此之外它們還要提供好用的軟件和開(kāi)發(fā)工具,就像前面介紹的軟件棧。再然后,最好還要提供完整的參考設(shè)計(jì)以及軟硬件系統(tǒng),讓大家拿過(guò)來(lái)就能用。
之前介紹蘋(píng)果M1芯片的時(shí)候也說(shuō)過(guò),我們不可能去單獨(dú)買(mǎi)到這個(gè)芯片,而是需要購(gòu)買(mǎi)整個(gè)生態(tài)系統(tǒng)。這個(gè)對(duì)于FPGA也是如此。最早的時(shí)候,像Altera或者賽靈思這樣的FPGA廠家都是賣(mài)芯片,但是現(xiàn)在這些公司也在不斷推出各種基于FPGA的加速卡產(chǎn)品,同時(shí)也提供了像OPAE或者Vitis這樣的軟件棧和開(kāi)發(fā)軟件,并且以此構(gòu)建生態(tài)。
同樣的,昇騰也提供了一系列的硬件產(chǎn)品,從最小的加速模塊,到推理或者訓(xùn)練專(zhuān)用的加速卡,再到專(zhuān)用的服務(wù)器,甚至是由多個(gè)服務(wù)器陣列組成的計(jì)算集群,這些也構(gòu)建了一個(gè)涵蓋終端、邊緣以及云計(jì)算的產(chǎn)品組合,使得用戶可以根據(jù)自身的實(shí)際需要,選擇合適的硬件產(chǎn)品,這也就是華為說(shuō)的全場(chǎng)景覆蓋。
Atlas 900 AI計(jì)算集群
當(dāng)然了為了打造良好的生態(tài),開(kāi)放和交流也是必不可少的。為此華為推出了昇騰社區(qū),在那上面基本包含了和昇騰軟硬件相關(guān)的所有內(nèi)容,有興趣的讀者朋友可以去看看。
小結(jié)
本文從硬件、軟件和生態(tài)三個(gè)角度介紹了華為的昇騰AI處理器。我們還深入探討了華為自研的達(dá)芬奇架構(gòu)、以及MindSpore這個(gè)深度學(xué)習(xí)框架的一些技術(shù)特點(diǎn)。同時(shí)我們也看到了一些業(yè)界的發(fā)展趨勢(shì),也就是以硬件為基礎(chǔ),通過(guò)軟件擴(kuò)展靈活性和易用性,然后圍繞軟件和硬件去打造系統(tǒng)級(jí)的解決方案,并構(gòu)建一個(gè)完整的生態(tài)系統(tǒng)。
說(shuō)了這么多,仍然沒(méi)有回答文章題目提出的問(wèn)題,也就是昇騰AI芯片究竟是不是地表最強(qiáng)的AI芯片?這個(gè)問(wèn)題并沒(méi)有一個(gè)明確的答案,因?yàn)檫@取決于我們的衡量維度和評(píng)判標(biāo)準(zhǔn)。更重要的是,我們應(yīng)該思考這個(gè)問(wèn)題的必要性,也就是“是不是最強(qiáng),到底有什么意義”?事實(shí)上,作為仍然在不斷發(fā)展的技術(shù),任何進(jìn)步都是值得被肯定和鼓勵(lì)的。