觸覺智能(RK方案商)分享瑞芯微RK3588 RKNN端側(cè)模型的開發(fā)環(huán)境搭建方法與測試方法。
【測試環(huán)境說明】
開發(fā)板系統(tǒng):Ubuntu22.04
開發(fā)環(huán)境:Ubuntu22.04虛擬機(jī)
演示設(shè)備:觸覺智能RK3588開發(fā)板EVB3588,開發(fā)板基于核心板+底板設(shè)計,可通過核心板開發(fā)設(shè)計底板。
RKNN
RKNN,全程Rockchip Neural Network)是瑞芯微專為自家 NPU (神經(jīng)網(wǎng)絡(luò)處理單元) 開發(fā)的端側(cè)神經(jīng)網(wǎng)絡(luò)計算框架,提供完整的 "模型轉(zhuǎn)換 - 部署 - 推理" 解決方案。瑞芯微官方軟件??梢詭椭脩艨焖俚貙?a href="http://m.sdkjxy.cn/tags/ai/" target="_blank">AI模型部署到Rockchip芯片,整體的框架如下。

RKNN-Toolkit2是用戶模型轉(zhuǎn)換、推理與性能評估的開發(fā)套件。使用 RKNPU 時,需先通過該工具將訓(xùn)練好的模型轉(zhuǎn)為 RKNN 格式,再借助 RKNN C API 或 Python API 在開發(fā)板上部署。其 Python 接口可快速實現(xiàn)模型轉(zhuǎn)換、量化、推理、性能與內(nèi)存評估、量化精度分析、模型加密等功能。。

RKNN Runtime 負(fù)責(zé)加載 RKNN 模型并調(diào)用 NPU 驅(qū)動完成推理,推理流程包含輸入預(yù)處理、NPU運算、輸出后處理,并根據(jù)模型輸入格式與量化方式,提供通用 API 和零拷貝 API 兩種處理流程。
- 通用API推理
提供一套簡潔易用的推理 API,流程如圖所示。數(shù)據(jù)歸一化、量化、格式轉(zhuǎn)換、反量化等在 CPU 上運行,模型推理在 NPU 上執(zhí)行。

- 零拷貝API推理
優(yōu)化了通用 API 數(shù)據(jù)處理流程,歸一化、量化與模型推理均在 NPU 上執(zhí)行,數(shù)據(jù)排布與反量化可在CPU或NPU完成;零拷貝 API 的輸入處理效率高于通用 API。

開發(fā)環(huán)境搭建
RKNN-Toolkit2安裝
首先,執(zhí)行如下命令進(jìn)行安裝Miniforge Conda:
wget -c https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh chmod 777 Miniforge3-Linux-x86_64.sh bash Miniforge3-Linux-x86_64.sh





進(jìn)入Conda base環(huán)境,創(chuàng)建一個RKNN-Toolkit2 Conda環(huán)境,命令如下:
source ~/miniforge3/bin/activate conda create -n RKNN-Toolkit2 python=3.8

進(jìn)入RKNN-Toolkit2 Conda環(huán)境:
conda activate RKNN-Toolkit2

激活RKNN-Toolkit2 Conda環(huán)境后,可通過 pip 源安裝RKNN-Toolkit2:
pip install rknn-toolkit2 -i https://pypi.org/simple

驗證RKNN-Toolkit2,若執(zhí)行以下命令沒有報錯,則安裝成功。
python3 >>> from rknn.api import RKNN

- 下載RKNN相關(guān)倉庫
執(zhí)行如下命令從github上拉群RKNN相關(guān)倉庫,后續(xù)編譯、測試會用到。
mkdir Projects cd Projects # 下載 RKNN-Toolkit2 倉庫 git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1 # 下載 RKNN Model Zoo 倉庫 git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1


- 安裝編譯工具
執(zhí)行如下命令安裝cmake工具:
sudo apt install cmake
下載GCC 交叉編譯器工具鏈:
https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz
下載后拷貝到Ubuntu虛擬機(jī)并解壓軟件包,建議將GCC軟件包解壓到 Projects的文件夾中,后面編譯RKNN C Demo時會用到:

- 安裝板端RKNPU環(huán)境
開發(fā)板硬件連接如下圖所示,燒錄網(wǎng)盤固件(全新SDK網(wǎng)盤即將發(fā)布):
IDO_EVB3588_V1B_Ubuntu22.04_2HDMI4K_251219.img。

