硬件革新:借助稀疏計算讓AI算力提質(zhì)降耗
談及人工智能模型,模型規(guī)模至關(guān)重要。盡管部分人工智能專家警示,大語言模型持續(xù)擴容的性能邊際收益正在遞減,但科技企業(yè)仍在不斷推出體量愈發(fā)龐大的AI工具。Meta最新發(fā)布的Llama模型,參數(shù)量更是達到了驚人的2萬億。
模型規(guī)模越大,能力越強,但能耗、運行耗時也隨之攀升,碳足跡進一步增加。為緩解這些問題,行業(yè)開始轉(zhuǎn)向采用體量更小、性能稍弱的模型,并盡可能對模型參數(shù)使用低精度數(shù)值。
而還有另一條可行路徑:在保留超大模型高性能的同時,大幅降低運行耗時與能耗。核心思路,就是善用大型AI模型中大量存在的零值。
對多數(shù)AI模型而言,絕大多數(shù)參數(shù)(權(quán)重與激活值)本質(zhì)上都是零,或是無限趨近于零——將這類數(shù)值直接視作零處理,完全不會損失模型精度。這一特性被稱為稀疏性。
稀疏性為算力節(jié)約創(chuàng)造了巨大空間:無需浪費算力和能耗對零值做加減乘除運算,這類計算可直接跳過;內(nèi)存中也無需存儲海量零值,僅需保存非零參數(shù)即可。
遺憾的是,目前主流硬件(多核CPU、GPU)天生無法充分利用稀疏性優(yōu)勢。想要徹底釋放稀疏計算潛力,科研人員與工程師需要對整個設(shè)計架構(gòu)棧進行重新設(shè)計,涵蓋硬件、底層固件以及應(yīng)用軟件全層級。
斯坦福大學(xué)研究團隊研發(fā)出一款硬件芯片,據(jù)我們所知,這是首款可高效適配各類稀疏及傳統(tǒng)計算負(fù)載的專用硬件。不同負(fù)載場景下的節(jié)能效果差異較大,但平均來看,這款芯片的能耗僅為普通CPU的七十分之一,運算速度平均提升7倍。
為實現(xiàn)這一效果,我們從零開始重構(gòu)了硬件、底層固件與軟件體系,深度適配稀疏性特性。我們希望這只是一個開端,未來硬件與AI模型的協(xié)同研發(fā),將推動人工智能走向更高能效。
什么是稀疏性
神經(jīng)網(wǎng)絡(luò)及其輸入數(shù)據(jù),均以數(shù)字?jǐn)?shù)組形式呈現(xiàn)。這些數(shù)組可以是一維(向量)、二維(矩陣)或更高維(張量)。稀疏向量、稀疏矩陣、稀疏張量的共同特征是:絕大多數(shù)元素都為零。稀疏程度沒有固定標(biāo)準(zhǔn),只要某類數(shù)組中零值占比超過50%,就可以借助稀疏專用計算方法獲得效率提升。與之相對,元素中零值占比極低的數(shù)組,則稱為稠密數(shù)組。
稀疏性分為天然稀疏和人為誘導(dǎo)稀疏兩類。例如社交網(wǎng)絡(luò)圖譜就是典型的天然稀疏結(jié)構(gòu):把每個人看作一個節(jié)點,好友關(guān)系看作節(jié)點間的連線。由于絕大多數(shù)人彼此并非好友,用來表征所有關(guān)聯(lián)關(guān)系的矩陣中,絕大部分?jǐn)?shù)值都是零。圖學(xué)習(xí)、推薦模型等主流AI應(yīng)用,也普遍存在天然稀疏特性。

