NNToolChain 安装说明

Compiler部分离线运行在X86平台,该平台不用包含BM168x产品。 Runtime部分运行则在PCIE模式、SOC模式和CMODEL模式下。

  • PCIE模式:SDK运行于X86平台,BM168x作为PCIE接口的深度学习计算加速卡存在;

  • SOC模式:SDK独立运行于BM168x平台,支持通过千兆以太网与其他设备连接;

  • CMODEL模式:SDK运行在X86平台,并脱离BM168x运行,用于在没有芯片的模式下进行软件仿真。

在 docker 环境使用工具链软件,最新版本的 docker 可以参考 官方教程 进行安装。安装完成后,执行下面的脚本将当前用户加入 docker 组,获得 docker 执行权限。

sudo usermod -aG docker $USER
newgrp docker

从官网上下载tpu-nntc的压缩包,命名如 tpu-nntc_vx.y.z-<hash>-<date>.tar.gz

mkdir tpu-nntc
# 将压缩包解压到tpu-nntc
tar zxvf tpu-nntc_vx.y.z-<hash>-<date>.tar.gz --strip-components=1 -C tpu-nntc

tpu-nntc使用的docker是 sophgo/tpuc_dev:latest, docker镜像和tpu-nntc有绑定关系,少数情况下有可能更新了tpu-nntc,需要新的镜像

cd tpu-nntc

# 进入docker,如果当前系统没有对应镜像,会自动从docker hub上下载
# 将tpu-nntc的上一级目录映射到docker内的/workspace目录
# 这里用了8001到8001端口映射,之后在使用ufw可视化工具会用到
# 如果端口已经占用,请更换其他未占用端口,后面根据需要更换进行调整
docker run -v $PWD/..:/workspace -p 8001:8001 -it T

# 此时已经进入docker,并在/workspace目录下
# 下面初始化软件环境
cd /workspace/tpu-nntc
source scripts/envsetup.sh

其他docker初始化方式:

如果是离线环境,可以先提前下载,然后导入到目标机上,命令如下:

# 在可以联网的机器上, 保存镜像
docker pull sophgo/tpuc_dev:latest
docker save sophgo/tpuc_dev:latest -o sophon_tpuc_dev.docker

# 将sophon_tpuc_dev_docker.tar复制到目标机器上后
docker load -i sophon_tpuc_dev.docker

此外,tpu-nntc在scripts目录提供了docker_setup.sh脚本, 供参考和方便基本使用,实际使用中可根据需求自行管理。使用方法如下:

# docker_setup.sh 后面参数来指定哪个目录作为工作目录,映射到docker里的/workspace
# 这里用 tpu-nntc 的上一级目录
scripts/docker_setup.sh ..

# 会输出以下信息,如果8001端口占用,会自动选择其他未占用端口
# ...
# OPEN 'http://localhost:8001' IN WEB BROWSER WHEN 'python3 -m ufw.tools.app' RUNNING IN DOCKER