繼續(xù)Seeing Machines對DMS商業(yè)化落地遇到的挑戰(zhàn)的總結(jié)。
在12nm節(jié)點上搭建Occula NPU性能模型
在不同的半導(dǎo)體技術(shù)節(jié)點上對Occula性能建模以進行比較有三個部分。
首先,在Occula上運行的任何給定算法的處理速度以FPS衡量,主要取決于Occula的時鐘頻率和確定性pipeline。雖然由于系統(tǒng)級的內(nèi)存帶寬策略存在一些差異,但可以通過包含一個小的安全邊際來解決。
第二,Occula所需的芯片面積取決于門的數(shù)量和內(nèi)部buffer和cache實例化的總RAM比特數(shù)。這些完全由ASIC設(shè)計流程中的綜合結(jié)果決定。
第三,Occula的功耗取決于技術(shù)節(jié)點的泄漏特性、芯片面積、時鐘頻率和Occula內(nèi)部各子模塊的動態(tài)開關(guān)活動。
Stillmaker和Baas對這些因素及其微妙的相互作用進行了簡明的解釋。正如他們在論文中所指出的,如果我們有某一特定節(jié)點(例如22nm)的時鐘頻率、面積和功率值,那我們就可以用比例方程來估計不同節(jié)點的等效量。
我們已經(jīng)在上面右欄中列出了我們的建模結(jié)果(灰色陰影部分)。我們的結(jié)論是,在12nm節(jié)點上,Occula最大需要0.9mm^2的面積,在結(jié)溫125℃的最壞情況下的開關(guān)活動需要0.3w的峰值功率(鑒于在這之前系統(tǒng)層面上幾乎肯定會出現(xiàn)內(nèi)存瓶頸,這實際上是極難達到的)。考慮到芯片的老化,Occula在這個節(jié)點上的性能預(yù)計會產(chǎn)生至少500MHz的時鐘頻率。
實際上,由于Occula采用了智能pipeline的方式,便于定時關(guān)閉,所以有可能大大提升頻率,但必須與DDR內(nèi)存接口的速度保持平衡,因為這是芯片中的寶貴資源(正如我們前面所闡述的)。如果Occula的時鐘超過500MHz很多,那么它很可能在等待來自DDR內(nèi)存的數(shù)據(jù),而不是真正有效地利用芯片的空間。我們將在下一節(jié)進一步討論這個話題。
芯片面積的價值在開發(fā)一款新的SoC時,最重要的初始考慮是芯片面積,因為它直接關(guān)系到邊際單位成本,從而關(guān)系到設(shè)備的售價。作為一個參考點,一個針對單機DMS市場的SoC處理器(2-4顆A53級處理器)在16nm節(jié)點的芯片面積可能在15-20mm^2之間。這是一個現(xiàn)實的估計,我們可以用它來說明高效的芯片設(shè)計和如何利用它的重要性,我們認為這就是芯片面積的價值。
圖10顯示了一個完整的16nm SoC產(chǎn)品的芯片面積分解的實例。這個簡單的說明是為了讓人們了解設(shè)備中各種功能的芯片利用率的相對差異。在下圖中:視覺加速器可能是一個定制的可編程協(xié)處理器、DSP或NPU;視頻編解碼器是一個H.264編解碼器,ISP能進行RGB-IR處理以及其他可視的視頻流處理;CPU子系統(tǒng)有4個64位內(nèi)核(每個核實現(xiàn)矢量擴展),有512KB的共享L2 cache。
應(yīng)該注意的是,在這個例子中,實際上有三個不同的“加速”子系統(tǒng),每一個都是為了減輕CPU計算量大的工作負荷。它們是H.264編解碼器、ISP和視覺加速器。那么,為什么選擇這些功能硬件化到芯片上呢?答案很簡單,但并不總是那么明顯。它可以歸結(jié)為以下幾點考慮。
1. 該任務(wù)是否會被使用該芯片的大多數(shù)應(yīng)用所使用(即對大部分客戶來說,它不是dead silicon)?
2. 硬件化功能是否有明顯的減硅優(yōu)勢(即它比在CPU上運行的芯片成本低)?
硬件化任何功能的主要缺點是會失去靈活性。畢竟,CPU中的軟件是最靈活的解決方案。一般來說,基于“標準”和無處不在的功能是硬件化的完美候選者,因為SoC制造商幾乎不可能在其定義中漏掉什么,例如H.264編碼器就是一個理想的候選者。
考慮到上述芯片面積的細分,現(xiàn)在可以對頻繁和實時任務(wù)的芯片成本進行深入的分析。例如,在硬件化的H.264編碼器中壓縮全高清1080p視頻流時,與在CPU上純粹用軟件進行壓縮相比,芯片的利用效率如何?
我們對表6中的數(shù)據(jù)進行了一個簡單的實驗。一個時鐘為200MHz的硬件化的H.264編碼器可以跟上60fps的視頻流,盡管只有一半的幀是RGB。換句話說,盡管以30fps的速度處理,編碼器仍然必須優(yōu)于16.6ms的幀延遲,因為剩余的幀是IR,它們將達到同樣的速度;否則,編碼器會因為迫使每個RGB幀先在DDR內(nèi)存中緩沖而變得效率極低(正如我們在本文前面所討論的那樣)。
另一方面,一個時鐘為800 MHz的A53內(nèi)核用純內(nèi)存到內(nèi)存的數(shù)據(jù)流編碼一幀需要130ms,因此它完全不能滿足30fps的要求。我們使用開源的x264工具,該工具已針對ARMv8指令集中的NEON SIMD擴展進行了大量優(yōu)化。該數(shù)據(jù)表明,在權(quán)衡芯片面積的價值時,硬件化標準H.264算法可以提供相同的功能,其效率是A53內(nèi)核的5倍以上。
現(xiàn)在讓我們來看看視線追蹤任務(wù)(執(zhí)行我們專有的SM_TRACK網(wǎng)絡(luò)),進行與Occula NPU相關(guān)的相同分析。表7比較了執(zhí)行SM_TRACK網(wǎng)絡(luò)的A53內(nèi)核(帶NEON SIMD擴展)和運行相同工作負載的Occula NPU。我們比較了兩者的單次延遲,然后將該延遲率與A53內(nèi)核的芯片面積進行對比,得出相對效率(與表6相同)。這再次表明,相對于在A53內(nèi)核上運行的完全優(yōu)化的軟件版本,硬件化的Occula在執(zhí)行我們的視線追蹤算法方面的效率。
上述數(shù)據(jù)表明,當涉及到像視線追蹤這樣的實時任務(wù)時,以500MHz(ASIC實現(xiàn)的典型時鐘)運行的Occula比以800MHz運行的A53內(nèi)核至少能更好地利用芯片的空間12倍。這一比率是可以預(yù)期的,相對性能以及本文中說明的先前數(shù)據(jù)表明,具有NEON SIMD擴展的A53內(nèi)核作為一個嵌入式處理器實際上是多么的通用。值得注意的是,A53內(nèi)核和Occula NPU都可以按照其設(shè)計的架構(gòu)執(zhí)行其他多項任務(wù)。問題仍然是,對CPU造成負擔的關(guān)鍵實時工作負載應(yīng)該直接在芯片中加速,以獲得最大效率。
結(jié)束語
為汽車行業(yè)構(gòu)建DMS是一門藝術(shù),也是一門科學(xué)。有多種策略可以部署,且每一種策略都有很大的不確定性。多年來,Seeing Machines一直處于設(shè)計DMS解決方案的前沿,以滿足低成本、低功耗、高性能和大批量應(yīng)用的最苛刻要求和市場壓力。
我們駕馭這一藝術(shù)和科學(xué)的策略一直集中于以通過部署協(xié)同設(shè)計方法解決嵌入式挑戰(zhàn)?,F(xiàn)在,Occula NPU已經(jīng)進入第八代,基于我們自己的算法發(fā)明和該領(lǐng)域的專業(yè)知識,我們精心設(shè)計了Occula NPU來優(yōu)化DMS技術(shù)。
展望汽車市場這一領(lǐng)域未來的可能性,以及擴展到其他必須采用DMS技術(shù)的行業(yè),我們看到了將這一技術(shù)的前沿推向更遠的機會。在設(shè)計DMS產(chǎn)品時,我們有一個世界級的團隊來利用這些機會,這要歸功于我們深厚的專業(yè)知識和技能(從上到下跨越了整個堆棧)。