SDK¶
神经网络计算卡配置¶
从AI资料U盘下载并解压GTISDK到开发板。这里解压GTISDK到/home/firefly/GTISDK中,假设SDK压缩包在当前目录下,操作如下:
firefly@firefly:~$ tar zxvf GTISDK_Linux_aarch64_v3-1-2a.tar.gz -C ~/
然后进行驱动安装。
如果使用的神经网络计算卡是NCC S1,请在固件下载或AI资料U盘中下载并烧写对应的固件,或自行编译AI资料U盘中的内核;
如果使用的神经网络计算卡是USB Dongle模块请确认SCSI的sg.ko驱动模块存在,步骤如下:
1). 内核内置确认modules.builtin中包含“kernel/drivers/scsi/sg.ko”,命令:
firefly@firefly:~$ cat /lib/modules/$(uname -r)/modules.builtin | grep sg.ko
如果打印”kernel/drivers/scsi/sg.ko“,则驱动存在请跳过2)。
2). 外置模块 使用命令:
firefly@firefly:~$ sudo modinfo sg
如果打印“modinfo: ERROR: Module sg not found.”则驱动不存在,否则存在。 如果驱动存在请确保模块已被加载,可尝试以下操作加载驱动:
firefly@firefly:~$ sudo modprobe sg
如果驱动不存在则需要自行编译并加载sg.ko模块(在内核中的选项为SCSI generic support)。
最后是安装udev配置文件。其操作如下:
firefly@firefly:~$ sudo cp -i GTISDK/Lib/Linux/aarch64/50-emmc.rules /etc/udev/rules.d/
firefly@firefly:~$ sudo udevadm control --reload
编译工具¶
SDK需要g++ 7.2.1及以上版本,使用低于7.2.1版本的g++进行编译示例代码可能会产生意想不到的问题,如果开发板系统为Ubuntu可按下列步骤进行安装:
firefly@firefly:~$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
firefly@firefly:~$ sudo apt-get update
firefly@firefly:~$ sudo install g++-7
在编译示例代码前需要先设置环境变量GTI_CC,如下:
firefly@firefly:~$ export GTI_CC=g++-7
userinput.txt配置¶
{
"Gti device type": 0,
"model": [
{
"Network name": "Gnet3",
"Image output format": 0,
"Dump input image": 0,
"eMMC write block numbers": 128,
"eMMC read delay": 5000,
"eMMC device node": "/dev/sg0",
}
]
}
Gti device type¶
设置GTI芯片型号:0为GTI 2801,1为GTI 2803。
model¶
Network name¶
此配置与PLAI训练模型实现有关。
Image output format¶
芯片返回数据格式, 0: Conv out pooling, 1: Sub layers, 2: Conv out, 3: Major layers
Dump input image¶
默认为0。
eMMC write block numbers¶
设备的一次写或读数据的扇区数,设置为2048可获得最好的性能,设置为128可兼容usb 2.0设备,但此参数与/sys/devices/下对应设备节点的具体的max_sectors值有关。
eMMC read delay¶
设备写数据和读数据之间的延时时间,单位为us,通常与网络模型有关,GNet1为12000
eMMC device node¶
第一个可能的神经网络计算卡设备节点,连接设备后可在/dev/目录下查找,通常USB Dongle为/dev/sg0,NCC S1为/dev/mmcblk1。