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分为:

  1. Linux x86_64包:支持Linux x86_64和Android (armeabi-v7a和arm64-v8a)

  2. Linux armv7l包:支持Linux armv7l

  3. Linux aarch64包:支持Linux aarch64

  4. 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

待添加…