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