設(shè)計一款自動駕駛芯片挑戰(zhàn)Mobileye和英偉達是不是有點不自量力?
未必,目前自動駕駛系統(tǒng)芯片即SoC設(shè)計大都是搭積木的方式,各種第三方IP就是積木,只要搭配得當(dāng),還是有可能挑戰(zhàn)Mobileye和英偉達的,關(guān)鍵不在于技術(shù),而在于有持續(xù)不斷的巨量資金注入,這是一場馬拉松比賽,堅持到最后就是勝利。
Mobileye的優(yōu)勢是軟硬一體,開發(fā)周期最短,開發(fā)成本最低,技術(shù)成熟穩(wěn)定,缺點是產(chǎn)品同質(zhì)化明顯,無法凸顯整車廠的特色。MIPS指令集導(dǎo)致其系統(tǒng)封閉,升級能力差,無法適應(yīng)快速演進的傳感器技術(shù),特別是激光雷達的大量出現(xiàn)。
英偉達的優(yōu)勢是AI算力極其強大,留有足夠的算力冗余,能適應(yīng)各種算法,也能滿足未來3-6年的算法演變。GPU的浮點算力也很強大,算力冗余足夠,視覺感知能力強。英偉達提供完整的軟件棧,系統(tǒng)也有點封閉,但算力很強大,整車廠還是能做出特色。缺點是GPU占裸晶面積大,硬件成本居高不下。
實際自動駕駛雷聲大雨點小,在2017和2018年,眾多科技類企業(yè)或整車廠都信誓旦旦要在2020年或2021年推出L4級車,沒有方向盤和剎車踏板,最終都不了了之。2021年則是很多廠家推出號稱L3/L4的量產(chǎn)車,但年銷量都很難上千,究其原因主要是性價比太低,所謂L3/L4就是加強版的自適應(yīng)巡航或堵車時的自動跟車,但代價卻很高。目前L3/L4的技術(shù)條件遠未成熟,未達到量產(chǎn)上路的地步,比如感知領(lǐng)域,突然出現(xiàn)的靜止目標,非標障礙物,嬰兒和小孩低矮目標探測與識別,光強度的迅速變化等挑戰(zhàn),以及決策領(lǐng)域的允許加塞或不允許等。此外,基礎(chǔ)條件也不具備,如高精度地圖和定位,紅綠燈的V2X等。
未來10年內(nèi),L2+還是市場主流,至少占到90%的市場。高AI算力在L2+領(lǐng)域沒有用武之地,所謂AI算力,只是卷積加速器,只是視覺分類的一個功能。遇上突然出現(xiàn)的靜止目標、非標障礙物、嬰兒和小孩低矮目標,即使再高的AI算力,還是要出事故,但硬件廠家的推波助瀾,讓消費者誤以為高算力就是高等級自動駕駛。
要提高安全性不是提高AI算力就能做到的,激光雷達或立體雙目能提供原生3D感知的傳感器應(yīng)用才能提高安全性,同時也要基于傳統(tǒng)可解釋可預(yù)測算法才能提高安全性。深度學(xué)習(xí)是個黑盒子,無法預(yù)測結(jié)果,無法解釋,無法提高安全性。立體雙目技術(shù)門檻太高,只有奔馳豐田大廠才玩得轉(zhuǎn),這是內(nèi)部培養(yǎng)了十幾年人才的成果。大部分企業(yè)都只能選擇激光雷達。
激光雷達對SoC運算資源的需求CPU就可以完成,避免使用高成本的GPU。
圖片來源:互聯(lián)網(wǎng)
LiDAR通過激光反射可以測出與物體之間的距離distance,因為激光的垂直角度是固定的,記做a,這里我們可以直接求出z軸坐標為sin(a)*distance。由cos(a)*distance我們可以得到distance在xy平面的投影,記做xy_dist。LiDAR在記錄反射點距離的同時也會記錄下當(dāng)前LiDAR轉(zhuǎn)動的水平角度b,根據(jù)簡單的集合轉(zhuǎn)換,可以得到該點的x軸坐標和y軸坐標分別為cos(b)*xy_dist和sin(b)*xy_dist。
Velodyne VLP-16的數(shù)據(jù)包
圖片來源:互聯(lián)網(wǎng)
激光雷達的數(shù)據(jù)處理主要是兩部分,第一部分是坐標變換,包括極坐標到直角坐標XYZ之間的變換,激光雷達坐標系與車輛坐標系的變換,這其中主要是三角函數(shù)變換。第二部分是點云配準。去噪音等預(yù)處理可以看做點云配準的一部分工作。
早期乘法運算和浮點運算資源奇缺,因此J. Volder于1959年提出了一種快速算法,稱之為CORDIC(COordinateRotation DIgital Computer) 坐標旋轉(zhuǎn)數(shù)字計算算法,這個算法只利用移位和加減運算,就能計算常用三角函數(shù)值,如Sin,Cos,Sinh,Cosh等函數(shù)。J. Walther于1974年在這種算法的基礎(chǔ)上進一步改進,使其可以計算出多種超越函數(shù),進一步擴展了Cordic 算法的應(yīng)用。因為Cordic 算法只用了移位和加法,很容易用CPU來實現(xiàn)。Cordic算法首先用于導(dǎo)航系統(tǒng),使得矢量的旋轉(zhuǎn)和定向運算不需要做查三角函數(shù)表、乘法、開方及反三角函數(shù)等復(fù)雜運算。
CORDIC用不斷的旋轉(zhuǎn)求出對應(yīng)的正弦余弦值,是一種近似求解法。旋轉(zhuǎn)的角度很講求,每次旋轉(zhuǎn)的角度必須使得正切值近似等于 1/(2^N)。旋轉(zhuǎn)的目的是讓Y軸趨近于0。把每次旋轉(zhuǎn)的角度累加,即得到旋轉(zhuǎn)的角度和即為正切值。比如Y軸旋轉(zhuǎn)45度,則值減小1/2,再旋轉(zhuǎn)26.56505°,再減少1/4,再旋轉(zhuǎn)角度14.03624º,再減少1/8,依次減少1/16,1/32......,最后Y軸的值無限小,趨近于0 。要避免浮點運算也很簡單,我們用256表示1度(即8比特)。這樣的話就可以精確到1/256=0.00390625度了,這對于大多數(shù)的情況都是足夠精確的了。256表示1度,那么45度就是 45*256 = 115200。其他的度數(shù)以此類推。只取整數(shù)運算,避免了浮點運算。
第二部分運算量比較大的,也是程序員們比較關(guān)注的,一般三角函數(shù)計算坐標變換都是激光雷達廠家提供SDK的。
說到點云配準,就繞不開PCL庫。PCL庫源自ROS,即機器人操作系統(tǒng),機器人系統(tǒng)經(jīng)常用到激光雷達3D影像,為了減少重復(fù)開發(fā),打通各個平臺,ROS推出了PCL庫。PCL(Point Cloud Library)是在吸收了前人點云相關(guān)研究基礎(chǔ)上建立起來的大型跨平臺開源C++編程庫,它實現(xiàn)了大量點云相關(guān)的通用算法和高效數(shù)據(jù)結(jié)構(gòu),涉及到點云獲取、濾波、分割、配準、檢索、特征提取、識別、追蹤、曲面重建、可視化等。支持多種操作系統(tǒng)平臺,可在Windows、Linux、Android、MacOSX、部分嵌入式實時系統(tǒng)上運行。如果說OpenCV是2D信息獲取與處理的結(jié)晶,那么PCL就在3D信息獲取與處理上具有同等地位,PCL是BSD授權(quán)方式,可以免費進行商業(yè)和學(xué)術(shù)應(yīng)用。其背后主要是慕尼黑大學(xué)(TUM - Technische Universität München)和斯坦福大學(xué)(Stanford University)。工業(yè)領(lǐng)域除了所有激光雷達廠家都支持PCL庫外,豐田和本田也是PCL庫的贊助者。
PCL庫建立于2013年,那個時代,CPU是最主要的運算資源,因此PCL庫針對CPU做了優(yōu)化,PCL中的底層數(shù)據(jù)結(jié)構(gòu)大量使用了SSE(可以看作是SIMID)優(yōu)化。其大部分數(shù)學(xué)運算的實現(xiàn)是基于Eigen(一個開源的C++線性代數(shù)庫)。此外,PCL還提供了對OpenMP和英特爾線程構(gòu)建模塊(TBB)庫的支持,以實現(xiàn)多核并行化??焖僮罱徦阉魉惴ǖ闹鞲墒怯蒄LANN提供(一個執(zhí)行快速近似最近鄰搜索的庫)。PCL中的所有模塊和算法均通過使用Boost共享指針的傳遞數(shù)據(jù),因此避免重新復(fù)制系統(tǒng)中已經(jīng)存在的數(shù)據(jù)。
點云配準最常用的兩種方法一個是迭代最近點算法ICP (Iterative Closest Point),KD樹可看做是ICP的高維版,一個是正態(tài)分布變換NDT (Normal Distribution Transform)。這兩種算法自然都在PCL庫里。英特爾則在2020年推出類似PCL庫的Open3D開源庫,不用說,自然也有對CPU的優(yōu)化。
現(xiàn)在讓我們再回到自動駕駛芯片,要應(yīng)對不斷增加分辨率的激光雷達,就要增強CPU算力,CPU的裸晶面積一般遠小于GPU,這就意味著CPU性價比更高。考慮到芯片的設(shè)計周期與應(yīng)用量產(chǎn)周期有2-3年,因此性能要盡可能地強大,同時為了保持足夠的開放性,ARM架構(gòu)是必須使用的。
圖片來源:互聯(lián)網(wǎng)
ARM在2019年3月針對服務(wù)器HPC市場推出Neoverse平臺,按照計劃最初是Ares,即希臘神話里的戰(zhàn)神,2020年是Zeus,即希臘神話中的宙斯,2022年是Poseidon。V1是ARM目前算力最強的CPU架構(gòu)。
圖片來源:互聯(lián)網(wǎng)
考慮到臺積電的產(chǎn)能緊張,價格高昂,即便是特斯拉這樣的知名客戶,也被臺積電拒之門外,因為特斯拉的量太低了,臺積電的資源都給大客戶了,小客戶的排期遙遙無期。從性價比和供應(yīng)鏈的角度,三星是唯一選擇,三星產(chǎn)能充足,價格也遠低于臺積電,缺點是5納米工藝不夠成熟,因此只能選擇7納米的V1。
為什么說V1是最強的?
影響CPU算力最關(guān)鍵的參數(shù)是Decode Wide譯碼寬度,譯碼寬度可簡單等同于每周期指令數(shù)量即IPC,即每個周期完成多少個指令。
圖片來源:互聯(lián)網(wǎng)
譯碼寬度的增加是非常困難的,不是想多少就多少的,簡單來說每增加一位寬度,系統(tǒng)復(fù)雜度會提高15%左右,裸晶面積也就是成本會增加15-20%左右。如果簡單地增加譯碼寬度,那么成本也會增加,廠家就缺乏更新的動力,所以ARM的做法是配合臺積電和三星的先進工藝,利用晶體管密度的提升來減少裸晶面積降低成本,因此ARM的每一次譯碼寬度升級都需要先進制造工藝的配合,否則成本增加比較多。同時ARM也從商業(yè)角度考慮,每年小升級一次,年年都有提升空間。8位寬度是目前的極限,蘋果一次到位使用8位寬度,缺點是必須使用臺積電最先進的制造工藝。
此外,RISC和CISC還有區(qū)別,CISC增加寬度更難,但CISC的1位寬度基本可頂RISC的1.2-1.5位。英特爾是有實力壓制蘋果的,就是制造工藝不如臺積電。CISC指令的長度不固定,RISC則是固定的。因為長度固定,可以分割為8個并行指令進入8個解碼器,但CISC就不能,它不知道指令的長度。因此CISC的分支預(yù)測器比RISC要復(fù)雜很多,當(dāng)然目前RISC也有長度可變的指令。遇到有些長指令,CISC可以一次完成,RISC因為長度固定,就像公交車站,一定要在某站停留一下,肯定不如CISC快。也就是說,RISC一定要跟指令集,操作系統(tǒng)做優(yōu)化,RISC是以軟件為核心,針對某些特定軟件做的硬件,而CISC相反,他以硬件為核心,針對所有類型的軟件開發(fā)的。
V1的寬度是可變的,最高8位
圖片來源:互聯(lián)網(wǎng)
ARM Neoverse V1的微架構(gòu)
圖片來源:互聯(lián)網(wǎng)
除了譯碼寬度,后端的分布和發(fā)射(Dispatch與Issue)寬度和ALU也要跟得上,否則前端很忙,后端很閑,也是沒用,通常提升方法是增加發(fā)射寬度。分布方面,ARM Cortex-A77是10位,V1是10位,蘋果M1的大核Firestorm據(jù)說是13位,三星貓鼬M4/M5是12位。不過V1的發(fā)射單元比較多,有15位。后端的運算單元ALU也比較多,有8個,4個整數(shù),4個浮點或SIMD。
圖片來源:互聯(lián)網(wǎng)
V1是針對HPC開發(fā)的,推薦32核以上配置,但車載肯定不能這樣做,功耗太高,12核V1足夠,算力基本上能與16核的ARM Cortex-A78AE相當(dāng),甚至還要更高。浮點運算也不弱。
圖片來源:互聯(lián)網(wǎng)
Neoverse V1的機器學(xué)習(xí)性能和浮點運算性能也很強。
圖片來源:互聯(lián)網(wǎng)
機器學(xué)習(xí)性能,V1是N1的4倍,浮點運算性能是N1的2倍,典型的N1是華為的鯤鵬系列服務(wù)器CPU,也就是華為稱之為泰山V110內(nèi)核。
ARM最近引入2代SVE,NEON指令集是ARM64架構(gòu)的單指令多數(shù)據(jù)流(SIMD)的標準實現(xiàn)。SVE(可擴展矢量指令Scalable Vector Extension)是針對高性能計算(HPC)和機器學(xué)習(xí)等領(lǐng)域開發(fā)的一套全新的矢量指令集,它是下一代SIMD指令集實現(xiàn),而不是NEON指令集的簡單擴展。
SVE指令集中有很多概念與NEON指令集類似,例如矢量、通道、數(shù)據(jù)元素等。SVE指令集也提出了一個全新的概念:可變矢量長度編程模型(VectorLength Agnostic,VLA)。
傳統(tǒng)的SIMD指令集采用固定大小的向量寄存器,例如NEON指令集采用固定的128位長度的矢量寄存器。而支持VLA編程模型的SVE指令集則支持可變長度的矢量寄存器。這樣允許芯片設(shè)計者根據(jù)負載和成本來選擇一個合適的矢量長度。SVE指令集的矢量寄存器的長度最小支持128位,最大可以支持2048位,以128位為增量。SVE設(shè)計確保同一個應(yīng)用程序可以在支持不同矢量長度的SVE指令機器上運行,而不需要重新編譯代碼,這是VLA編程模型的精髓。
SVE指令集是在A64指令集的基礎(chǔ)上新增的一組指令集,而SVE2是在ARMv9架構(gòu)上發(fā)布的,它是SVE指令集的一個超集和擴充。SVE指令集包含了幾百條指令,它們可以分成如下幾大類:加載存儲指令以及預(yù)取指令,向量移動指令,整數(shù)運算指令,位操作指令,浮點數(shù)運算指令,預(yù)測操作指令,數(shù)據(jù)元素操作指令。
簡單地說,針對8位精度,如果SVE用理想狀態(tài)下的2048位指令,那么相當(dāng)于同時256個核并行計算,如果是16位精度就是128核。如果處理器有12核,那么做深度學(xué)習(xí)時可近似為256*12=3072個核心運行,與GPU相差無幾。當(dāng)然如此寬的數(shù)據(jù)操作編譯器自動矢量化無能為力,為難開發(fā)者手動匯編也不好做。并且需要足夠的緩存和寄存器數(shù)量來配合,成本會暴增。不過256或512位還是問題不大,英特爾的AVX512指令就是如此。一般推理用的就是8位整數(shù)精度,512位就是近似64核。
簡單算一下,假設(shè)是512位寬,12核心,那么就是64*12=768個核心,運行頻率2GHz,理想狀態(tài)下就是768*2=1526GOPs的算力。
選擇CPU后就是選擇GPU。GPU實際上就是針對并行數(shù)據(jù)的浮點運算器,也就是針對計算機視覺的,激光雷達的大量使用有助于降低對視覺的依賴,而計算機視覺是最耗費浮點算力的,激光雷達的大量使用是未來可以確定的事實,加上GPU最耗費成本,且很難做得過英偉達,因此不需要太高。
選擇ARM的MALI G710,16核配置650MHz下可以獲得1174GFLOPS的算力。
G710可能是ARM最成功的GPU架構(gòu)。與英偉達桌面級GPU比,ARM的架構(gòu)差異比較大。ARM采用大核設(shè)計,一般寫為MALI G710 MPX或MCX,X代表核心數(shù),MALI的核心就是渲染核即Shader Core,可以近似于英偉達的SM流多處理器。渲染核里有執(zhí)行引擎,可以算是CPU領(lǐng)域的ALU。
MALI G710渲染核
圖片來源:互聯(lián)網(wǎng)
早期ARM是SIMD設(shè)計,近期變?yōu)镚PU常用的SIMT。G710的執(zhí)行引擎比G77翻倍,有兩個執(zhí)行引擎,每個執(zhí)行引擎包含兩個簇,執(zhí)行16位寬的線程,等于是64個ALU,G710支持7-16核設(shè)計,也就是最高1024個ALU。
MALIG710執(zhí)行引擎
圖片來源:互聯(lián)網(wǎng)
G710的執(zhí)行核,前端沒有透露具體信息,應(yīng)該和G77一樣,是64個warp或1024個線程。每個處理單元都有三個ALU:FMA(混合的乘積累加計算)和CVT(Convert)單元是16-wide,而SFU(特殊功能單元)是4-wide。每個FMA每周期可以做16次運算,運算數(shù)據(jù)精度為FP32,換成FP16就是32次,8位整數(shù)INT8就是64次,像英偉達的桌面級GPU,F(xiàn)P16和FP32是分開計算的,也就是說可以同時計算,但移動級的MALI不需要這樣設(shè)計。Convert單元處理基本整數(shù)操作和自然類型轉(zhuǎn)換操作,并充當(dāng)分支端口。
ARMMALI GPU CSF
圖片來源:互聯(lián)網(wǎng)
G710最大的變化,添加了CSF。G710首次把Mali的jobmanager換成了所謂的Command Stream Frontend。這個CSF負責(zé)處理調(diào)度和draw call,CSF這個模塊由CPU、HW和固件構(gòu)成。Arm表示,HW本身是全新設(shè)計的;而固件層的引入,能夠針對一些比較復(fù)雜的圖形負載提供更具彈性的性能,而且能夠減少驅(qū)動開銷、提升效率;對諸如Vulkan等API提供更簡捷的支持等。固件處理來自host的請求和通知,負責(zé)硬件資源調(diào)度,減少諸如protected mode進出的開銷,還能通過指令模擬來提供硬件原本不具備的特性。
ARM MALI系列GPU最被人詬病的就是draw call開銷太大,實際性能與理論性能差別很大,特別是玩3D游戲時,此時CPU和GPU都很費資源,CPU優(yōu)先處理內(nèi)部需求,對于GPU的draw call處理不夠及時,導(dǎo)致幀率下降。
接下來是AI加速器,計算機視覺依賴AI加速器,但激光雷達不需要太多AI加速。傳統(tǒng)AI加速器靠堆砌MAC數(shù)量,數(shù)量越多,理論算力越強,非常簡單粗暴,缺點是成本高,效率低。特別是效率低下,雖然理論算力數(shù)字非常漂亮,做到幾百TOPS很容易,但實際使用中,內(nèi)存墻的瓶頸,算力會大打折扣,還有算法模型的適配性,有時候只有理論算力的10%,而車載芯片受限于成本,又不可能使用高帶寬HBM內(nèi)存。
典型的AI加速器其核心是基于流水線的指令并行,即當(dāng)前處理單元的結(jié)果不寫回緩存,而直接作為下一級處理單元的輸入,取代了當(dāng)前處理單元結(jié)果回寫和下一處理單元數(shù)據(jù)讀取的存儲器訪問。這就是所謂脈動陣列,基本上AI加速器都是如此。這實際上兩維的超寬SIMD,一個橫向,一個縱向,2個維度最大化復(fù)用數(shù)據(jù),從上傳下PE(計算單元)間復(fù)用權(quán)重和partial sum,從左到左傳PE間復(fù)用輸入特征圖。從相鄰PE拿數(shù)據(jù),前后門傳一下就行,不需要去共享大型SRAM取數(shù)據(jù),省掉大量尋址邏輯,數(shù)據(jù)能耗更低。控制邏輯艱難,布線簡單,裸晶面積小,功耗低,頻率可以做到2-3GHz,同時架構(gòu)易擴展,常見的有4096和8192兩種。有些如華為和英偉達,做成了3維,實際和2維度相差不大,最后那一維是前兩維的延伸,本質(zhì)上還是兩維。
這種架構(gòu)的缺點就是除非數(shù)據(jù)完全符合脈動陣列的規(guī)模,否則延遲明顯,如TPU的256x256脈動陣列,當(dāng)遇到FC層輸入輸出節(jié)點少、1x1的卷積核等情況,還是要空轉(zhuǎn)256個周期才能有第一個計算結(jié)果,效率急速降低,解決辦法很簡單,軟硬一體,確保讓陣列都能滿負荷運轉(zhuǎn)。不過嘛,這就徹底封閉了,等于把靈魂都給芯片廠家了。
卷積的運算也有兩種,一種是脈動陣列最合適的矩陣乘加累積,另一種是滑動窗口,轉(zhuǎn)換成矩陣乘的好處之一就是方便支持各種奇奇怪怪的卷積,在轉(zhuǎn)換階段就做了dialation擴張、stride步長、deform變形、pad、非對稱卷積核等處理,但會多幾個數(shù)據(jù)轉(zhuǎn)換和額外的內(nèi)存讀寫。直接滑窗可能不需要變形和額外內(nèi)存讀寫,但優(yōu)化起來卷積方式相對受限,如果在卷積階段調(diào)整步長或dialation等邏輯,會引起流水線中斷,降低效率。不過似乎可以用VLIW指令做對應(yīng)約束。
除此之外,AI加速器還是標準的馮諾依曼架構(gòu),數(shù)據(jù)和程序指令共用一個總線,雖然可以分開存儲,像今天大多數(shù)CPU的L1緩存都是指令和數(shù)據(jù)分開存儲,但尋址總線還是共用的,仍然是標準的馮諾依曼架構(gòu),這在AI加速器上非常不合適,AI加速器有著天量的數(shù)據(jù)存取,消耗大量時間,產(chǎn)生大量功耗,即便是脈動陣列數(shù)據(jù)大量復(fù)用,但是指令和數(shù)據(jù)還是共用總線,數(shù)據(jù)還是要頻繁地讀出和寫入,這就是存儲墻問題。解決辦法有多種,一種是增加SRAM容量,SRAM速度最快,還在Die內(nèi)部,物理距離最近,但成本會暴增,除了訓(xùn)練用,推理階段絕對不會有人用。HBM退而求其次的辦法,是一種解決辦法,HBM帶寬高,容量遠大于SRAM,且與計算單元物理距離很近,在每次計算的兩個值中,一個是權(quán)值Weight,一個是輸入Activation。如果有足夠大的片上緩存,結(jié)合適當(dāng)?shù)奈粚拤嚎s方法,將所有Weight都緩存在片上,每次僅輸入Activation,就可以在優(yōu)化數(shù)據(jù)復(fù)用之前就將帶寬減半。不過HBM必須用3D封裝或者說Chiplet,基本上就只有臺積電一家能做,且價格高昂,車載芯片用不起。未來如果持續(xù)縮小權(quán)重模型,使用HBM量降低,或許會出現(xiàn)車載的HBM。
最合適的解決辦法是哈佛架構(gòu),哈佛架構(gòu)可以一定程度上減少存儲墻的問題,它的指令和數(shù)據(jù)是不同的總線,讀取指令同時也可以讀取數(shù)據(jù),沒有等待的間隙。DSP是典型的哈佛架構(gòu)。缺點是通常要配合VLIW,編譯器寫起來很麻煩,再有就是DSP無法做到多核,算力難以大幅度提升。
本文這款芯片更多考慮性價比、高效率以及對激光雷達的支持,因此不需要太高的AI算力,選擇CEVA的NeuPro M。用于車載AI加速的DSP IP供應(yīng)商不少,如新思科技的DesignWare ARC處理器系列,Cadence的Tensilica Vision Q7,VeriSilicon(芯原微電子)的Vivante Vision IP,Imagination的NNA。DSPIP最大的還是CEVA,并且第一大汽車邏輯芯片廠家瑞薩在其下一代自動駕駛SoC中就有采用CEVA的DSP IP,極有可能就是NeuProM。
圖片來源:互聯(lián)網(wǎng)
2022年1月初CES大展期間,CEVA推出第三代AI加速器IP,即NeuPro-M,最高算力達1200TOPS,且每瓦就可達到24TOPS算力,效率大約是高通AI100的2倍,英偉達Orin的2.5倍,特斯拉FSD的4-5倍。
圖片來源:互聯(lián)網(wǎng)
針對汽車市場,CEVA提供NeuPro-M內(nèi)核及其CEVA深度神經(jīng)網(wǎng)絡(luò) (CDNN)深度學(xué)習(xí)編譯器和軟件工具包,不僅符合汽車ISO26262 ASIL-B功能安全標準,并滿足嚴格的質(zhì)量保證標準IATF16949和 ASPICE要求。
NeuPro-M內(nèi)部框架圖
圖片來源:互聯(lián)網(wǎng)
第二代產(chǎn)品NeuPro-S的框架圖
圖片來源:互聯(lián)網(wǎng)
上圖為第二代產(chǎn)品NeuPro-S的框架圖,其實際是CEVA-XM6 DSP與NeuPro-S引擎的復(fù)合體,雖然NeuPro-M內(nèi)部框架圖未再提及XM6,但看AXI主從分布,XM6應(yīng)該只是換了個名字叫NPM Common子系統(tǒng)。NeuPro-S引擎有點類似于一個脈動陣列的AI加速器,以NeuPro-S 4000擁有4096個整數(shù)8比特精度MAC單元,上圖為其單核框架圖。NeuPro-M也是4096個MAC,不過精度從2位整數(shù)到16位浮點都有。NeuPro-M 架構(gòu)中創(chuàng)新功能,同時使用 Winograd變換正交機制、Sparsity引擎和低分辨率 4x4位激活,可將網(wǎng)絡(luò)(如Resnet50和YoloV3)的循環(huán)次數(shù)減少三倍以上。
XM6的內(nèi)部框架
圖片來源:互聯(lián)網(wǎng)
NeuPro–M系列處理器初始包含以下預(yù)配置內(nèi)核:• NPM11 –單個NeuPro-M引擎,在 1.25GHz下算力高達20 TOPS,• NPM18 – 8 個NeuPro-M 引擎,在1.25GHz下算力高達160 TOPS,這里的TOPS對應(yīng)都應(yīng)該是8比特整數(shù)位精度。估計制造工藝是7納米,5納米運行頻率可以再提高,本設(shè)計中用單核NPM11就足夠,功耗低于1瓦,也更容易過車規(guī),成本也比較低。 子系統(tǒng)不多,特別是AI加速器只是單核,因此片上網(wǎng)絡(luò)NoC也可以不用,總線就足夠,ARM的CMN700就夠用。
設(shè)計一款性能足以挑戰(zhàn)英偉達Orin和Mobileye EyeQ6H的芯片不是什么難事,最大的問題是資金從哪來,供應(yīng)鏈如何確保。至于配套的軟件部分,只要舍得花錢招人,不是什么難事。