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 |
||
算法例程 |
开源至github仓库(暂未发布) |
${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的任何问题或者意见和建议,请联系相关技术支持。