类脑芯片环境配置及模型交互#

作者: 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)

  1. 设置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
  1. 保存中间表示文件

当调用 neurai.util.save_ir 时,会生成一个IR字典,然后使用这个字典生成一个32位散列值(dict_hash_value), 结果文件将保存在名为share_config.save_path的路径中:/tmp/neurai_data/{dict_hash_value}。

  1. 运行

使用 neurai.util.apu.run_in_apu 运行模型,如果网络是相同的,并且字典也是相同的, 那么字典的散列值就是相同的,构建可以使用缓存。 构建成功后,会产生编译产物文件,Lyngor会将其加载到芯片的内存中,并根据指定的运行时间,启动仿真运行。

计算图#

计算图格式是通过XLA编译器产生的一种通用计算图格式,可以将模型转换为 Lynxi 神经形态芯片的计算图格式。

  1. 编译

当调用 neurai.util.apu.build_nets_in_apu 时,会基于网络模型的 XLA 计算图得到一个可执行的编译文件。 该文件被保存在相对路径 ./output

  1. 运行

当调用 neurai.util.apu.run_in_apu 在APU上运行时,会自动根据编译产物的路径加载网络,并根据指定的仿真时间启动程序运行仿真。