亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

深度分析高通基于DSP的的AI加速硬件設(shè)計|天天視訊

2023-04-21 13:22:59 來源:佐思汽車研究

高通SoC的AI加速硬件都是基于DSP的,指令方面則是SIMD擴展。高通自2013年導入DSP加速,一直沿用至今,硬件架構(gòu)變化不大,可以說是非常優(yōu)秀的設(shè)計。從高通8150開始,一般高通SoC包含4個DSP,分別對應(yīng)音頻、傳感器、Modem和計算,通常高通只把計算DSP即cDSP單獨提及,一般說HEXAGON DSP指的就是cDSP。

DSP是通用的加速器,可以對應(yīng)標量(Scalar)、向量(Vector)和張量(Tensor)。而我們所說的AI芯片一般只對應(yīng)張量。標量運算一般對應(yīng)的是CPU,通常是串行數(shù)據(jù)。向量和張量對應(yīng)的并行數(shù)據(jù)計算,傳統(tǒng)的CPU不太勝任。并行運算分指令并行、數(shù)據(jù)并行(SIMD)和線程并行(SIMT,即GPU)三大類。

圖片來源:高通


(相關(guān)資料圖)

高通在第六代Hexagon DSP中引入HVX概念,HVX是Hexagon Vector eXtensions的簡稱,HVX是DSP中一個可選的協(xié)處理器,它為標量DSP單元添加了128字節(jié)的矢量處理功能(在HVX編程的時候很多處理都要128對齊)。標量硬件線程通過訪問HVX寄存器文件(也稱為HVX上下文)來使用HVX協(xié)處理器。之后高通又引入HTA(Hexagon Tensor Accelerator),基本上只對應(yīng)定點即整數(shù)運算,主要針對CNN模型。之后高通繼續(xù)改進HTA,改進為HTP (Hexagon Tensor Processor),所謂HTP就是加入了HMX即Hexagon Matrix eXtensions。仍然是基于標量DSP而加入的協(xié)處理器。

通常DSP都是哈佛架構(gòu),采用流水線操作,對數(shù)據(jù)的整齊度要求很高,不能有分支跳轉(zhuǎn)或中斷,DSP采用了哈佛結(jié)構(gòu),將存儲器空間劃分成兩個,分別存儲程序和數(shù)據(jù)。它們有兩組總線連接到處理器核,允許同時對它們進行訪問,每個存儲器獨立編址,獨立訪問。這種安排將處理器的數(shù)據(jù)吞吐率加倍,更重要的是同時為處理器核提供數(shù)據(jù)與指令。在這種布局下,DSP得以實現(xiàn)單周期的MAC乘積累加指令,而MAC就是AI運算的最底層。

DSP芯片廣泛采用2-6級流水線以減少指令執(zhí)行時間,從而增強了處理器的處理能力。這可使指令執(zhí)行能完全重疊,每個指令周期內(nèi),不同的指令都處于激活狀態(tài)。更像是脈動處理器,數(shù)據(jù)一次導入,流轉(zhuǎn)周期很長,效率極高。

圖片來源:高通

高通利用DSP加速早在2006年就開始了,不過早期都是針對modem或音頻的,2013年以后增加了計算。

圖片來源:高通

高端DSP都采用VLIW(超長指令集),VLIW DSP在硬件上沒有調(diào)度和沖突判決的機制,其性能的發(fā)揮完全依靠編譯器的優(yōu)化效果。VLIW架構(gòu)中,指令級并行的發(fā)現(xiàn)與指令執(zhí)行順序的調(diào)度(硬件中最困難的部分)完全交由編譯器完成。這樣,硬件可以盡可能地保持簡單。VLIW硬件不負責發(fā)現(xiàn)并發(fā)執(zhí)行多個操作的工作。VLIW實現(xiàn)很長的指令,超長指令字已經(jīng)對并發(fā)操作進行了編碼,這通常是由編譯器來完成的。與RISC或CISC的高度超標量實現(xiàn)相比,這種顯式編碼極大降低了硬件的復雜性。硬件簡單化的好處就是只需要簡單地增加計算單元就可提高算力,難題都交給了軟件,這也是高通DSP生命力如此頑強的原因。

