MLU-OPS 提供基于寒武纪人工智能单元(MLU),使用 C 接口或者 Python 接口开发高性能算子的示例代码。 MLU-OPS 旨在通过提供示例代码,供开发者参考使用,可用于开发自定义算子,实现对应模型的计算。
MLU-OPS 提供了以下功能:
- 算子精度标准
- 算子性能标准
- Op List (高质量实现 BANG C 算子)
- 测试模块 GTest 支持 内存泄露测试、代码覆盖率测试
- Gen-case (运行时测例生成工具)
- Perf-Analyse (算子性能分析工具)
- 操作系统:
- 支持 x86_64 下 Ubuntu18.04、Ubuntu20.04、Centos7.6、Centos8.5、Kylin10
- 寒武纪 MLU SDK:
- 编译和运行时依赖 CNToolkit v3.6.1 或更高版本
- 寒武纪 MLU 驱动:
- 运行时依赖驱动 v5.10.15 或更高版本
- 外部链接库:
- libxml2-dev、libprotobuf-dev<=3.8.0、protobuf-compiler<=3.8.0、llvm-6.0-dev
- Python环境:
- 依赖Python-3.8.0版本
-
获取 MLU-OPS 代码
git clone https://github.com/Cambricon/mlu-ops.git cd mlu-ops git submodule update --init --recursive
-
准备 CNToolkit 环境
sudo apt-get install ./cntoolkit-x.x.x_ubuntuxx.xx_amd64.deb sudo apt-get update sudo apt-get install cncc cnas cnbin cndrv cnrt cnrtc
-
准备 Python-3.8.0 环境
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz tar -xvf Python-3.8.0.tgz cd Python-3.8.0 make -j24 && make install
-
准备 BANGPy 环境
获取 BANGPy 最新版发布包:(https://cair.cambricon.com/)
pip3.8 install bangpy-x.x.x-py3-none-any.whl
-
准备链接库环境
sudo apt-get update sudo apt-get install protobuf-compiler libxml2-dev libprotobuf-dev llvm-6.0-dev
当前 C 接口(BANGC
)、 Python 接口(BANGPy
)算子开发、编译及测试相互独立
BANGC
算子见 BANGC-OPS 算子开发流程、README.mdBANGPy
算子见 BANGPy-OPS 算子开发流程、README.md
更多内容见 docs 目录下文档。
可查看最新版 开发者文档
- BANG C/C++ 编程指南
- BANG C Developer Guide
- MLU 架构调优指南
- CNRT Developer Guide
- CNRTC Developer Guide
- CNDrv Developer Guide
- CNGDB Developer Guide
- Libdevice Developer Guide
目录/文件 | 描述 |
---|---|
bangc-ops | C 接口算子开发目录 |
bangpy-ops | Python 接口算子开发目录 |
docker | 存放 docker 打包脚本,提供 CI 构建环境。 |
docs | 算子开发、测试、精度验收的说明文档。 |