常規(guī)情況下,一個4×4矩陣無論包含多少零值,都會占用內(nèi)存中16個存儲單元。而稀疏矩陣可通過纖維樹結(jié)構(gòu)實現(xiàn)高效存儲:先記錄包含非零元素的行坐標(biāo)組,再關(guān)聯(lián)對應(yīng)非零元素的列坐標(biāo)組,最終精準(zhǔn)定位并存儲非零數(shù)值本身。在計算機內(nèi)存中存儲纖維樹時,會同步保存每組坐標(biāo)的分段標(biāo)識、坐標(biāo)信息以及對應(yīng)數(shù)值。
除天然稀疏外,還可通過技術(shù)手段人為誘導(dǎo)AI模型產(chǎn)生稀疏性。兩年前,賽布拉斯公司的研究團隊證實:可將大語言模型中70%~80%的參數(shù)置零,且完全不損失模型精度。
該成果率先在Meta開源的Llama7B模型上得到驗證,同樣也適用于ChatGPT、克勞德等主流大語言模型。
稀疏計算的價值所在
稀疏計算的高效性,源于兩大核心特性:零值可壓縮存儲、零值具備特殊數(shù)學(xué)運算屬性。稀疏計算算法與專用硬件,均圍繞這兩大特性設(shè)計。
第一,稀疏數(shù)據(jù)可壓縮,通過稀疏數(shù)據(jù)類型存儲,大幅節(jié)省內(nèi)存空間;處理海量數(shù)據(jù)時,數(shù)據(jù)傳輸?shù)哪芎囊搽S之降低。
舉個例子:一個4×4矩陣僅有3個非零元素。傳統(tǒng)稠密存儲方式會占用16個內(nèi)存單元;采用稀疏壓縮存儲后,僅需保存3個非零值,可節(jié)省13個內(nèi)存單元。且矩陣規(guī)模越大、稀疏度越高,內(nèi)存節(jié)省效果越明顯。