高通DSP的VLIW

圖片來源:高通

第一代帶HVX的高通DSP硬件架構(gòu)

圖片來源:高通

主處理器主要負責標量運算,有4個(目前新架構(gòu)已調(diào)整至6個)硬件線程(每個擁有4路VLIW,共享L1/L2)。向量化運算由2個HVX context組成(目前新架構(gòu)已調(diào)整至4個),分別會被多個標量線程控制。主處理器和HVX都是可以有多個軟件線程,由QURT實時操作系統(tǒng)進行硬件線程選擇及調(diào)度,開發(fā)者不可控。

圖片來源:高通

高通帶HVX的DSP的內(nèi)存體系,L1只能由標量單元訪問(Scalar是標量單元),L2是標量單元的第二級內(nèi)存,也是HVX協(xié)處理器的第一級內(nèi)存。向量單元支持各種加載/存儲指令,包括對未對齊向量和每字節(jié)條件存儲的支持。

HVX離不開SIMD擴展指令集,英特爾于1996年率先將多媒體SIMD擴展指令集引入通用處理器,在其奔騰處理器上集成了SIMD擴展部件MMX。

多媒體應(yīng)用中通常存在大量同質(zhì)、獨立的訪存和計算操作,且使用的數(shù)據(jù)類型一般都很窄(如圖形系統(tǒng)使用8位表示三基色的每一種顏色,使用8位表示透明度;音頻采樣位寬通常為8位或16位)。SIMD擴展指令集具有獨立的長位寬向量寄存器(64/128/256/512/1024......),允許將原來需要多次裝載的連續(xù)內(nèi)存地址數(shù)據(jù)一次性裝載到向量寄存器中,并使用分裂模式將長的向量寄存器當作多個獨立的窄位寬元素,通過一條SIMD擴展指令實現(xiàn)對SIMD向量寄存器中所有數(shù)據(jù)元素的并行處理。這種執(zhí)行方式非常適合于處理計算密集、數(shù)據(jù)相關(guān)性少的音視頻解碼等多媒體程序。即把64位寄存器拆成8個8位寄存器就能同時完成8個操作,計算效率提升了8倍。SIMD指令的初衷就是這樣的。

SIMD擴展部件僅需要在原來標量部件的基礎(chǔ)上復制幾份同樣的處理單元,不需要增加太多的額外硬件,就能對多媒體等特定應(yīng)用帶來顯著的性能提升,且不增加通信以及Cache和內(nèi)存的開銷,因此即使在多核時代,SIMD擴展部件仍然是程序加速的重要手段之一。

圖片來源:高通

高通DSP是一個4slot的VLIW的1024比特寬度的處理器,每個周期可處理4096比特的數(shù)據(jù),簡單來說,如果數(shù)據(jù)格式是8比特的,那么可以一次執(zhí)行512次計算,相當于一個512核心的GPU。缺點是無論要處理多少數(shù)據(jù),DSP都是火力全開,這可能導致功耗較高,因此DSP的工作頻率一般不高于1GHz,而CPU可以輕易超過2GHz。

圖片來源:高通

擁有32個1024b寄存器R0-R31,4個判斷寄存器P0-P3,支持8/16/32/64-bits的定點運算。VLIW可以提供特殊指令比如CNN的滑窗濾波,直方圖生成等。

