什么是DRP?
DRP全稱是Dynamically Reconfigurable Processer,即動態(tài)可重配置處理器。是瑞薩獨(dú)創(chuàng)的體系結(jié)構(gòu),能夠動態(tài)的調(diào)整硬件運(yùn)算單元的邏輯電路,也能夠從軟件層面對運(yùn)算邏輯進(jìn)行實(shí)時修改,保證了靈活性的同時也擁有不俗的圖像處理能力。當(dāng)前,DRP技術(shù)已迭代至第三代,并配套開發(fā)了一系列相關(guān)算法及工具鏈,免費(fèi)提供客戶參考及使用。
第一代DRP技術(shù)被應(yīng)用在入門級的RZ/A2M MPU等產(chǎn)品中,使其擁有出色的AI及圖像加速能力。以下內(nèi)容,均是基于第一代DRP技術(shù)展開介紹的。?
DRP如何工作?
DRP有6個獨(dú)立的單元稱為“Tile”,它們可以加載多個配置數(shù)據(jù)(即算法庫)并且并行的執(zhí)行,這些算法庫存放在系統(tǒng)內(nèi)存中,在需要的時候由CPU下發(fā)指令將其加載到各個Tile中。

任何時候都可以修改各個Tile中的算法庫,并且在修改過程中不會影響其它Tile的運(yùn)行。

DRP采用動態(tài)加載的方法可以在極小的硬件資源上實(shí)現(xiàn)應(yīng)用對不同圖像處理算法高速處理的需求。

“
DRP憑什么這么優(yōu)秀?
DRP是一個硬件資源,所有的運(yùn)算邏輯都在硬件層面實(shí)現(xiàn),每個Tile都是一個獨(dú)立的運(yùn)算單元,Tile擁有的硬件資源是一定的,所以當(dāng)有算法庫用到的硬件資源較多的時候,就需要兩個甚至更多的Tile來協(xié)同配合,以下是DRP所擁有的硬件資源。

DRP在運(yùn)行的過程中,會自動的根據(jù)算法庫的復(fù)雜程度,靈活的對硬件資源進(jìn)行一些整合,比如在一個Tile內(nèi),將兩個16bit的乘法器合并成一個32bit的乘法器使用;或者將一個16bit的乘法器與一個計(jì)數(shù)器組合使用等。進(jìn)一步擴(kuò)大了DRP的運(yùn)算能力。
硬件的運(yùn)算能力我們都非常清楚,比如目前應(yīng)用非常廣泛的FPGA的算力就和CPU完全不在一個量級,然而FPGA的缺陷也很明顯,就是運(yùn)算規(guī)模直接和門電路數(shù)量掛鉤,需要實(shí)現(xiàn)復(fù)雜的算法就必須用更多的門數(shù),而且一旦算法要求的門數(shù)超出了項(xiàng)目初期的FPGA選型,則不得不更換更大規(guī)模的FPGA,非常的不方便。
這個時候,DRP的靈活性就體現(xiàn)出來了,它不僅可以在庫與庫之間靈活切換,在同一個庫的內(nèi)部,也能在不同的時鐘周期內(nèi),動態(tài)調(diào)整運(yùn)算電路之間的邏輯,來實(shí)現(xiàn)各種各樣的運(yùn)算方式。通過這種分時復(fù)用的方式,最大限度的提升了運(yùn)算性能,給小體積發(fā)揮大能力提供了無限可能。

動態(tài)可重配置的性能可以在1ns內(nèi)修改運(yùn)算電路的組合方式,動態(tài)加載可以在1ms內(nèi)重新裝載整個新的算法庫。
DRP甚至可以通過多個Tile運(yùn)行同一個算法庫來提高處理速度。比如將一張圖片等分為6份,交給6個Tile進(jìn)行圖像處理,性能直接在原有的基礎(chǔ)上提升6倍!

一般來說,性能提升往往會伴隨著功耗的增加。但是用DRP來提升圖像處理能力是一種另辟蹊徑的優(yōu)化方式,而且這種方式的能耗要遠(yuǎn)遠(yuǎn)低于CPU的能耗。
我們使用RZ/A2M這款芯片的CPU和DRP分別運(yùn)行Canny Edge Detection并測量了這兩種情況下的性能與能耗。?
Canny Edge Detection攏共分三步:

這一連串的流程,交給CPU去做,耗費(fèi)了142ms左右的時間,但是如果交給DRP做,只需要10.4ms!其中還包含了不同DRP庫之間切換的時間!
除了速度上的優(yōu)勢,能耗方面的優(yōu)點(diǎn)也非常明顯:

對比發(fā)現(xiàn)DRP不僅在運(yùn)算速度上提升了14倍,在功耗上也只用了CPU的1/20。

以上,是第一代DRP技術(shù)特點(diǎn)的介紹,后續(xù)還有關(guān)于DRP技術(shù)的相關(guān)應(yīng)用及最新的DRP技術(shù)介紹,敬請期待!
編輯:黃飛
電子發(fā)燒友App



















評論