什么是DRP?
DRP全稱是Dynamically Reconfigurable Processer,即動態(tài)可重配置處理器。是瑞薩獨創(chuàng)的體系結構,能夠動態(tài)的調整硬件運算單元的邏輯電路,也能夠從軟件層面對運算邏輯進行實時修改,保證了靈活性的同時也擁有不俗的圖像處理能力。當前,DRP技術已迭代至第三代,并配套開發(fā)了一系列相關算法及工具鏈,免費提供客戶參考及使用。
第一代DRP技術被應用在入門級的RZ/A2M MPU等產品中,使其擁有出色的AI及圖像加速能力。以下內容,均是基于第一代DRP技術展開介紹的。?
DRP如何工作?
DRP有6個獨立的單元稱為“Tile”,它們可以加載多個配置數據(即算法庫)并且并行的執(zhí)行,這些算法庫存放在系統(tǒng)內存中,在需要的時候由CPU下發(fā)指令將其加載到各個Tile中。
任何時候都可以修改各個Tile中的算法庫,并且在修改過程中不會影響其它Tile的運行。
DRP采用動態(tài)加載的方法可以在極小的硬件資源上實現(xiàn)應用對不同圖像處理算法高速處理的需求。
“
DRP憑什么這么優(yōu)秀?
DRP是一個硬件資源,所有的運算邏輯都在硬件層面實現(xiàn),每個Tile都是一個獨立的運算單元,Tile擁有的硬件資源是一定的,所以當有算法庫用到的硬件資源較多的時候,就需要兩個甚至更多的Tile來協(xié)同配合,以下是DRP所擁有的硬件資源。
DRP在運行的過程中,會自動的根據算法庫的復雜程度,靈活的對硬件資源進行一些整合,比如在一個Tile內,將兩個16bit的乘法器合并成一個32bit的乘法器使用;或者將一個16bit的乘法器與一個計數器組合使用等。進一步擴大了DRP的運算能力。
硬件的運算能力我們都非常清楚,比如目前應用非常廣泛的FPGA的算力就和CPU完全不在一個量級,然而FPGA的缺陷也很明顯,就是運算規(guī)模直接和門電路數量掛鉤,需要實現(xiàn)復雜的算法就必須用更多的門數,而且一旦算法要求的門數超出了項目初期的FPGA選型,則不得不更換更大規(guī)模的FPGA,非常的不方便。
這個時候,DRP的靈活性就體現(xiàn)出來了,它不僅可以在庫與庫之間靈活切換,在同一個庫的內部,也能在不同的時鐘周期內,動態(tài)調整運算電路之間的邏輯,來實現(xiàn)各種各樣的運算方式。通過這種分時復用的方式,最大限度的提升了運算性能,給小體積發(fā)揮大能力提供了無限可能。
動態(tài)可重配置的性能可以在1ns內修改運算電路的組合方式,動態(tài)加載可以在1ms內重新裝載整個新的算法庫。
DRP甚至可以通過多個Tile運行同一個算法庫來提高處理速度。比如將一張圖片等分為6份,交給6個Tile進行圖像處理,性能直接在原有的基礎上提升6倍!
一般來說,性能提升往往會伴隨著功耗的增加。但是用DRP來提升圖像處理能力是一種另辟蹊徑的優(yōu)化方式,而且這種方式的能耗要遠遠低于CPU的能耗。
我們使用RZ/A2M這款芯片的CPU和DRP分別運行Canny Edge Detection并測量了這兩種情況下的性能與能耗。?
Canny Edge Detection攏共分三步:
這一連串的流程,交給CPU去做,耗費了142ms左右的時間,但是如果交給DRP做,只需要10.4ms!其中還包含了不同DRP庫之間切換的時間!
除了速度上的優(yōu)勢,能耗方面的優(yōu)點也非常明顯:
對比發(fā)現(xiàn)DRP不僅在運算速度上提升了14倍,在功耗上也只用了CPU的1/20。
以上,是第一代DRP技術特點的介紹,后續(xù)還有關于DRP技術的相關應用及最新的DRP技術介紹,敬請期待!
編輯:黃飛
評論