新聞中心

        EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > R-Car DNN模擬器的介紹

        R-Car DNN模擬器的介紹

        作者: 時間:2023-02-20 來源:瑞薩電子 收藏

        本篇文章我們將介紹瑞薩為R-Car V4H提供的三種類型的DNN開發(fā)模擬器,以及它們的使用情況和特點。

        本文引用地址:http://www.104case.com/article/202302/443468.htm


        背景


        用于汽車SoC實時處理的深度學習的模型轉(zhuǎn)換


        深度學習是使用底層軟件(深度學習框架)開發(fā)的,如TensorFlow和PyTorch。


        僅僅通過移植在深度學習框架中學習到的模型,不可能在R-Car這樣的車載SoC上進行實時處理,因為深度學習的推斷過程需要大量的計算和內(nèi)存使用。因此,有必要對所學模型進行非等價的模型壓縮,如量化和剪枝,以及使用深度學習編譯器進行性能優(yōu)化。


        首先,讓我們討論一下模型壓縮。在量化中,通常以浮點計算的推斷過程被轉(zhuǎn)換為近似的整數(shù)運算,如8位。通過將對識別結(jié)果貢獻較小的權(quán)重設(shè)置為零并跳過對這些權(quán)重的計算,修剪減少了計算和內(nèi)存的使用。這兩種轉(zhuǎn)換都是對原始推斷過程的非等效的算法轉(zhuǎn)換,因此很可能會降低識別的準確性。


        在性能優(yōu)化方面,深度學習編譯器可以對訓練過的模型的推斷過程進行程序轉(zhuǎn)換,以便在深度學習加速器上進行更快的處理,或者應(yīng)用內(nèi)存可以進行優(yōu)化,例如將分配給一個層的輸出數(shù)據(jù)的快速小型SRAM重新用于另一個層的輸出數(shù)據(jù)。


        應(yīng)用這種轉(zhuǎn)換可以在車載SoC上進行實時處理。


        在R-Car中使用瑞薩工具和軟件的推斷流程


        瑞薩的R-Car中的H/W加速器CNN-IP,出于計算效率的考慮,可以使用整數(shù)值進行推斷操作。由于這個原因,用戶必須使用瑞薩公司提供的R-Car CNN工具來進行量化,這是上述模型轉(zhuǎn)換中的一種。


        首先,在實際執(zhí)行量化之前,必須進行校準,以計算量化參數(shù)(刻度和零點),用于將浮動數(shù)轉(zhuǎn)換為整數(shù)。為此,一個外部工具(如TFMOT、ONNX runtime),根據(jù)網(wǎng)絡(luò)模型的格式,從大量的輸入圖像中找到每一層的最大/最小輸出值。從這些最大/最小值中,可以計算出比例/零點等量化參數(shù);R-Car CNN工具使用這些量化參數(shù)來量化每一層的參數(shù)。


        R-Car CNN工具然后從網(wǎng)絡(luò)模型和每層的量化參數(shù)中創(chuàng)建一個命令列表。命令列表是二進制數(shù)據(jù),用于指示CNN-IP執(zhí)行哪些命令和設(shè)置哪些參數(shù)(每個量化層的參數(shù))。通過向CNN-IP提供該命令列表并運行它,可以進行推斷。


        命令列表是由網(wǎng)絡(luò)模型和量化參數(shù)唯一確定的,因此它只需要事先創(chuàng)建一次。上述命令列表可以對每個圖像執(zhí)行,以便在實際設(shè)備上進行推斷。


        使用瑞薩工具和軟件對R-Car V4H進行推斷的框圖見圖1。


        1675077425288677.png

        圖1 使用瑞薩工具和軟件進行推斷的方框圖


        關(guān)于每個模擬器


        每個模擬器的概述和特點


        準備了模擬器來解決以下兩個用戶挑戰(zhàn):


        A)在開發(fā)一個應(yīng)用程序之前,用戶希望檢查由于量化而導致的精度變化


        B)想在不使用實際設(shè)備的情況下使用命令列表檢查和調(diào)試用戶應(yīng)用程序


        瑞薩的模擬器有三種類型,每種類型解決不同的任務(wù),具有不同的功能。各自的特點見表1。每一種都在準確性和處理速度上有所不同。對于每一種情況,都會參照框圖介紹其特點和使用情況的細節(jié)。


        1675077410627836.png

        表1 各模擬器的概述和特點


        (*1)命令列表是使用R-Car CNN工具創(chuàng)建的,基于網(wǎng)絡(luò)模型和量化參數(shù),使用與上述實際機器上的推斷相同的程序。


        (*2)Accurate Simulator在R-Car CNN工具中運行。用戶向R-Car CNN工具提供網(wǎng)絡(luò)模型和量化參數(shù),該工具會自動計算每一層的量化參數(shù),然后將其輸入到Accurate Simulator。


        ISS


        該模擬器旨在使用與實際設(shè)備盡可能相同的軟件配置和輸入數(shù)據(jù)(命令列表,主要是寄存器設(shè)置)來調(diào)試輸出結(jié)果。它不能重現(xiàn)計時,也不打算用于計時驗證。


        結(jié)果與實際設(shè)備完全相同,速度比Accurate Simulator慢,因為它以指令為基礎(chǔ)重現(xiàn)輸出。


        1675077393286545.png

        圖2 使用ISS的系統(tǒng)方框圖


        精確的模擬器


        該模擬器將網(wǎng)絡(luò)模型作為輸入,用于精度驗證,無需使用實際設(shè)備。對于每一層,都要實現(xiàn)一種算法,使其輸出與設(shè)備的計算算法完全匹配。由于執(zhí)行速度比ISS快10倍左右,所以在只驗證精度的情況下,它是很有用的。


        1675077377506028.png

        圖3 使用Accurate Simulator的系統(tǒng)框圖


        快速仿真器


        該模擬器用于檢查大量圖像的定量誤差。


        Fast Simulator擴展了深度學習框架(R-Car V4H中的Tensor Flow),在每層推斷操作后都有一個偽量化功能,并帶有浮點數(shù)字。偽量子化是一種重現(xiàn)浮點數(shù)的偽量子化誤差的方法,在浮點數(shù)仍然是浮點數(shù)的情況下,加入與量子化導致的精度下降相同的誤差。


        可以只在Tensor Flow中添加一個偽量化功能,其運行速度與Tensor Flow相似,但速度更快。


        另外,由于輸入/輸出接口與深度學習框架是通用的,所以用戶在切換到深度學習框架時很容易檢查出量化錯誤。


        然而,由于每層的推斷操作和偽量化都會產(chǎn)生一個小的浮點算術(shù)誤差,所以結(jié)果與實際的機器結(jié)果并不完全匹配。


        1675077281522670.png

        圖4 使用快速仿真器的系統(tǒng)框圖



        關(guān)鍵詞: 瑞薩電子 DNN模擬器

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 和顺县| 长顺县| 乐清市| 谷城县| 南汇区| 新河县| 乐平市| 香河县| 仲巴县| 清水县| 博兴县| 合川市| 辽中县| 万全县| 壶关县| 静宁县| 称多县| 和静县| 淳化县| 曲麻莱县| 玛沁县| 西林县| 天门市| 尤溪县| 读书| 高雄县| 彭山县| 涟水县| 榆社县| 邵阳县| 尖扎县| 彭州市| 六安市| 巫溪县| 高邑县| 九台市| 大余县| 宁南县| 华坪县| 壶关县| 故城县|