2.2.4. 软件安装指南

在 “1.1 算丰硬件产品概览” 中,我们介绍了我们目前的四种产品形态:SC、SE、SA、SM。 其中,SM 属于定制化的产品,因此在这里不做详细介绍。 SC 系列产品为 PCIE 模式的加速卡,作为协处理器接受 X86 主机 CPU 的调用。 SE 和 SA 系列产品为 SOC 模式,该模式下,操作系统运行在 TPU 内存上,由 TPU 上的 ARM 处理器负责管理和调度。

对于 SE 和 SA 系列产品的模型部署,我们通常在 X86 系统上编译模型生成 bmodel,再在 SE 和 SA 产品上部署。 而在 SE 和 SA 系列产品上,我们已经预装了 SophonSDK 中的全部运行时模块。 因此,在这里我们只介绍 X86 主机下 PCIE 模式的 SophonSDK 的安装。 如果你希望你的模型最终运行在 SE 或 SA 产品上,那么只需了解 X86 主机下 SophonSDK 中的 离线模型编译工具的安装过程。

2.2.4.1. 获取软件包并安装链接库

SophonSDK 以 tar 包的形式发布。 命名方式为 sophonsdk3_vx.x.x.tar.gz。 其中,3 代表版本号为 3,x.x.x 为详细版本号。 解压该软件包后,我们用 ${SDK} 来代替软件包的主目录。

由于 SophonSDK 中存在由不同版本内核编译生成的链接库,因此在解压完之后, 我们需要根据当前主机的内核版本来选择适当的链接库。 对此,我们提供了对应脚本。每次解压完之后只需运行一次下列命令即可。

cd ${SDK}/scripts/
./install_lib.sh nntc

2.2.4.2. 离线模型编译工具安装

在 ”1.2.2 SophonSDK“ 中我们介绍了 SophonSDK 中的所有软件模块。 离线模型编译工具包括了 Quantization & Calibration tool 和 BMCompiler。 我们提供了一个脚本来完成离线工具的安装,每次进入终端之后运行以下命令即可完成安装。

cd ${SDK}/scripts/
source envsetup_pcie.sh

需要注意的是,由于 BMCompiler 依赖有比较多的依赖包,比如 bmnett 依赖 tensorflow, bmnetp 依赖 pytorch,bmnetm 依赖 mxnet。 因此,如果你只需要其中某一个工具,可以带参数运行该脚本,如下:

cd ${SDK}/scripts/
# 安装 Quantization & Calibration Tool
source envsetup_pcie.sh ufw
# 安装 bmnetu
source envsetup_pcie.sh bmnetu
# 安装 bmnetd
source envsetup_pcie.sh bmnetd
# 安装 bmnett
source envsetup_pcie.sh bmnett
# 安装 bmnetp
source envsetup_pcie.sh bmnetp
# 安装 bmnetm
source envsetup_pcie.sh bmnetm
# 安装 bmnetc
source envsetup_pcie.sh bmnetc
# 安装 bmpaddle
source envsetup_pcie.sh bmpaddle

2.2.4.3. 运行时工具安装

目前,在pcie模式下需要安装的运行时工具只有 BMDriver 和 Sophon Inference 的 python 包, soc模式已预装,请忽略此步骤。

安装 BMDriver 应当在宿主机上进行,且需要 root 权限,BMDriver 会在主机上编译并安装到系统内核中。

cd ${SDK}/scripts/
sudo ./install_driver_pcie.sh

安装 Sophon Inference 可以在宿主机上或者提供的基础开发docker环境中(推荐方式)进行,需要根据实际环境中的python版本选择相应的包安装:

# 以python3.8为例
cd ${SDK}/lib/sail/python3/pcie/py38
pip3 install --user sophon-x.x.x-py3-none-any.whl