USB神經網路計算卡在ARM Linux上之功能展示

接續這篇文章,本文說明如何將USB將USB神經網路計算卡在ARM平台Linux作業系統展示。本次使用的硬體平台為Raspberry Pi 3 Model B+ 樹莓派,軟體使用官方Raspbian Stretch with desktop and recommended software版本;整體組態如下所示:

Raspberry Pi 3 Model B+有四個USB 2.0連接埠,本次只用到兩個;外側上方連接USB神經網路計算卡,下方透過USB Hub(圖上未顯示)連接鍵盤與滑鼠。另外連接電源及透過HDMI線連接螢幕,MicroSD卡則用做開機,其內存放Raspbian作業系統。開機後,將USB神經網路計算卡的Linux ADK軟體套件(GTI2801_ADK.tar.gz)放到家目錄中並進行解壓縮:

tar zxfv GTI2801_ADK.tar.gz 

到工具目錄,安裝OpenCV:

cd GTI2801_ADK/V1.2/Tools/

source install_opencv.sh

過程中需要網路安裝所需套件,請保持網際網路的連線。編譯過程需要一段時間,有一個步驟會讓系統整個卡住,請耐心等待。編譯完成後回到ADK的根目錄,並執行build.sh以進行環境設定:

cd ../../../

sudo sh build.sh

完成後先將USB神經網路計算卡從Raspberry Pi 3 Model B+移除後再次連接,讓系統獲取正確的組態。 再下來編譯展示程式,切換到展示程式的專案目錄並設定Makefile:

cd Samples/Linux/Sample_Gnet1

cp makefile_armv7 makefile

說明一下雖然Raspberry Pi 3 Model B+是使用64bits ARMv8指令集的CPU,但Raspbian作業系統目前還是使用32bits ARMv7指令集,所以在此選擇makefile_armv7。 由於廠商給的Makefile有問題,編譯前請做以下修改(編輯器命令 : leafpad makefile):

LIBS = -lopencv_world -lGTILibrary-static -lpthread -lX11 -lGTILibrary_FC-static -lGTI_checkvaild

修改後用以下命令編譯:

make clean;make -j4

完成後用以下命令執行展示:

./cnnSample

由於USB神經網路計算卡是連接在USB 2.0上,執行程式後可能會發生以下錯誤:

這時請參考ADK內的FAQ說明進行調整,另外開一個”終端機”視窗來設定環境,如下所示:

sudo chmod 777 /dev/sg*

cd /sys/devices
find -name "max_sectors"
cd ./platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/host0/target0:0:0/0:0:0:0/
cat max_sectors

sudo su

echo 2048 > max_sectors

設定完成後回到原先”終端機”視窗再次執行,正常運作的結果如下圖所示:

由於Raspberry Pi 3 Model B+只有USB 2.0連接埠,傳輸速度不是很快。若要讓Lightspeeur 2801S晶片達到最佳運算速度,可參考廠商提供的配套方案:

來源 : https://store.t-firefly.com/goods.php?id=85 (2109年1月7日)

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *