前言:
半導(dǎo)體產(chǎn)品未來可能將沿著標(biāo)準(zhǔn)化與定制化交替發(fā)展的路線前進(jìn),每十年波動(dòng)一次,半導(dǎo)體技術(shù)未來要依靠上述定律維持其高增長的創(chuàng)新速度。
過去數(shù)年我們一直在呼喚AI 芯片和高性能計(jì)算芯片,那么下一個(gè)波峰將是超高靈活度集成的芯片GPGPU。
時(shí)代召喚:從GPU到GPGPU
早年的GPU專用于圖形計(jì)算加速,在不斷的發(fā)展和演進(jìn)之中,逐漸進(jìn)化出越來越多的通用屬性,也即可編程性。
CUDA是英偉達(dá)在GPU應(yīng)用于高性能異構(gòu)計(jì)算領(lǐng)域在編程方面的一大創(chuàng)舉,CUDA可以基于C語言、C++和Fortran、Python等語言直接開發(fā)應(yīng)用程序,并構(gòu)建起極為龐大的開發(fā)用戶群,這奠定了GPU可以廣泛應(yīng)用的技術(shù)基礎(chǔ)和生態(tài)力量。CUDA的推出,也開啟了英偉達(dá)的GPGPU戰(zhàn)略。
GPGPU,也有人稱之為GP2U(GP的兩次方U)。兩個(gè)GP代表著不同的含義:后邊的GP表示圖形處理(Graphic Process),和U組合一起是我們熟知的GPU(圖形處理器);前一個(gè)GP則表示“通用目的”(General Purpose)。
GPGPU不是一款具體的芯片,而是一種概念,即利用圖形處理器進(jìn)行一些非圖形渲染的高性能計(jì)算。
從狹義上來講,GPGPU在GPU的基礎(chǔ)上進(jìn)行了優(yōu)化設(shè)計(jì),使之更適合高性能并行計(jì)算,并能使用更高級(jí)別的編程語言,在性能、易用性和通用性上更加強(qiáng)大。
GPU應(yīng)用于AI計(jì)算,無論是云端訓(xùn)練還是終端推理,其本質(zhì)都是GPU通用屬性的一個(gè)方向。
根據(jù)算法的不同,GPU的運(yùn)行速度可以比CPU快10倍到100倍以上。目前世界上最先進(jìn)的超級(jí)計(jì)算機(jī)多數(shù)是基于GPGPU技術(shù)來實(shí)現(xiàn)的。
小眾玩家:GPGPU領(lǐng)域的玩家
·英偉達(dá)是GPU帶到通用計(jì)算領(lǐng)域的先驅(qū),其GPGPU憑借并行計(jì)算的優(yōu)勢(shì)和完整強(qiáng)大的通用并行計(jì)算架構(gòu)CUDA幾乎壟斷云端訓(xùn)練芯片市場。
·AMD就發(fā)布過一款“流處理器”,算是AMD最早的GPGPU的嘗試。但當(dāng)時(shí)那款“流處理器”只是GPGPU的一個(gè)“雛形”,遠(yuǎn)未發(fā)揮出GPGPU的真正威力。
·英特爾也在加緊布局通用GPU,從開始對(duì)GPU的不屑,到基于自家的x86架構(gòu)開發(fā)獨(dú)立顯卡,英特爾折騰了十年之久仍然沒做出來一款像樣的GPU。
壓力山大:現(xiàn)階段都要面對(duì)的挑戰(zhàn)
①盡管將GPU大規(guī)模部署到電子戰(zhàn)等嵌入式系統(tǒng)中會(huì)面臨諸多困難,會(huì)需要若干年的努力,但同樣的,要引入其它技術(shù)路線也非常困難。
②處理器技術(shù)的快速更新與迭代,這使得任何電子戰(zhàn)系統(tǒng)承包商都幾乎不可能將其技術(shù)路線依托于單一處理器架構(gòu),尤其是當(dāng)前存在諸多可選項(xiàng)的情況下。
③將GPU應(yīng)用于各種電子戰(zhàn)平臺(tái)所必須承受的惡劣工作環(huán)境的全面的、充分的驗(yàn)證,包括地面、海上、空中甚至是太空環(huán)境,這需要數(shù)十年的時(shí)間。
無論如何,將定點(diǎn)和浮點(diǎn)處理結(jié)合在同一個(gè)芯片上為提高電子戰(zhàn)系統(tǒng)性能的提升提供了誘人的前景,減少時(shí)延也是一個(gè)無休止的目標(biāo)和挑戰(zhàn)。
困難重重:研發(fā)GPGPU的難點(diǎn)
從硬件角度看,最核心的是指令集。指令集的覆蓋面、顆粒度、效率等決定一款芯片能否覆蓋到足夠?qū)挼膽?yīng)用領(lǐng)域,對(duì)軟件開發(fā)和產(chǎn)品迭代是否足夠友好。
無論英偉達(dá)還是AMD的GPGPU,指令集都在千條量級(jí),對(duì)比目前國內(nèi)的AI芯片指令集大多都在百條以內(nèi)。類型與數(shù)量的差別映射到硬件高效實(shí)現(xiàn)的復(fù)雜程度,差距是巨大的,在這方面國內(nèi)的團(tuán)隊(duì)還存在著一定的差距。
②基于硬件層的任務(wù)管理和智能調(diào)度。這是讓芯片從硬件層即提高算力的利用率,也就是大家常說的實(shí)際算力。
大多數(shù)AI芯片依賴于軟件層的調(diào)度實(shí)現(xiàn),這種方式有三個(gè)短板:第一增加了軟件開發(fā)的復(fù)雜度,第二降低了硬件算力的利用率,第三減緩了軟件棧迭代更新的速度。在AI領(lǐng)域,算法模型、開發(fā)環(huán)境、應(yīng)用場景都在加速更新,這無疑大大增加了產(chǎn)品落地與工程化的難度。
③軟件層面最重要的是開發(fā)生態(tài)。GPGPU通過英偉達(dá)十多年的耕耘,已經(jīng)建立起了一個(gè)超過160萬開發(fā)用戶的龐大而成熟的生態(tài)——CUDA。
④AI芯片若需要搭建全新的生態(tài),會(huì)帶來兩個(gè)維度的問題:第一,客戶需要冗長的適配期,從原有的開發(fā)環(huán)境切換到新的軟件生態(tài),這不僅需要資源投入,還要推遲業(yè)務(wù)部署時(shí)間窗口,同時(shí)增加了業(yè)務(wù)的不確定性。
值得一戰(zhàn):國內(nèi)企業(yè)挑戰(zhàn)與機(jī)遇
過去一年,AI芯片創(chuàng)企們從秘密造芯的狀態(tài)走出,多數(shù)創(chuàng)企選擇切入的是終端市場,少數(shù)玩家選擇進(jìn)軍被美國半導(dǎo)體巨頭們蠶食掉大半江山的云端,而選擇做GPGPU芯片的玩家更是寥寥無幾。
NVIDIA早早憑借強(qiáng)大的GPU+CUDA方案切入深度學(xué)習(xí)領(lǐng)域,用大筆研發(fā)投入和時(shí)間堆積起堅(jiān)不可摧的生態(tài)城墻,而這恰恰是國內(nèi)外其他玩家都相對(duì)薄弱的環(huán)節(jié)。
GPGPU創(chuàng)企們還需在CUDA生態(tài)的基礎(chǔ)上來推廣自己的芯片,但隨著初代芯片陸續(xù)順利落地,若想真正實(shí)現(xiàn)自主可控,打造完整的國產(chǎn)核心技術(shù)生態(tài)體系是必經(jīng)之路。
CPU因?yàn)橛兄ㄓ眯缘男枨螅酝厦鎲蝹€(gè)核心會(huì)設(shè)計(jì)的非常大而全面,并且由于CPU計(jì)算的特性,核心中很大一部分面積用來構(gòu)建緩存(一個(gè)核心中往往有L1和L2兩級(jí)緩存)和控制單元(解碼器與分支預(yù)測(cè)等前端單元),而實(shí)際用來運(yùn)算的單元面積可能僅僅只占整個(gè)核心的一半甚至不到。
種種原因使得CPU沒有辦法做非常大的規(guī)模,一個(gè)核心中能塞入的東西有限,而總體的核心數(shù)需要控制在一個(gè)合理范圍中,多了就可能會(huì)發(fā)生各種各樣的問題。
明面上,現(xiàn)在是異構(gòu)計(jì)算的天下,近年來傳統(tǒng)以CPU為核心的服務(wù)器市場增長比較平緩,而GPU服務(wù)器的增速迅猛,年增長率據(jù)稱超60%。
只不過在現(xiàn)階段,國產(chǎn)替代方案還要在CUDA生態(tài)的基礎(chǔ)上推廣自己的芯片產(chǎn)品,在兼容CUDA的同時(shí),建設(shè)新生態(tài)。在這個(gè)過程中,每一步都關(guān)鍵且充滿挑戰(zhàn)。
潛在因素則在于5G時(shí)代的到來推動(dòng)了物聯(lián)網(wǎng)的迅猛發(fā)展,應(yīng)用場景更加豐富多元,這要求云端的計(jì)算資源能應(yīng)對(duì)各種復(fù)雜場景的需求提供豐富靈活的計(jì)算支撐,工程師們肯定更愿意將能“通吃”的芯片焊在服務(wù)器上。
圍繞GPGPU,國外已是龍爭虎斗,反觀國內(nèi),能夠洞悉GPGPU發(fā)展機(jī)遇并付諸行動(dòng)的芯片廠商少之又少。
華為是為數(shù)不多看到通用GPU趨勢(shì)的芯片廠商之一,而且看起來正在嘗試兩條腿走路通往GPGPU的路上。
結(jié)尾:
GPGPU這個(gè)相對(duì)于PC整個(gè)歷史還算是比較新的概念,經(jīng)過十余年的發(fā)展已經(jīng)不僅局限于PC,還走向了其他領(lǐng)域,扎根于我們生活的每個(gè)角落。
GPGPU已經(jīng)在許多云計(jì)算平臺(tái)上得到了應(yīng)用,相信在以后,GPU會(huì)更加深入我們電子生活的方方面面,在那里默默地發(fā)熱。