<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 測試測量 > 正文

R-Car DNN模擬器的介紹

發(fā)布時(shí)間:2023-02-20 來(lái)源:瑞薩電子 責任編輯:wenwei

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


背景


用于汽車(chē)SoC實(shí)時(shí)處理的深度學(xué)習的模型轉換


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


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


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


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


應用這種轉換可以在車(chē)載SoC上進(jìn)行實(shí)時(shí)處理。


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


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


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


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


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


使用瑞薩工具和軟件對R-Car V4H進(jìn)行推斷的框圖見(jiàn)圖1。


1675077425288677.png

圖1 使用瑞薩工具和軟件進(jìn)行推斷的方框圖


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


每個(gè)模擬器的概述和特點(diǎn)


瑞薩電子準備了模擬器來(lái)解決以下兩個(gè)用戶(hù)挑戰:


A)在開(kāi)發(fā)一個(gè)應用程序之前,用戶(hù)希望檢查由于量化而導致的精度變化


B)想在不使用實(shí)際設備的情況下使用命令列表檢查和調試用戶(hù)應用程序


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


1675077410627836.png

表1 各模擬器的概述和特點(diǎn)


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


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


ISS


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


結果與實(shí)際設備完全相同,速度比Accurate Simulator慢,因為它以指令為基礎重現輸出。


1675077393286545.png

圖2 使用ISS的系統方框圖


精確的模擬器


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


1675077377506028.png

圖3 使用Accurate Simulator的系統框圖


快速仿真器


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


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


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


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


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


1675077281522670.png

圖4 使用快速仿真器的系統框圖



免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請聯(lián)系小編進(jìn)行處理。


推薦閱讀:


為什么逆導型IGBT可以用于大功率CCM模式 PFC電路

一文了解控制系統及DC-DC轉換器控制環(huán)路設計推薦

芯片溫度檢測,什么方法最有效?

三款產(chǎn)品,看國巨集團如何定義優(yōu)秀的電子元件!

醫療電子領(lǐng)域電感器應用指南

特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>