SDK¶
GTI SDK (Gyrfalcon Technology Inc.’s Artificial Intelligence network Software Development Kit)包括用于GTI系列芯片解决方案的硬件驱动库和支持库,可用于构建定制的AI网络和推理应用程序。
此文档是适用于5.0及更高版本的SDK,5.0以下的版本请访问旧的wiki:NCC S1
SDK内容¶
GTI SDK分为:
Linux x86_64包:支持Linux x86_64和Android (armeabi-v7a和arm64-v8a)
Linux armv7l包:支持Linux armv7l
Linux aarch64包:支持Linux aarch64
Windows10 x84_64包(不做支持)
每个包中包含对应CPU架构的系统的App demo和所需的模型与数据,可在Apps
目录中找到。
Tools目录会有如芯片测试、模型解包打包等工具。
节点与设置¶
SPR 2801S¶
板载的SPR 2801S的节点为/dev/sgx
(USB连接的NPU,x为一整数,由系统分配),GTI SDK v5.x需要将max_sectors
设置为2048
。
可以通过以下参考命令临时设置:
# 需要root权限
find /sys/devices/ -name max_sectors -exec sh -c 'echo 2048 > "$1"' _ {} \;
chmod 777 /dev/sg*
或者参考下文的自动设置。
SPR 5801S¶
SPR 5801S的节点为/dev/bus/usb/00x/00x
(x为一整数,每次开机都会变),具体的节点通过lsusb
可找到,如:
firefly@firefly:~$ lsusb
Bus 006 Device 002: ID 300c:5801
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 1c4f:0016 SiGma Micro
Bus 001 Device 002: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
其中ID为300c:5801的usb即为SPR 5801s设备,可知道此时的设备节点为/dev/bus/usb/006/002
。
可以通过以下参考命令临时设置权限:
chmod 777 /dev/bus/usb/* -R
或者参考下文的自动设置。
自动设置¶
Linux¶
在Linux下通过udev可以设置GTI NPU默认的权限和属性,规则文件在Lib/Linux/对应的CPU架构下可找到,如Lib/Linux/aarch64。
将规则文件复制到/etc/udev/rules.d/
,然后执行udevadm control --reload-rules && udevadm trigger
或者重启。
如:
sudo cp Lib/Linux/aarch64/*.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
# 或 sudo reboot
通过此设置系统会自动设置GTI NPU的权限,不需要手动去设置了。
Android¶
待添加…