4. AXCL 安装#
4.1. Raspberry Pi 5#
4.1.1. 准备事项#
警告
根据树莓派硬件批次不同,可能需要更新一下树莓派的 EEPROM 设置。具体步骤如下:
如同 PC 中的 BIOS,EEPROM 设置独立于烧录 OS 的 TF 卡,烧录最新的树莓派镜像或者切换镜像版本并不会主动更新 EEPROM 的设置。首先执行 update:
sudo apt update && sudo apt full-upgrade
然后检查一下 EEPROM 中的版本:
sudo rpi-eeprom-update
如果看到的日期早于 2023 年 12 月 6 日,运行以下命令以打开 Raspberry Pi 配置 CLI:
sudo raspi-config
在 Advanced Options > Bootloader Version (引导加载程序版本) 下,选择 Latest (最新)。然后,使用 Finish 或 ESC 键退出 raspi-config。
执行以下命令,将固件更新到最新版本。
sudo rpi-eeprom-update -a
最后使用 sudo reboot 重新启动。重启后就完成了 EEPROM 中 firmware 的更新。
警告
取决于使用的树莓派 kernel 状态,目前的修改是以 2024年11月18日 以前的树莓派刚烧录好的系统为例进行说明的,客户需要根据树莓派系统更新情况识别这个步骤是否必须。
在当前的树莓派 kernel 和 M.2 HAT+ 组合中,可能会遇到如下限制:
PCIE Device 无法识别
PCIE MSI IRQ 无法申请多个
这些问题将导致安装失败或者子卡起不来。需要检查 Raspberry Pi 5 /boot/firmware/config.txt 文件,并进行修改。
如果是第三方的兼容 M.2 HAT+ 产品,需要注意供电问题;在 config.txt 中添加如下描述:
dtparam=pciex1
该描述可以默认打开 PCIE 功能;然后继续增加 PCIE 的设备描述:
dtoverlay=pciex1-compat-pi5,no-mip
完成修改并重启后,可以使用 lspci 命令检查加速卡是否正确被识别:
axera@raspberrypi:~ $ lspci
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0000:01:00.0 Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev 01)
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0001:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
其中 Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev 01) 就是 AX650 加速卡。
4.1.2. 软件包获取#
警告
请根据板卡上实际内存大小,选择对应版本的 AXCL 驱动。不同板卡厂家的 AXCL 驱动包原则上不能混用。
4.1.3. 安装安装包#
警告
开发板需要编译支持,依赖 gcc, make, patch, linux-header-$(uname -r) 这几个包。需要提前安装好,或者保证安装时网络可用。
将 aarch64 deb 包复制到树莓派开发板上,运行安装命令:
sudo dpkg -i axcl_host_aarch64_V2.16.1_20241118020146_NO4446.deb
安装将很快完成。安装时会自动增加环境变量,使得安装的 .so 和可执行程序可用。需要注意的是,如果需要可执行程序立即可用,还需要更新 bash 终端的环境:
source /etc/profile
如果是 ssh 的方式远程连接的板卡,还可以选择重连 ssh 进行自动更新(本机终端登录还可以重开一个终端进行自动更新)。
4.1.4. 启动子卡#
deb 包安装完成后将会自动启动子卡,无需再执行
axclboot启动子卡主机启动时,将会自动启动子卡
4.1.5. 安装成功测试#
4.1.5.1. AXCL-SMI#
正确安装 AXCL 驱动包后,AXCL-SMI 即安装成功,直接执行axcl-smi显示内容如下:
axera@raspberrypi:~ $ axcl-smi
+------------------------------------------------------------------------------------------------+
| AXCL-SMI V3.0.1_20250318020150 Driver V3.0.1_20250318020150 |
+-----------------------------------------+--------------+---------------------------------------+
| Card Name Firmware | Bus-Id | Memory-Usage |
| Fan Temp Pwr:Usage/Cap | CPU NPU | CMM-Usage |
|=========================================+==============+=======================================|
| 0 AX650N V3.0.1 | 0000:01:00.0 | 147 MiB / 945 MiB |
| -- 56C -- / -- | 0% 0% | 18 MiB / 7040 MiB |
+-----------------------------------------+--------------+---------------------------------------+
+------------------------------------------------------------------------------------------------+
| Processes: |
| Card PID Process Name NPU Memory Usage |
|================================================================================================|
4.1.5.2. UT TEST#
正确安装 AXCL 驱动包后,默认会安装一系列 UT Test 执行程序。
axera@raspberrypi:~ $ axcl_ut_
axcl_ut_cmm axcl_ut_npu axcl_ut_pool axcl_ut_rt_engine axcl_ut_rt_memory axcl_ut_vdec
axcl_ut_ive axcl_ut_package axcl_ut_rt_context axcl_ut_rt_init axcl_ut_rt_p2p axcl_ut_venc
axcl_ut_msys axcl_ut_pcie_rc axcl_ut_rt_device axcl_ut_rt_latency axcl_ut_rt_stream
可选择性运行 axcl_ut_rt_engine,axcl_ut_rt_memory 等用例进行自检。
axera@raspberrypi:~ $ axcl_ut_rt_engine
device index: 0, bus number: 1
[==========] Running 11 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 11 tests from axclrtDeviceTest
[ RUN ] axclrtDeviceTest.Case01_AXCL_EngineInitFinal
[ OK ] axclrtDeviceTest.Case01_AXCL_EngineInitFinal (211 ms)
[ RUN ] axclrtDeviceTest.Case02_axclrtEngineGetVNpuKind
[ OK ] axclrtDeviceTest.Case02_axclrtEngineGetVNpuKind (831 ms)
[ RUN ] axclrtDeviceTest.Case03_axclrtEngineGetModelTypeFromMem
[ OK ] axclrtDeviceTest.Case03_axclrtEngineGetModelTypeFromMem (935 ms)
[ RUN ] axclrtDeviceTest.Case04_axclrtEngineLoadFromMem
[ OK ] axclrtDeviceTest.Case04_axclrtEngineLoadFromMem (832 ms)
[ RUN ] axclrtDeviceTest.Case05_axclrtEngineCreateContext
[ OK ] axclrtDeviceTest.Case05_axclrtEngineCreateContext (831 ms)
[ RUN ] axclrtDeviceTest.Case06_axclrtEngineGetModelTypeFromModelId
[ OK ] axclrtDeviceTest.Case06_axclrtEngineGetModelTypeFromModelId (830 ms)
[ RUN ] axclrtDeviceTest.Case07_axclrtEngineGetModelCompilerVersion
[ OK ] axclrtDeviceTest.Case07_axclrtEngineGetModelCompilerVersion (831 ms)
[ RUN ] axclrtDeviceTest.Case08_axclrtEngineGetUsageFromModelId
[ OK ] axclrtDeviceTest.Case08_axclrtEngineGetUsageFromModelId (831 ms)
[ RUN ] axclrtDeviceTest.Case09_axclrtEngineSetGetAffinity
[ OK ] axclrtDeviceTest.Case09_axclrtEngineSetGetAffinity (207 ms)
[ RUN ] axclrtDeviceTest.Case10_axclrtEngineGetIOInfo
[ OK ] axclrtDeviceTest.Case10_axclrtEngineGetIOInfo (207 ms)
[ RUN ] axclrtDeviceTest.Case11_axclrtEngineExecute
[ OK ] axclrtDeviceTest.Case11_axclrtEngineExecute (279 ms)
[----------] 11 tests from axclrtDeviceTest (6834 ms total)
[----------] Global test environment tear-down
[==========] 11 tests from 1 test suite ran. (6835 ms total)
[ PASSED ] 11 tests.
============= UT PASS =============
4.1.6. 卸载安装#
sudo dpkg -r axclhost
警告
卸载的包名不是安装包的名字,是项目包名,即 axclhost。
deb 包卸载时,会自动 reset 子卡,子卡进入pcie download mode。