測評分享丨RK3399開發板+RK1808人工智能計算棒(主動模式)

一、 硬件平臺

平臺:OK3399-C

系統: Desktop

模塊: TB-RK1808S0

環境準備:

飛凌RK系列RK3399-C 開發板, rk1808 人工智能計算棒(固件版本爲 V1.3.4 ) , usb 攝像頭,攝像頭和計算棒都插入 RK3399-C開發板 。

使用 lsusb 命令查看,如下( 紅框 部分 2207:0018 即爲 RK1808 人工智能計算棒):

輸入命令如下:

在這裏插入圖片描述

RK3399-C開發板+RK1808人工智能計算棒

二、 概述
AI 計算區分爲四個不同的象限,分別是雲端訓練、雲端推理,邊緣訓練以及邊緣推理。其中終端推理,幾乎都集中在 Arm 架構生態上。 AI 神經網絡計算目前可以通過 CPU 、 GPU 、 DSP 、 NPU 、 FAGA 等完成,但不同的硬件特性會導致效率和功耗的不同。其中 NPU —— 嵌入式神經網絡處理器採用“數據驅動並行計算”的架構,最擅長的就是視頻、圖像類的海量多媒體數據的處理,並且相比 GPU 等具有更低的功耗。我司推出 OK3399-C Desktop+RK1808 (含 3Tops 算力 NPU )的組合,在滿足 AI 邊緣計算的情況下,使得功耗大幅降低。

RK1808計算棒擁有主動模式和被動模式兩種模 式。 主動模式下, RK1808 人工智能計算棒是一個專用 AI 應用模塊。 RK1808 人工智能計算棒作爲主動設備, RK1808 人工智能計算棒內部默認已安裝 rknn-toolkit 和 rknn-api ,上位機(也稱宿主機)無需安裝 rknn-toolkit 和 rknn-api ,模型及算法固化在 RK1808 人工智能計算棒中, OK3399-C 通過 USB 口向計算棒輸入數據(例如圖片和視頻流), RK1808 人工智能計算棒自動完成數據的前處理、推理、後處理,然後把處理結果通過 USB 口輸出給 OK3399-C。

爲了方便用戶通過 USB 口傳輸數據, RK1808 人工智能計算棒會把 USB 口虛擬成網卡等標準設備,用戶只需通過標準設備接口的操作(例如網絡的 socket 編程)即可完成對 RK1808 人工智能計算棒數據的輸入和輸出。

細節如下:

    1.RK1808 計算棒插入上位機後,會被虛擬成網卡設備

    2. 上位機 RK3399-C 進行虛擬網卡配置,配置 IP 爲 192.168.180.1 ,保證上位機和 1808 中間的網絡連接正常

    3. 計算棒默認 IP 爲 192.168.180.8 ,賬號密碼皆爲 toybrick ,用戶可以 SSH 登錄計算棒,拷貝模型和 server 服務程序到計算棒

    4. 計算棒端運行 server 服務程序,用來接收上位機的連接請求,並調用 RKNN 進行處理,再返回結果

    5. 上位機運行 client 程序,連接 server 成功之後,發送推理請求,從 1808 端獲取返回結果

RK3399-C開發板+RK1808人工智能計算棒

在這裏插入圖片描述

三、 計算棒網絡 配置與網絡 共享 配置

1 、 計算棒網絡 配置
上位機使用 RK3399-C Forlinx Desktop 系統 ,點擊右下角網絡按鈕選擇彈出窗口中的 “ Edit Connections… ”選項:
在這裏插入圖片描述

RK3399-C開發板+RK1808人工智能計算棒

選擇計算棒 usb 網卡生成的有線網絡節點:
在這裏插入圖片描述
RK3399-C開發板+RK1808人工智能計算棒

配置該節點爲手動模式,設置 IP : 192.168.180.1 ,子網掩碼: 255.255.255.0 ,並保存:
在這裏插入圖片描述
RK3399-C開發板+RK1808人工智能計算棒

終端輸入 ifconfig 指令查看網絡節點配置如下,可見 usb 網卡配置完成:
在這裏插入圖片描述
RK3399-C開發板+RK1808人工智能計算棒

ping 一下 1808 計算棒網絡 192.168.180.8 ,如下網絡可以連通:
在這裏插入圖片描述
OK3399-C開發板+RK1808人工智能計算棒

使用 ssh 登錄 1808 計算棒,用戶名和密碼默認都爲 toybrick ,如下登陸成功:
在這裏插入圖片描述
OK3399-C開發板+RK1808人工智能計算棒

2 、網絡 共享 配置
運行 ifconfig ,可以看到 e th0 、 wlan0 等宿主機 網卡, 我們 用於訪問外網, enx10dcb69f022c 爲 USB 網卡( RK1808 人工智能計算棒虛擬網卡)。不同的系統網卡名稱可能不一樣,以實際網卡名稱爲準。
在這裏插入圖片描述
OK3399-C開發板+RK1808人工智能計算棒

首先配置宿主機網絡,使宿主機可以連通以太網,這裏我們使用 wlan0 節點來上網,具體配置不再贅述。

命令行執行如下命令,其中 enx10dcb69f022c 需要修改成用戶本地實際值;正常情況只要設置一次即可,若拔插設備發現網卡名稱改變了或者用戶手動刪除該網卡,則需要重新設置。

  1. sudo nmcli connection add con-name toybrick type ethernet ifname enx10dcb69f022c autoconnect yes ip4 192.168.180.1/24

配置 NAT 功能,執行如下命令,其中 eno1 需要修改成用戶本地實際值;關機失效,所以每次電腦重啓都要重新設置。

  1. sudo sysctl -w net.ipv4.ip_forward=1

sudo iptable -F

sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

注意: 以自己開發板聯網的實際端口爲準,例: eth0

iptables 命令部分釋義如下:

iptables --help

–flush -F [chain]Delete all rules in chain or all chains

–table -t tabletable to manipulate (default: `filter’)

–append -A chainAppend to chain

–jump -j targettarget for rule (may load target extension)

MASQUERAD ,地址僞裝,算是 snat 中的一種特例,可以實現自動化的 snat

SNAT 是 source networkaddress translation 的縮寫,即源地址目標轉換。比如,多個 PC 機使用 ADSL 路由器共享上網,每個 PC 機都配置了內網 IP , PC 機訪問外部網絡的時候,路由器將數據包的報頭中的源地址替換成路由器的 ip ,當外部網絡的服務器比如網站 web 服務器接到訪問請求的時候,他的日誌記錄下來的是路由器的 ip 地址,而不是 pc 機的內網 ip ,這是因爲,這個服務器收到的數據包的報頭裏邊的“源地址”,已經被替換了,所以叫做 SNAT ,基於源地址的地址轉換。

DNAT 是 destination networkaddress translation 的縮寫,即目標網絡地址轉換,典型的應用是,有個 web 服務器放在內網配置內網 ip ,前端有個防火牆配置公網 ip ,互聯網上的訪問者使用公網 ip 來訪問這個網站,當訪問的時候,客戶端發出一個數據包,這個數據包的報頭裏邊,目標地址寫的是防火牆的公網 ip ,防火牆會把這個數據包的報頭改寫一次,將目標地址改寫成 web 服務器的內網 ip ,然後再把這個數據包發送到內網的 web 服務器上,這樣,數據包就穿透了防火牆,並從公網 ip 變成了一個對內網地址的訪問了,即 DNAT ,基於目標的網絡地址轉換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章