注意:OTG接口需要連接到Ubuntu虛擬機(jī),Ubuntu虛擬機(jī)需要安裝adb命令:
sudo apt install adb
接下來,確認(rèn)板卡系統(tǒng)支持的RKNPU驅(qū)動版本,開發(fā)板上電進(jìn)入系統(tǒng),執(zhí)行以下命令查詢NPU驅(qū)動版本:
adb shell dmesg | grep -i rknpu

默認(rèn)出廠固件已支持NPU驅(qū)動,若以上命令查詢不到NPU驅(qū)動版本,在內(nèi)核源中使能如下配置以集成NPU驅(qū)動:
CONFIG_ROCKCHIP_RKNPU=y
RKNN-Toolkit2的調(diào)試功能要求板端安裝RKNPU2環(huán)境,并啟動
rknn_server服務(wù)。以下是RKNPU2 環(huán)境中的兩個基本概念:
RKNN Server:一個運行在開發(fā)板上的后臺代理服務(wù)。該服務(wù)的主要功能是調(diào)用板端 Runtime 對應(yīng)的接口處理計算機(jī)通過USB傳輸過來的數(shù)據(jù),并將處理結(jié)果返回給計算機(jī)。
RKNPU2 Runtime 庫(librknnrt.so):主要職責(zé)是負(fù)責(zé)在系統(tǒng)中加載 RKNN 模型,并通過調(diào)用專用的神經(jīng)處理單元(NPU)執(zhí)行RKNN模型的推理操作。
如果能夠啟動 rknn_server 服務(wù),則代表板端已經(jīng)安裝 RKNPU2 環(huán)境。
# 進(jìn)入板端 adb shell # 啟動 rknn_server restart_rknn.sh

檢查rknn_server、librknnrt.so版本是否一致,命令如下:
# 查詢rknn_server版本 strings /usr/bin/rknn_server | grep -i "rknn_server version" # 查詢librknnrt.so庫版本 strings /usr/lib/librknnrt.so | grep -i "librknnrt version"
如果出現(xiàn)以下輸出信息,則代表rknn_server版本為x.x.x,librknnrt.so的版本為x.x.x。

默認(rèn)出廠的固件rknn_server、librknnrt.so已經(jīng)一致,若版本不一致需要更新庫。
# 進(jìn)入前面下載的rknn-toolkit2倉庫的 rknpu2 目錄 cd Projects/rknn-toolkit2/rknpu2

拷貝上述腳本和庫替換開發(fā)板系統(tǒng)對應(yīng)的文件進(jìn)行更新:

完成以上步驟,瑞芯微原廠RKNN模型推理的開發(fā)環(huán)境就完成搭建了
-
瑞芯微
+關(guān)注
關(guān)注
27文章
861瀏覽量
54678 -
RK3588
+關(guān)注
關(guān)注
8文章
592瀏覽量
7593 -
RKNN Toolkit
+關(guān)注
關(guān)注
0文章
3瀏覽量
137 -
觸覺智能
+關(guān)注
關(guān)注
1文章
66瀏覽量
904 -
rk3588s
+關(guān)注
關(guān)注
0文章
37瀏覽量
722
發(fā)布評論請先 登錄
基于RK3588的NPU案例分享!6T是真的強!
【ELF 2學(xué)習(xí)板試用】ELF2開發(fā)板(飛凌嵌入式)搭建深度學(xué)習(xí)環(huán)境部署(RKNN環(huán)境部署)
添越智創(chuàng)基于 RK3588 開發(fā)板部署測試 DeepSeek 模型全攻略
基于米爾瑞芯微RK3576開發(fā)板的Qwen2-VL-3B模型NPU多模態(tài)部署評測
AIoT行業(yè)SoC天花板,RK3588瑞芯微旗艦芯片開發(fā)板發(fā)布!
重磅!基于瑞芯微RK3588旗艦芯片打造的MinipcRK3588面世
【飛凌RK3568開發(fā)板試用體驗】RKNN模型推理測試
已結(jié)束-【書籍評測活動NO.2】瑞芯微官方推薦,基于RK3399Pro與RK3588的深度學(xué)習(xí)實踐
iTOP-RK3588開發(fā)板更新RKNN模型
關(guān)于瑞芯微 RK3588的試用體驗
瑞芯微旗艦芯RK3588開發(fā)板開售 比亞迪為應(yīng)達(dá)利頒獎
瑞芯微(EASY EAI)RV1126B rknn-toolkit-lite2使用方法
瑞芯微RK3588 RKNN模型推理環(huán)境部署與功能測試技巧(上)
評論