向量與矩陣相乘,傳統(tǒng)稠密計算需要完成16次乘法、16次加法;而采用稀疏格式后,計算量僅取決于非零元素的重合數(shù)量,本例中僅需3次索引查找、2次乘法即可完成運算。
稀疏壓縮數(shù)據(jù)除了存儲數(shù)值本身,還需要配套元數(shù)據(jù):必須記錄每個非零元素的行列位置。纖維樹就是典型的元數(shù)據(jù)組織形式:先羅列含非零值的行標(biāo)識,關(guān)聯(lián)對應(yīng)列標(biāo)識,再映射到具體數(shù)值。
內(nèi)存存儲邏輯則更為復(fù)雜:除行列坐標(biāo)外,還要記錄分段標(biāo)識,用來界定元數(shù)據(jù)與實際數(shù)值的邊界,實現(xiàn)二者清晰劃分。
稠密無壓縮矩陣支持單值讀取或并行讀取,可通過簡單公式直接定位元素位置;但稀疏壓縮數(shù)據(jù)需要間接索引:先查找行坐標(biāo),再依托行信息檢索列坐標(biāo),最后定位數(shù)值。
受稀疏數(shù)據(jù)隨機分布特性影響,這類間接索引往往毫無規(guī)律,計算過程高度依賴數(shù)據(jù)分布,還需要實時分配內(nèi)存索引資源。
第二,零值的數(shù)學(xué)特性,讓軟硬件可以直接跳過大量無效計算。任何數(shù)乘以零結(jié)果仍為零,無需實際執(zhí)行乘法運算;任何數(shù)加零數(shù)值不變,也無需執(zhí)行加法運算。
矩陣-向量乘法是AI最常用的運算之一,除兩個非零元素相乘相加的場景外,其余所有計算都可直接省略。
仍以4×4矩陣和四維向量為例:稠密計算需完成16次乘法、16次加法(4次累加運算);稀疏計算僅需考量向量中的非零元素,通過間接索引匹配矩陣非零元素后,僅需執(zhí)行2次乘法即可,大幅減少運算量。
CPU與GPU的固有短板
現(xiàn)代通用硬件并不適配稀疏計算加速需求。
以矩陣-向量乘法為例:在單核CPU中,向量元素只能逐次串行相乘、寫入內(nèi)存,效率極低。因此行業(yè)普遍采用支持向量運算的CPU或GPU,實現(xiàn)所有元素并行計算,大幅提速。
但如果矩陣和向量都是超高稀疏數(shù)據(jù),向量CPU與GPU仍會機械地對大量零值做乘加運算,產(chǎn)生大量無效算力消耗。
軟件層面執(zhí)行稀疏計算時,現(xiàn)代CPU因架構(gòu)靈活性,反而比GPU更有優(yōu)勢。但CPU的短板在于間接索引瓶頸:CPU會基于預(yù)判主動預(yù)加載內(nèi)存數(shù)據(jù),可隨機分布的稀疏數(shù)據(jù)完全無法預(yù)判,預(yù)加載經(jīng)常失效,CPU只能浪費運算周期反復(fù)調(diào)取所需數(shù)據(jù)。
蘋果率先在A14、M1芯片的預(yù)取器中支持指針數(shù)組訪問模式,優(yōu)化了間接索引效率。盡管預(yù)取技術(shù)升級讓蘋果CPU在稀疏計算中更具競爭力,但CPU作為通用計算架構(gòu),天生存在固有開銷,無法比肩專為稀疏計算設(shè)計的專用架構(gòu)。
多家企業(yè)也在研發(fā)稀疏機器學(xué)習(xí)專用硬件,包括賽布拉斯的晶圓級引擎、Meta的訓(xùn)練推理加速器MTIA。
晶圓級引擎搭配專屬稀疏編程框架,可讓大語言模型實現(xiàn)高達70%的稀疏度,但僅支持權(quán)重稀疏,不支持對諸多應(yīng)用至關(guān)重要的激活值稀疏。
第二代MTIA宣稱稀疏計算性能較初代提升6倍,但公開資料僅證實其支持矩陣乘法稀疏加速,暫不覆蓋向量、張量運算。
盡管矩陣乘法占據(jù)現(xiàn)代機器學(xué)習(xí)模型絕大部分算力耗時,但全流程稀疏支持必不可少。若運算環(huán)節(jié)部分稀疏、部分稠密,頻繁切換數(shù)據(jù)類型會額外增加開銷,理想狀態(tài)是全鏈路運算均適配稀疏架構(gòu)。
奧尼克斯(Onyx)專用加速架構(gòu)
斯坦福團隊摒棄這種折中方案,研發(fā)出硬件加速器Onyx,從底層原生適配結(jié)構(gòu)化與非結(jié)構(gòu)化稀疏計算。它是首款同時可編程支持稀疏與稠密雙模式計算的加速器,可高效加速兩類場景下的核心運算。
想要理解Onyx,首先要了解粗粒度可重構(gòu)陣列(CGRA),以及它與CPU、現(xiàn)場可編程門陣列(FPGA)的差異。
CPU、CGRA、FPGA代表著算力效率與架構(gòu)靈活性的三重取舍:
CPU單個邏輯單元功能固定,專用任務(wù)運算效率極高;
FPGA每一個比特位均可自由配置,靈活性拉滿,但算力效率極低;
CGRA的設(shè)計目標(biāo),是兼顧FPGA的靈活性與CPU的運算效率。
CGRA由高效可配置單元(內(nèi)存、計算單元為主)組成,面向特定應(yīng)用領(lǐng)域定制優(yōu)化。核心優(yōu)勢在于:開發(fā)者可對CGRA架構(gòu)進行高層級重構(gòu),實現(xiàn)效率優(yōu)于FPGA、靈活性強于CPU的雙重特性。

