类脑芯片环境配置及模型交互#
作者: Shawn
类脑芯片环境配置#
要在类脑芯片上运行模型,首先需要配置好环境,其中包括带有驱动的主机、SDK、Lyngor包等。
安装驱动#
安装驱动前,先卸载旧版本的驱动:
sudo dpkg -P lyndriver
安装最新版本的驱动:
sudo dpkg -i lyndriver_1.17.0_202312281500_hp.deb
安装SDK#
安装SDK前,先卸载旧版本的SDK:
sudo dpkg -P lynsdk
安装SDK deb包:
sudo dpkg -i LynSDK_x86_64_linux_v1.17.0_202312281500_hp.deb
安装Lyngor包#
Lyngor包的安装:
pip install lyngor-1.15.0.5-cp38-cp38-linux_x86_64.whl
Lyngor1.15版本要求运行的驱动版本不低于1.15。
模型交互#
中间表示文件#
中间表示(IR), 这种IR作为模型的一种表示形式,可以直接用于 Lynxi 神经形态芯片的部署,采用 JSON 格式, 这种格式也称为LynSNN网络结构描述文件,详细的IR格式定义请参考 网络结构描述文件(IR) 。
设置hostfile
在当前运行目录下,如果没有发现一个名为hostfile的文件,则需要创建一个。 hostfile文件中,每一行代表一台机器的IP地址和端口号,格式为: .. code:: shell
127.0.0.1 slots=1
以上为单台机器的示例,如果有多台机器,则每行代表一台机器的IP地址和端口号,格式为:
192.168.1.1 slots=1
192.168.1.2 slots=1
保存中间表示文件
当调用 neurai.util.save_ir
时,会生成一个IR字典,然后使用这个字典生成一个32位散列值(dict_hash_value),
结果文件将保存在名为share_config.save_path的路径中:/tmp/neurai_data/{dict_hash_value}。
运行
使用 neurai.util.apu.run_in_apu
运行模型,如果网络是相同的,并且字典也是相同的,
那么字典的散列值就是相同的,构建可以使用缓存。
构建成功后,会产生编译产物文件,Lyngor会将其加载到芯片的内存中,并根据指定的运行时间,启动仿真运行。
计算图#
计算图格式是通过XLA编译器产生的一种通用计算图格式,可以将模型转换为 Lynxi 神经形态芯片的计算图格式。
编译
当调用 neurai.util.apu.build_nets_in_apu
时,会基于网络模型的 XLA 计算图得到一个可执行的编译文件。
该文件被保存在相对路径 ./output。
运行
当调用 neurai.util.apu.run_in_apu
在APU上运行时,会自动根据编译产物的路径加载网络,并根据指定的仿真时间启动程序运行仿真。