近年來(lái),人工智能應(yīng)用正經(jīng)歷一輪快速的發(fā)展與普及,而以ChatGPT等先進(jìn)的大模型技術(shù)在此過(guò)程中起到了關(guān)鍵作用。這些模型對(duì)計(jì)算能力的需求不斷攀升,催生了AI芯片設(shè)計(jì)的不斷革新,進(jìn)入了大算力時(shí)代。
目前,主流AI芯片的架構(gòu)仍然沿用了傳統(tǒng)的馮·諾依曼模型,這一設(shè)計(jì)將計(jì)算單元與數(shù)據(jù)存儲(chǔ)分離。在這種架構(gòu)下,處理器需要從內(nèi)存中讀取數(shù)據(jù),執(zhí)行計(jì)算任務(wù),然后將結(jié)果寫(xiě)回內(nèi)存。盡管AI芯片的算力在不斷提升,但僅僅擁有強(qiáng)大的數(shù)據(jù)計(jì)算能力并不足夠。當(dāng)數(shù)據(jù)傳輸速度無(wú)法跟上計(jì)算速度時(shí),數(shù)據(jù)傳輸時(shí)間將遠(yuǎn)超過(guò)計(jì)算時(shí)間。
以Transformer架構(gòu)為基礎(chǔ)的AI大模型導(dǎo)致了模型參數(shù)量激增,短短兩年間模型大小擴(kuò)大了驚人的410倍,運(yùn)算量更是激增了高達(dá)750倍。盡管硬件的峰值計(jì)算能力在過(guò)去20年中提升了驚人的60,000倍,但DRAM帶寬的增長(zhǎng)卻相對(duì)滯后,僅提高了100倍。計(jì)算能力與帶寬能力之間的巨大差距導(dǎo)致了內(nèi)存容量和數(shù)據(jù)傳輸速度難以跟上AI硬件的計(jì)算速度,這已成為限制AI芯片性能發(fā)揮的主要瓶頸,通常被稱(chēng)為“內(nèi)存墻”問(wèn)題。
內(nèi)存墻的應(yīng)對(duì)方法
針對(duì)內(nèi)存墻問(wèn)題,研究人員正積極探索多種解決方案,主要可分為以下三個(gè)研究方向:
1. 算法優(yōu)化:重新審視網(wǎng)絡(luò)模型設(shè)計(jì),致力于優(yōu)化算法實(shí)現(xiàn),以減少對(duì)高速數(shù)據(jù)傳輸?shù)囊蕾嚒_@一方向旨在從根本上降低數(shù)據(jù)傳輸需求,提升算法效率,從而打破內(nèi)存墻的限制。
2. 模型壓縮:通過(guò)降低模型精度(如量化)或去除冗余參數(shù)(如剪枝)來(lái)壓縮推理模型。這種方法可以顯著減少模型大小,降低內(nèi)存占用,從而減輕內(nèi)存墻帶來(lái)的壓力。
3. AI芯片架構(gòu)設(shè)計(jì):設(shè)計(jì)高效的AI芯片架構(gòu),以優(yōu)化數(shù)據(jù)流和計(jì)算流程。通過(guò)硬件層面的創(chuàng)新,減少數(shù)據(jù)搬運(yùn)和計(jì)算量,提高整體系統(tǒng)效率。
算法的優(yōu)化與模型的壓縮是軟件研究人員追求的重要方向。在AI芯片架構(gòu)設(shè)計(jì)領(lǐng)域, 各大AI芯片公司也開(kāi)始優(yōu)化芯片架構(gòu), 以實(shí)現(xiàn)更為高效的內(nèi)存?zhèn)鬏?。安霸同樣提出了其?zhuān)有的解決方案。
CV3系列芯片如何打破內(nèi)存墻
2015年, 安霸收購(gòu)了自動(dòng)駕駛算法公司VisLab, 開(kāi)始研究自動(dòng)駕駛需要怎樣的芯片。 2017年,安霸推出第一代CVflow架構(gòu)芯片CV1, 用于加速AI視覺(jué)計(jì)算。2018年開(kāi)始逐步推出并量產(chǎn)專(zhuān)門(mén)針對(duì)車(chē)載輔助駕駛市場(chǎng)的第二代CVflow架構(gòu)芯片CV2系列。 2019年,自動(dòng)駕駛技術(shù)的突飛猛進(jìn),使得汽車(chē)行業(yè)對(duì)芯片算力的需求急劇增長(zhǎng),標(biāo)志著大算力時(shí)代的來(lái)臨。在這樣的技術(shù)背景下,安霸前瞻性地啟動(dòng)了CV3系列大算力芯片的設(shè)計(jì)工作,旨在為自動(dòng)駕駛場(chǎng)景提供強(qiáng)大的計(jì)算能力。經(jīng)過(guò)三年的精心打磨與架構(gòu)設(shè)計(jì), 2022年, CV3架構(gòu)的第一顆芯片CV3-HD成功點(diǎn)亮, 其最高算力達(dá)到了1500 eTOPS(等效算力),而功耗僅為50瓦,展示出了卓越的計(jì)算性能與能耗比。 2023年, 首個(gè)面向量產(chǎn)智駕域控制器的芯片CV3-AD685順利點(diǎn)亮并開(kāi)始提供樣片, 其算力達(dá)到750 eTOPS(等效算力)。2024年1月,安霸再次推出了CV3-AD 汽車(chē)智駕域控制器芯片的最新成員:CV3-AD635 和 CV3-AD655。至此,CV3-AD 系列芯片已經(jīng)實(shí)現(xiàn)了從主流到中、高端乘用車(chē)市場(chǎng)高級(jí)輔助駕駛與自動(dòng)駕駛解決方案的完整覆蓋。
在深入洞察自動(dòng)駕駛場(chǎng)景的基礎(chǔ)上, 安霸的CV3系列芯片在設(shè)計(jì)之初就敏銳地預(yù)見(jiàn)到大算力時(shí)代所帶來(lái)內(nèi)存帶寬挑戰(zhàn)。為了突破內(nèi)存瓶頸,CV3在內(nèi)存控制器上采用了先進(jìn)的LPDDR5技術(shù),每位DRAM的數(shù)據(jù)傳輸速率高達(dá)8Gb/s。針對(duì)不同應(yīng)用場(chǎng)景的算力需求,設(shè)計(jì)了64位、128位和256位的內(nèi)存位寬,從而確保在各種計(jì)算場(chǎng)景下都能提供足夠的數(shù)據(jù)傳輸帶寬。
在AI加速器的架構(gòu)設(shè)計(jì)上,CV3系列芯片推出了安霸特有的第三代CVflow架構(gòu)。這一架構(gòu)賦予了CV3卓越的算力性能和優(yōu)異的能效比。如圖1所示,CVflow的總體架構(gòu)展示了其數(shù)據(jù)流和計(jì)算單元的組織結(jié)構(gòu)。
圖1 CVflow架構(gòu)圖
具體來(lái)說(shuō), CV3的高算力與低功耗得益于以下幾個(gè)精心設(shè)計(jì)的架構(gòu)特點(diǎn)。
- Partial buffer架構(gòu)
盡管許多AI芯片采用增大緩存的方式來(lái)減少DRAM訪問(wèn),但緩存系統(tǒng)存在幾個(gè)顯著問(wèn)題:
1. 設(shè)計(jì)復(fù)雜性與成本:緩存系統(tǒng)的設(shè)計(jì)相對(duì)復(fù)雜,相較于同等容量的SRAM,它需要占據(jù)更大的芯片面積。這不僅增加了芯片的成本,還可能導(dǎo)致功耗上升。
2. 軟件優(yōu)化需求:為了充分利用緩存系統(tǒng),軟件算法需要針對(duì)其進(jìn)行專(zhuān)門(mén)的優(yōu)化,以提高緩存命中率。這增加了軟件開(kāi)發(fā)的復(fù)雜性和工作量。
3. 算力浪費(fèi):緩存系統(tǒng)通常遵循“使用時(shí)才加載”的策略,這導(dǎo)致計(jì)算單元在等待數(shù)據(jù)加載完成期間無(wú)法進(jìn)行有效計(jì)算,從而造成算力的浪費(fèi)。算力的有效利用率在很大程度上依賴于緩存命中率。
4. 性能不穩(wěn)定:在復(fù)雜的多核多線程環(huán)境中,緩存命中率與系統(tǒng)的負(fù)載密切相關(guān)。隨著負(fù)載的變化,緩存命中率可能會(huì)受到嚴(yán)重影響,導(dǎo)致系統(tǒng)性能的不穩(wěn)定。
與傳統(tǒng)的緩存系統(tǒng)不同,CVflow架構(gòu)采取了一種創(chuàng)新的策略,將片上內(nèi)存(On-chip Memory)分割成多個(gè)不同大小的內(nèi)存塊,這些內(nèi)存塊被稱(chēng)為Partial Buffers(PB)。這些PB的主要用途是存儲(chǔ)計(jì)算過(guò)程中的中間結(jié)果,從而顯著減少對(duì)外部DRAM的訪問(wèn)次數(shù)。Partial Buffers所帶來(lái)的優(yōu)勢(shì)如下:
- 簡(jiǎn)化的硬件設(shè)計(jì)與成本優(yōu)化:PB的設(shè)計(jì)相較于傳統(tǒng)緩存更為簡(jiǎn)單,這意味著在硬件實(shí)現(xiàn)上,CVflow架構(gòu)能夠節(jié)省更多的芯片面積,進(jìn)而降低制造成本和功耗。
- 獨(dú)立的DMA通道:為了確保數(shù)據(jù)的高效傳輸,CVflow架構(gòu)為Partial Buffers配置了獨(dú)立的DMA(Direct Memory Access)通道。這使得數(shù)據(jù)能夠從DRAM中快速、無(wú)縫地傳輸?shù)絇B中,從而避免了數(shù)據(jù)傳輸?shù)钠款i。
- 訪存效率高: 一次性從DRAM和PB之間傳輸大塊數(shù)據(jù)的策略, 替代了傳統(tǒng)的多次小塊數(shù)據(jù)傳輸?shù)姆绞? 減少了數(shù)據(jù)在內(nèi)存和向量處理器(NVP)之間的搬運(yùn)數(shù)次,降低了數(shù)據(jù)傳輸?shù)难舆t和開(kāi)銷(xiāo)
- 與計(jì)算單元并行處理:PB在CVflow內(nèi)部被組織成一個(gè)環(huán)形結(jié)構(gòu)。這意味著當(dāng)一個(gè)PB的數(shù)據(jù)被使用后,CVflow的硬件調(diào)度器會(huì)智能地加載下一個(gè)所需的數(shù)據(jù)塊到空閑的PB中。這種設(shè)計(jì)允許數(shù)據(jù)預(yù)加載與計(jì)算單元的工作并行進(jìn)行,從而消除了數(shù)據(jù)等待時(shí)間,提高了整體計(jì)算效率。
- 簡(jiǎn)化的內(nèi)存管理:與需要手動(dòng)優(yōu)化和管理的傳統(tǒng)緩存系統(tǒng)不同,CVflow轉(zhuǎn)換工具能夠自動(dòng)、高效地管理PB。這意味著開(kāi)發(fā)人員無(wú)需花費(fèi)額外的時(shí)間和精力來(lái)管理片上內(nèi)存,從而可以更加專(zhuān)注于算法和應(yīng)用的開(kāi)發(fā)。
以圖2所示的卷積神經(jīng)網(wǎng)絡(luò)為例,在傳統(tǒng)的計(jì)算架構(gòu)中,該網(wǎng)絡(luò)通常需要12次的DRAM訪問(wèn)來(lái)完成一次完整的計(jì)算過(guò)程。然而,在CVflow架構(gòu)下,通過(guò)利用高效的Partial Buffers(PB)設(shè)計(jì),3到12過(guò)程的內(nèi)存訪問(wèn)被低延遲的PB所取代。這意味著,中間計(jì)算結(jié)果可以直接在PB中完成,而無(wú)需頻繁地訪問(wèn)外部的DRAM。因此,整個(gè)計(jì)算過(guò)程中,只需要在輸入和輸出階段各進(jìn)行一次DRAM訪問(wèn),從而減少了10次的DRAM訪問(wèn)。這種優(yōu)化不僅顯著降低了計(jì)算過(guò)程中的延遲,還因?yàn)闇p少了外部DRAM的訪問(wèn)次數(shù),從而降低了整體的功耗。
圖2 CVflow卷積神經(jīng)網(wǎng)絡(luò)計(jì)算示例
- 并行的流式架構(gòu)
CVflow工具根據(jù)芯片的片上內(nèi)存大小,智能地將大型神經(jīng)網(wǎng)絡(luò)切割成多個(gè)連續(xù)的、緊湊的計(jì)算單元,這些單元被組織成有向無(wú)環(huán)圖(DAG)的形式。這種獨(dú)特的架構(gòu)帶來(lái)了多重優(yōu)勢(shì):
- 高效內(nèi)存利用:每個(gè)DAG的中間計(jì)算步驟都在片上內(nèi)存內(nèi)完成,從而避免了頻繁訪問(wèn)外部DRAM的需求。這不僅減少了數(shù)據(jù)傳輸?shù)难舆t,還提高了內(nèi)存的使用效率。
- 快速啟動(dòng)與并行處理:網(wǎng)絡(luò)加載時(shí)間大大縮短,因?yàn)橹恍杓虞d一部分網(wǎng)絡(luò)即可開(kāi)始計(jì)算。同時(shí),在計(jì)算過(guò)程中,CVflow能夠并行加載網(wǎng)絡(luò)的后續(xù)部分,實(shí)現(xiàn)了計(jì)算與數(shù)據(jù)加載的并行化,進(jìn)一步提升了整體性能。
- 穩(wěn)健的性能表現(xiàn):由于大大減少了對(duì)DRAM的訪問(wèn)次數(shù),并且實(shí)現(xiàn)了計(jì)算與數(shù)據(jù)加載的并行處理,CVflow架構(gòu)在面臨其他芯片模塊(如CPU、GPU、ISP)同時(shí)高負(fù)載運(yùn)行的場(chǎng)景時(shí),仍能保持穩(wěn)定的性能表現(xiàn),從而確保了在各種復(fù)雜環(huán)境下的可靠性。
圖3 AI模型的DAG切割示意圖
- 硬件實(shí)現(xiàn)的算子
與GPU通過(guò)簡(jiǎn)單地堆砌計(jì)算單元來(lái)提升算力的方式不同,CVflow架構(gòu)致力于通過(guò)實(shí)現(xiàn)高效的硬件算子來(lái)加速計(jì)算過(guò)程。CV3的CVflow架構(gòu),基于對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)的前瞻性研究,實(shí)現(xiàn)了超過(guò)100種常用算子的硬件化。這種設(shè)計(jì)策略使得CVflow在晶體管數(shù)量更少的情況下實(shí)現(xiàn)了出色的算力。
以8x8的矩陣乘法為例,傳統(tǒng)的計(jì)算方式需要512個(gè)乘加(MAC)操作,但在CVflow架構(gòu)中,其特有的矩陣乘法算子能夠在單個(gè)計(jì)算指令周期內(nèi)完成。此外,CVflow還支持多種融合算子的應(yīng)用。例如,對(duì)于常見(jiàn)的2D/3D卷積與池化操作,CVflow的轉(zhuǎn)換工具能夠自動(dòng)將這兩個(gè)操作融合為一個(gè)硬件算子操作,從而有效減少了數(shù)據(jù)吞吐量和計(jì)算周期,進(jìn)一步提升了整體性能。
- 非結(jié)構(gòu)化的稀疏加速
通過(guò)將AI模型稀疏化,去除冗余參數(shù), CVflow架構(gòu)帶來(lái)了顯著的性能提升, 具體而言:
- CVflow工具能夠自動(dòng)壓縮網(wǎng)絡(luò)參數(shù),這減少了芯片端加載AI模型所需的時(shí)間。
- 芯片端的CVflow硬件調(diào)度器具備智能分析能力,可以自動(dòng)識(shí)別并跳過(guò)不必要的計(jì)算,從而顯著降低了計(jì)算量。
- 無(wú)需對(duì)AI模型結(jié)構(gòu)進(jìn)行調(diào)整, 從而實(shí)現(xiàn)了算法的一次性開(kāi)發(fā)和無(wú)縫部署。這種特性簡(jiǎn)化了模型部署過(guò)程,使得模型開(kāi)發(fā)人員無(wú)需擔(dān)心模型結(jié)構(gòu)的兼容性問(wèn)題,可以專(zhuān)注于算法的優(yōu)化和創(chuàng)新。
- CVflow工具鏈提供了多種稀疏策略來(lái)保證AI模型稀疏后的精度。
以7x7卷積為例,未進(jìn)行稀疏化之前,每次卷積操作都需要用到全部的49個(gè)參數(shù),并且會(huì)執(zhí)行49次乘加(MAC)操作。然而,當(dāng)實(shí)施了80%的稀疏化后,情況發(fā)生了顯著變化:參數(shù)量減少了60%,這意味著存儲(chǔ)和傳輸?shù)男蚀蟠筇嵘挥?jì)算量減少了80%,從而極大地提高了卷積操作的效率。這種CVflow獨(dú)有的稀疏化技術(shù)對(duì)于優(yōu)化AI模型的性能和資源消耗至關(guān)重要。
圖4 CVflow 網(wǎng)絡(luò)稀疏化示例
- 支持多種量化格式
CV3的CVflow架構(gòu)具有強(qiáng)大的數(shù)據(jù)格式支持能力, 可以支持 4, 8, 16, 32的定點(diǎn)數(shù)據(jù)格式和16, 32位的浮點(diǎn)數(shù)據(jù)格式。CVflow工具能夠針對(duì)每一層網(wǎng)絡(luò)參數(shù)和輸入輸出數(shù)據(jù)進(jìn)行精確的動(dòng)態(tài)范圍分析,從而確定最優(yōu)的量化精度,實(shí)現(xiàn)高效的混合精度部署。這一特性使得CV3在處理不同數(shù)據(jù)類(lèi)型和規(guī)模的任務(wù)時(shí),能夠靈活適應(yīng)并發(fā)揮最佳性能。
2024年國(guó)際消費(fèi)電子展(CES)期間,安霸展出了基于CV3平臺(tái)的自動(dòng)駕駛研發(fā)車(chē)輛, 并為受邀客戶提供試駕體驗(yàn)。此次展出進(jìn)一步驗(yàn)證了CV3 CVflow架構(gòu)芯片的強(qiáng)大實(shí)力, 即便面對(duì)自動(dòng)駕駛場(chǎng)景的大算力、高帶寬的復(fù)雜計(jì)算需求,也能游刃有余地應(yīng)對(duì)。
2023年, 特斯拉實(shí)現(xiàn)了首個(gè)端到端大模型自動(dòng)駕駛系統(tǒng), 將原本龐大的30萬(wàn)行的人工規(guī)則算法精簡(jiǎn)至僅2000行代碼。隨著駕駛數(shù)據(jù)的不斷積累,自動(dòng)駕駛技術(shù)正朝著端到端大模型的方向發(fā)展。 面對(duì)未來(lái)大模型自動(dòng)駕駛時(shí)代的算力與內(nèi)存墻挑戰(zhàn), 專(zhuān)為自動(dòng)駕駛設(shè)計(jì)的CV3-AD系列芯片憑借第三代CVflow架構(gòu),以芯片架構(gòu)創(chuàng)新的方式,突破大算力芯片的內(nèi)存墻的限制,為大模型算法提供了強(qiáng)大的硬件支持, 助力高級(jí)輔助駕駛以及自動(dòng)駕駛技術(shù)的普及與發(fā)展。