奧尼克斯(Onyx)芯片基于粗粒度可重構(gòu)陣列(CGRA)架構(gòu)打造,據(jù)我們所知,它是業(yè)內(nèi)首款同時支持稀疏計算與稠密計算的芯片。圖片來源:Olivia Hsu
Onyx由靈活且可編程的處理單元(PE)陣列與存儲單元(MEM)陣列構(gòu)成。存儲單元負(fù)責(zé)存放壓縮矩陣及其他格式數(shù)據(jù);處理單元則直接對壓縮矩陣進行運算,剔除所有冗余、無效的計算步驟。
Onyx編譯器負(fù)責(zé)將軟件指令轉(zhuǎn)換為CGRA架構(gòu)配置。首先,輸入運算表達式(例如稀疏向量乘法)會被轉(zhuǎn)化為由抽象存儲節(jié)點和計算節(jié)點組成的運算圖。以稀疏向量乘法為例:包含輸入向量與輸出向量對應(yīng)的存儲節(jié)點、用于匹配非零元素交集的計算節(jié)點,以及執(zhí)行乘法運算的計算節(jié)點。
編譯器會完成兩項核心工作:一是將抽象存儲節(jié)點、計算節(jié)點映射到CGRA硬件的存儲單元與處理單元上;二是規(guī)劃節(jié)點間的數(shù)據(jù)通路,實現(xiàn)單元之間的數(shù)據(jù)傳輸。最后,編譯器生成所需指令集,完成對CGRA的功能配置。
得益于可編程特性,工程師可將各類運算任務(wù)部署到這款加速器上,既包括向量逐元素相乘等基礎(chǔ)運算,也包含矩陣–向量乘法、矩陣–矩陣乘法等人工智能核心運算。
研究團隊采用能量延遲積(EDP)指標(biāo)評估硬件能效提升,該指標(biāo)為能耗與運算耗時的乘積,可綜合衡量速度與能耗的權(quán)衡關(guān)系。單純降低能耗會導(dǎo)致設(shè)備運算速度極慢,而一味追求速度則會造成芯片面積與功耗飆升。
實測數(shù)據(jù)顯示,對比搭載專用稀疏計算庫的12核英特爾至強CPU,Onyx的能量延遲積性能最高可達后者的565倍。
Onyx也可通過配置,像GPU、TPU一樣為常規(guī)稠密計算任務(wù)加速:面對稀疏計算時,啟用稀疏運算原語;面對稠密計算時,則重構(gòu)硬件配置以挖掘并行計算能力,工作模式與GPU類似。該架構(gòu)向著單芯片統(tǒng)一加速稀疏與稠密計算邁出了關(guān)鍵一步。
同樣重要的是,Onyx也推動了算法層面的全新思考。稀疏加速硬件不僅能提升AI的性能與能效,還能助力科研人員和工程師探索全新算法,有望進一步大幅革新人工智能技術(shù)。
稀疏計算的未來展望
團隊已著手研發(fā)基于Onyx架構(gòu)的下一代芯片。機器學(xué)習(xí)模型除矩陣乘法外,還包含非線性層、歸一化、Softmax函數(shù)等大量運算,下一代加速器及配套編譯器將全面兼容這類全品類運算。
鑒于稀疏機器學(xué)習(xí)模型往往同時包含稀疏層與稠密層,團隊正優(yōu)化芯片內(nèi)部稠密與稀疏加速架構(gòu)的深度融合,實現(xiàn)不同數(shù)據(jù)格式之間的快速轉(zhuǎn)換。同時,研究更高效的稀疏數(shù)據(jù)拆分方案,突破內(nèi)存容量限制,支持多顆稀疏加速器芯片協(xié)同運算。
此外,團隊正在搭建加速器性能預(yù)測系統(tǒng),為面向稀疏AI的硬件設(shè)計提供優(yōu)化依據(jù)。長遠(yuǎn)來看,我們關(guān)注兩大方向:一是高稀疏度能否在更多AI模型類型中普及;二是稀疏加速器能否實現(xiàn)大規(guī)模產(chǎn)業(yè)落地。
研發(fā)適配非結(jié)構(gòu)化稀疏、極致利用模型零值的專用硬件,僅僅是開端。有了這類硬件支撐,AI科研與工程人員能夠以全新思路挖掘稀疏性價值,探索創(chuàng)新模型與算法。在AI運行開銷、使用成本及環(huán)境負(fù)擔(dān)持續(xù)攀升的當(dāng)下,稀疏計算已成為極具關(guān)鍵價值的核心研究方向。











評論