- 为了提供更好的开发体验,我们为您提供包含寒武纪完整软件栈的容器镜像,帮助您跳过环境部署环节
- 如需获取该容器镜像,可提
ISSUE
留下您的联系方式
MLU-OPS™提供基于寒武纪人工智能单元(MLU),使用 C 接口开发高性能算子的示例代码。 MLU-OPS™旨在通过提供示例代码,供开发者参考使用,可用于开发自定义算子,实现对应模型的计算。
MLU-OPS™提供了以下功能:
- 算子精度标准
- 算子性能标准
- Op List (高质量实现 BANG C 算子)
- CNNL基础算子使用
- 测试模块 GTest 支持 内存泄露测试、代码覆盖率测试
- Gen-case (运行时测例生成工具)
- Perf-Analyse (算子性能分析工具)
- 操作系统:
- 支持 x86_64 架构下的 Ubuntu22.04、Centos7.6、Centos8.5、Kylin10
- MLU-OPS™ v1.0.0版本后将不再支持 Ubuntu18.04。
- MLU-OPS™ v1.4.1版本后将不再支持 Ubuntu20.04。
- 寒武纪 MLU SDK:
- 编译和运行时依赖 CNToolkit v3.15.2 或更高版本,CNNL v1.28.0 或者更高版本
- 寒武纪 MLU 驱动:
- 运行时依赖驱动 v6.0.3 或更高版本
- 外部链接库:
- libxml2-dev、libprotobuf-dev、protobuf-compiler、llvm-6.0-dev、libfmt-dev>=11.0.2、libeigen3-dev>=3.4
- Python环境:
- 依赖Python-3版本(默认版本 python 3.8.0,最低要求 python 3.6.0)
- 获取 MLU-OPS™ 代码
以Ubuntu20.04版本为例
git clone https://github.com/Cambricon/mlu-ops.git
cd mlu-ops
git submodule update --init --recursive
-
准备 CNToolkit、CNNL 环境
wget https://sdk.cambricon.com/static/Basis/MLU370_X86_ubuntu22.04/cntoolkit_x.x.x-x.ubuntu22.04_amd64.deb wget https://sdk.cambricon.com/static/Basis/MLU370_X86_ubuntu22.04/cnnl_x.x.x-x.ubuntu22.04_amd64.deb sudo apt-get install ./cntoolkit-x.x.x-x.ubuntu22.04_amd64.deb sudo apt-get update sudo apt-get install cncc cnas cnbin cndrv cndev cnrt cnrtc cngdb cnperf sudo apt-get install ./cnnl_x.x.x-x.ubuntu20.04_amd64.deb
-
准备 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
-
准备链接库环境
- apt-get安装依赖库
sudo apt-get update sudo apt-get install protobuf-compiler libxml2-dev libprotobuf-dev llvm-6.0-dev
- 源码编译fmtlib
git clone --branch 11.0.2 https://github.com/fmtlib/fmt.git --depth=1 cd fmt mkdir build && cd build cmake .. make -j32 make install # 验证是否安装成功 pkg-config --modversion fmt # 若输出 11.0.2,表示fmt安装成功
可查看最新版 开发者文档
- BANG C/C++ 编程指南
- BANG C Developer Guide
- CNNL Developer Guide
- MLU 架构调优指南
- CNRT Developer Guide
- CNRTC Developer Guide
- CNDrv Developer Guide
- CNGDB Developer Guide
- Libdevice Developer Guide
目录/文件 | 描述 |
---|---|
cmake | 存放编译相关的 make 文件。 |
core | 存放公共数据类型的操作、运行时管理、日志等公共实现。 |
docker | 存放 docker 打包脚本,提供 CI 构建环境。 |
docs | 存放算子开发、测试、精度验收等说明文档。 |
kernels | 算子代码实现,包含一元、二元算子模板供其他算子调用。 |
test | 存放测试算子用的代码。 |
mlu_op.h | 公共数据类型描述,以及 kernels 目录中的算子对外提供的 C 接口。 |
提供基于 BANG C 的算子开发教程,涵盖算子入门、算子进阶、算子高级篇,帮助开发者迅速上手算子开发。 具体见 BANG C 算子开发指南。
提供基于寒武纪人工智能单元(MLU)开发高性能算子、C 接口封装的示例代码。 MLU-OPS™ 具体的编译、开发与测试介绍见 MLU-OPS™算子编译、开发与测试介绍。
更多内容见 docs 目录下文档。