最新的HMX,高通沒有公開過其詳細信息,不過也無需公開。所謂AI運算就是矩陣的乘積累加,SIMD指令集中很早就有對應(yīng)乘積累加的指令,最早設(shè)計這個指令是對應(yīng)FFT(快速傅里葉變換)和DCT(離散余弦變換)的,它們的計算過程與今天的AI運算高度重合,幾乎完全一致,早在1999年英特爾就推出了SSE,可以實現(xiàn)一條指令完成乘積累加,效率比傳統(tǒng)計算單元提高一倍。SSE后來演變?yōu)锳VX。AVX,全稱為:Advanced Vector Extensions(又名,Sandy Bridge New Extensions),是IntelAMD微服務(wù)器x86指令集的extension擴展。AVX2擴充到了支持256bit的整數(shù)運算指令,引入了Fused-Multiply-Add(FMA)運算。所謂FMA,即可通過單一指令實現(xiàn)A=A?B+C A=A*B+C A=A?B+C計算,也就是AI運算。英特爾是考慮到了AI訓練,因此最高支持到256比特精度,手機上肯定只做推理,8比特就夠,最早高通的HTA就只支持8比特定點運算,后來HTP支持混合精度,也支持定點或浮點的8位或16比特運算。高通只需要像HVX那樣增加一個或幾個SIMD協(xié)處理器就行,困難都交給編譯器。此外DSP的哈佛架構(gòu)讓數(shù)據(jù)和指令有不同的總線,AI運算的效率進一步提升,再配合SIMD,效率不遜于ASIC。不過成本還是略高于ASIC。

因為SIMD和DSP的特殊性,高通特別做了SNPE(Snapdragon Neural Processing Engine),是高通公司推出的面向移動端和物聯(lián)網(wǎng)設(shè)備的深度學習推理框架。SNPE提供了一套完整的深度學習推理框架,必須將Caffe,Caffe2,ONNXTM和TensorFlowTM模型轉(zhuǎn)換為SNPE深度學習容器(DLC)文件才能運行,有時可能無法轉(zhuǎn)換為高通DLC,如ONNX模型使用了SNPE不支持的hardsigmoid激活功能。由于ARM和英特爾的深度學習加速也是基于SIMD的,因此SNPE也適用于ARM和英特爾平臺,也可以基于Linux平臺調(diào)整網(wǎng)絡(luò)。早期的SNPE DLC只支持8位定點精度,近期可能有提升,支持混合精度。因為SNPE的存在,高通芯片的AI算力不單單是HTA或HTP的,還包括了CPU、GPU和DSP,以驍龍888為例,AI算力是包含這4部分的,合計為26TOPS@INT8,這當中HTP可能只貢獻了一半,甚至更低。

圖片來源:高通

SNPE會對所有運算資源進行調(diào)度,根據(jù)數(shù)據(jù)類型選擇不同的運算資源,比如ARM CPU可以執(zhí)行32比特浮點或8比特定點運算,GPU可以執(zhí)行全16比特浮點運算,DSP支持8比特定點,HTA或HTP執(zhí)行8比特或16比特定點運算。如果在某個運算資源上執(zhí)行效率不高,SNPE可以退出換其他運算資源執(zhí)行運算。這里可能有一個缺點,有些運算資源為了對應(yīng)退出機制,可能需要保持待機狀態(tài)。而SNPE的調(diào)度很難適應(yīng)高通外的硬件,也就是說如果某個高通芯片的算力不足,必須要增加一個完全一致的高通芯片來彌補,比如高通座艙8155,之所以出現(xiàn)雙8155的座艙,推測可能就是這個原因。典型的如億咖通為路特斯高端車型打造的座艙,用了兩片8155,第二片8155只用了GPU資源。

從驍龍8 gen 1開始,高通不再公布具體的TOPS數(shù)據(jù),因為SIMD這種方式,占的die面積比ASIC還是要大,畢竟它是靠寄存器硬件來實現(xiàn)的。在沒有制造工藝明顯提升情況下,高通對DSP硬件改進會很小,高通精力似乎主要在ISP上,改進ISP,減少DSP的負荷。此外,高通還降低精度,最新的8 gen 2支持4比特精度,未來支持單比特也有可能,這樣數(shù)字上比較好看。

高通第一代座艙與智能駕駛二合一的SA8795P,AI算力高達60TOPS,成本可能比較高,座艙主流SA8155P的更新?lián)Q代產(chǎn)品SA8255P其AI算力可能與SA8155P差不多,提升主要在CPU領(lǐng)域。

編輯:黃飛

標簽:

上一篇:
下一篇: