【ZiDongHua 之技術(shù)文章區(qū)收錄關(guān)鍵詞:瑞薩電子 SoC 自動(dòng)駕駛 高級(jí)駕駛輔助系統(tǒng) ADAS 人工智能 深度神經(jīng)網(wǎng)絡(luò) 】
 
 
  工程師說 | 面向AD/ADAS的SoC的AI性能優(yōu)化
 
 
  摘要
 
  本文介紹了瑞薩在早期設(shè)計(jì)階段針對自動(dòng)駕駛(AD)和高級(jí)駕駛輔助系統(tǒng)(ADAS)的SoC中用于AI處理的深度神經(jīng)網(wǎng)絡(luò)(DNN)加速器的性能、電路尺寸和功耗的工作內(nèi)容。
 
  Yuji Obayashi
 
  Principal Software Engineer
 
  背景
 
  近年,隨著深度學(xué)習(xí)(DeepLearning)人工智能(AI)技術(shù)的進(jìn)步,我們的生活中出現(xiàn)了許多直接有益的應(yīng)用場景,例如自動(dòng)翻譯精度的提升和根據(jù)消費(fèi)者喜好的個(gè)性化推薦。截至2023年,AI在某些領(lǐng)域已經(jīng)成為產(chǎn)品和服務(wù)中不可或缺的應(yīng)用,其中之一就是自動(dòng)駕駛(AD)和先進(jìn)駕駛輔助系統(tǒng)(ADAS)。
 
  以深度神經(jīng)網(wǎng)絡(luò)(DNN)為代表的最新人工智能模型的處理需要大規(guī)模的并行計(jì)算,因此在PC開發(fā)中通常使用通用的GPU進(jìn)行并行計(jì)算。另一方面,用于AD和ADAS的SoC多數(shù)搭載了專用電路(以下簡稱加速器),實(shí)現(xiàn)了低功耗和高性能的DNN處理。然而,在SoC開發(fā)的早期階段,確認(rèn)搭載的加速器能否在實(shí)際所需的DNN中提供足夠的性能通常并不容易。性能比較的指標(biāo)常常使用加速器設(shè)計(jì)上的最大計(jì)算性能TOPS(Tera Operations Per Second)值,或者其與運(yùn)行時(shí)消耗的功率相除得到的TOPS/W值。然而,由于加速器是針對特定處理的專用設(shè)計(jì)(*1),即使TOPS值足夠高,在實(shí)際所需的DNN中也可能由于存在無法高效處理的計(jì)算或數(shù)據(jù)傳輸帶寬不足等問題而無法提供足夠的性能。此外,加速器的功率增加可能導(dǎo)致整個(gè)SoC的功耗超過可接受的范圍。
 
 ?。?1)專用設(shè)計(jì):雖然使用通用GPU作為加速器也是可能的,但處理特定任務(wù)的硬件,可以在較小的電路規(guī)模和功耗下獲得更高的處理性能。例如瑞薩的車載SoC R-Car V3H、R-Car V3M和R-Car V4H搭載的加速器具有專為處理DNN中使用卷積操作進(jìn)行特征提取的卷積神經(jīng)網(wǎng)絡(luò)(CNN)任務(wù)而設(shè)計(jì)的結(jié)構(gòu)。
 
  隨著SoC開發(fā)的深入,由于性能不足或功耗過大等原因而進(jìn)行設(shè)計(jì)變更的難度普遍增加,對SoC開發(fā)進(jìn)度和開發(fā)成本的影響也隨之增加。因此,在開發(fā)面向車載AI設(shè)備的SoC時(shí),確認(rèn)搭載的加速器能否在實(shí)際顧客產(chǎn)品中所需的DNN中提供足夠的性能,并且功耗是否在可接受范圍內(nèi),已成為迫切的問題。
 
  面向AD/ADAS的一般AI開發(fā)流程
 
  在解釋如何解決上述問題之前,先簡單介紹一下AD/ADAS的AI開發(fā)流程。下面的圖1展示了在AD/ADAS中以軟件為核心,并包括部分SoC開發(fā)的AI開發(fā)流程的示例。
 
  
 
  圖1:AD/ADAS中AI開發(fā)流程的例子
 
  圖1將整個(gè)開發(fā)工作分為六個(gè)階段,其中第2和第3階段為SoC電路設(shè)計(jì),其他第1和第4-6階段為軟件開發(fā)。下面給出了每個(gè)階段的工作概述。
 
  第一階段 AI Application/Service Common Development利用PC和云環(huán)境,以應(yīng)對市場需求和技術(shù)趨勢,開發(fā)面向AD/ADAS的AI應(yīng)用程序和服務(wù)。
 
  第二階段 AI Accelerator Detail Design
 
  涵蓋了構(gòu)成加速器硬件的部件設(shè)計(jì),如計(jì)算單元、內(nèi)部存儲(chǔ)器和數(shù)據(jù)傳輸單元。
 
  第三階段 AI Accelerator Configuration
 
  在第三階段中,第二階段中設(shè)計(jì)的組件被組合起來,以優(yōu)化面積、功率和性能之間的權(quán)衡,同時(shí)確定加速器在SoC中的配置以實(shí)現(xiàn)各自的設(shè)計(jì)目標(biāo)。
 
  第四階段 DNN Model Architecture Design
 
  在第三階段中確定的加速器配置被用來優(yōu)化每個(gè)用于客戶產(chǎn)品的DNN網(wǎng)絡(luò)的結(jié)構(gòu)。
 
  第五階段 DNN Inference Optimization
 
  將針對經(jīng)過第四階段結(jié)構(gòu)優(yōu)化的每個(gè)網(wǎng)絡(luò)進(jìn)行適用于加速器的代碼生成,并進(jìn)行精度和處理時(shí)間的詳細(xì)評(píng)估。同時(shí),將對代碼和模型數(shù)據(jù)進(jìn)行優(yōu)化,以提高性能。
 
  第六階段 Application Development
 
  將使用第五階段中優(yōu)化的代碼和模型數(shù)據(jù),將AI處理部分嵌入到實(shí)際的自動(dòng)駕駛等處理中,并進(jìn)行應(yīng)用的實(shí)現(xiàn)和評(píng)估。
 
  瑞薩的工作
 
  在上一節(jié)所示的AD/ADAS中的AI開發(fā)流程中,判斷實(shí)際使用的DNN是否能夠在所配備的加速器上提供足夠的性能,通常需要在決定加速器配置的第三階段AI Accelerator Configuration中進(jìn)行決策。
 
  傳統(tǒng)上,在這一階段的決策是通過使用類似加速器的現(xiàn)有SoC進(jìn)行的基準(zhǔn)測試結(jié)果來估計(jì)的,但對于因增加或改變功能而與現(xiàn)有SoC規(guī)格不同的部分,無法獲得基準(zhǔn)測試結(jié)果,因此無法通過高度精確的估計(jì)來確定是否能達(dá)到設(shè)計(jì)目標(biāo)。
 
  瑞薩通過使用PPA Estimator(PPA:Performance,Power,Area)而不是現(xiàn)有的SoC基準(zhǔn)測試來解決這個(gè)課題。PPA Estimator通過使用反映加速器每個(gè)組件設(shè)計(jì)的性能和功率計(jì)算模型,使性能和功耗在加速器配置最終確定之前得到估算。具體來說,列出可能的加速器配置(可改變的加速器參數(shù)的組合,如處理單元的數(shù)量和內(nèi)部存儲(chǔ)器的容量)進(jìn)行評(píng)估,選擇其中一個(gè)配置并與要評(píng)估的一個(gè)DNN一起輸入PPA Estimator中,以獲得所需的執(zhí)行時(shí)間和功耗。然后,可以針對所需評(píng)估的加速器配置和DNN的數(shù)量進(jìn)行重復(fù)操作,收集數(shù)據(jù),并找到最佳的加速器配置。如此,不僅可以確定一個(gè)特定的加速器配置和DNN組合是否有足夠的性能,而且還可以收集廣泛的數(shù)據(jù)并從中選擇最佳加速器配置。
 
  此外,為了使第三階段AI Accelerator Configuration更加有效,瑞薩還通過將從PPA Estimator執(zhí)行結(jié)果中獲得的信息反饋給目標(biāo)DNN的網(wǎng)絡(luò)模型,并行改進(jìn)軟件方面的工作,也就是進(jìn)行硬件-軟件聯(lián)合設(shè)計(jì)(co-design)。AI Accelerator Configuration階段的工作流程如下圖2所示。
 
  

 
  圖2:AI Accelerator Configuration工作流程瑞薩已開始將PPA Estimator應(yīng)用于從2023年開始的一些帶有AI處理加速器的AD/ADAS的SoC的開發(fā)中,并計(jì)劃逐步擴(kuò)大應(yīng)用范圍。瑞薩將利用PPA Estimator的高度精確性能尋找最佳配置以開發(fā)高性能、低功耗的車載AI加速器。