2. 引言

2.1. 术语解释

术语

说明

BM1684X

算能科技面向深度学习领域推出的第四代张量处理器

BM1684

算能科技面向深度学习领域推出的第三代张量处理器

TPU

BM1684/BM1684X芯片中的神经网络运算单元

VPU

BM1684芯片中的解码单元

VPP

BM1684/BM1684X芯片中的图形运算加速单元

JPU

BM1684/BM1684X芯片中的图像jpeg编解码单元

SophonSDK

算能科技基于BM1684/BM1684X芯片的原创深度学习开发工具包

PCIe Mode

BM1684/BM1684X的一种工作形态,芯片作为加速设备来进行使用,客户算法运行于x86主机

SoC Mode

BM1684/BM1684X的一种工作形态,芯片本身作为主机独立运行,客户算法可以直接运行其上

arm_pcie Mode

BM1684/BM1684X的一种工作形态,搭载芯片的板卡作为PCIe从设备插到ARM cpu的服务器上,客户算法运行于ARM cpu的主机上

BMCompiler

面向算能科技TPU处理器研发的深度神经网络的优化编译器,可以将深度学习框架定义的各种深度神经网络转化为 TPU 上运行的指令流

BMRuntime

TPU推理接口库

BMCV

图形运算硬件加速接口库

BMLib

在内核驱动之上封装的一层底层软件库,设备管理、内存管理、数据搬运、API发送、A53使能、功耗控制

UFramework(ufw)

算能自定义的基于Caffe的深度学习推理框架,用于将模型与原始框架解耦以便验证模型转换精度和完成量化

BMNetC

面向Caffe的BMCompiler 前端工具

BMNetD

面向Darknet的BMCompiler前端工具

BMNetM

面向MxNet的 BMCompiler 前端工具

BMNetO

面向ONNX的BMCompiler前端工具

BMNetP

面向PyTorch的 BMCompiler 前端工具

BMNetT

面向TensorFlow的BMCompiler 前端工具

BMNetU

INT8量化模型的BMCompiler前端工具

BMPaddle

面向Paddle Paddle的BMCompiler前端工具

Umodel

算能自定义的UFamework下的模型格式,为量化模型时使用的中间模型格式

BModel

面向算能TPU处理器的深度神经网络模型文件格式,其中包含目标网络的权重(weight)、TPU指令流等

BMLang

面向TPU的高级编程模型,用户开发时无需了解底层TPU硬件信息

TPUKernel

基于TPU原子操作(根据芯片指令集封装的一套接口)的开发库,需熟悉芯片架构、存储细节

SAIL

支持Python/C++接口的Sophon Inference推理库,是对BMCV、BMDecoder、 BMLib、BMRuntime等的进一步封装

TPU-MLIR

TPU 编译器工程,可以将不同框架下预训练的神经网络,转化为可以在算能TPU上高效运算的bmodel

winograd

一种卷积的加速算法

2.2. 对比说明

升级后的Sophon SDK与之前的BMNNSDK2、SophonSDK3存在一些区别,主要区别包括:

区别

Sophon SDK

SophonSDK3

BMNNSDK2

适配芯片

BM1684、BM1684X

BM1684、BM1684X

BM1684

发布方式

将各个模块解耦,分别提供tar和deb包。

提供统一的tar开发包, 包含Compiler和Library。

提供统一的tar开发包,包含Compiler,Library和 Examples。

驱动安装

安装sophon-driver_x.y.z_amd64.deb包

使用install_driver_{target}.sh安装

NNToolchain、Quantization-Tools

提供tpu-nntc_vx.y.z-<hash>-<data>.tar.gz安装使用

包含于SophonSDK3

包含于BMNNSDK2

BMCV、BMRuntime、BMLib

提供sophon-libsophon_x.x.x_amd64.deb包,安装后位于/opt/sophon/libsophon-current

包含于SophonSDK3

包含于BMNNSDK2

多媒体库

提供sophon-mw-x.x.x_amd64.deb包,安装后位于/opt/sophon/sophon-ffmpeg-latest、/opt/sophon/sophon-opencv-latest、/opt/sophon/opencv-bmcpu-latest

包含于SophonSDK3

包含于BMNNSDK2

pipeline例程

开源至github仓库,sophon-pipeline

https://github.com/sophon-ai-algo/sophon-inference

算法例程

开源至github仓库(暂未发布)

https://github.com/sophon-ai-algo/examples/tree/2.7.0

${BMNNSDK}/examples

注解

其中x.y.z为版本号

2.3. 注意事项

  • 新的Sophon SDK不再提供官方docker,可直接在宿主机上使用deb包安装软件库包,也可以参考《LIBSOPHON使用手册》第6章构建自己的镜像。

  • PCIE模式下,如果已经装了BM1684 SDK 的驱动,请先卸载旧的 BM1684 SDK 的驱动,再安装sophon-driver_x.y.z_amd64.deb包,具体可参考《LIBSOPHON使用手册》第3章。

  • sophon-mw-sophon-ffmpeg 依赖 sophon-libsophon 包,而 sophon-mw-sophon-opencv 依赖 sophon-mw-sophon-ffmpeg,因此在安装次序上必须先安装 libsophon,然后 sophon-mw-sophon-ffmpeg,最后安装 sophon-mw-sophon-opencv。

  • 推荐使用cmake中的find_package查找libsophon和sophon-mw的库包,并链接到自己的程序中。

  • 部分头文件不包含于libsophon,如bm_wrapper.hpp、utils.hpp。

  • SOC模式下,原来/system下的软件库包,现位于/opt/sophon/下。

  • SOC模式下,通过开机时的systemd服务,自动加载/opt/sophon/libsophon-current/data下的ko内核模块。如用户定义的自启动服务,并且依赖BM168X芯片,请确保在ko加载后启动。

  • 新的TPU-NNTC使用tpu_model替换原来的bm_model.bin,使用方法相同。

2.4. 授权

BMNNSDK/SophonSDK是算能科技自主研发的原创深度学习开发工具包,未经算能科技事先书面授权,其它第三方公司或个人不得以任何形式或方式复制、发布和传播。

2.5. 帮助与支持

​ 在使用过程中,如有关于SophonSDK的任何问题或者意见和建议,请联系相关技术支持。