Skip to content

Unireverse/mlu-ops-ci

Repository files navigation

简介

MLU-OPS 提供基于寒武纪人工智能单元(MLU),使用 C 接口或者 Python 接口开发高性能算子的示例代码。 MLU-OPS 旨在通过提供示例代码,供开发者参考使用,可用于开发自定义算子,实现对应模型的计算。

MLU-OPS 提供了以下功能:

依赖条件

  • 操作系统:
    • 支持 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)算子开发、编译及测试相互独立

更多内容见 docs 目录下文档。

获取关于 BANG 语言基础和开发相关工具介绍的文档

可查看最新版 开发者文档

目录文件结构

目录/文件 描述
bangc-ops C 接口算子开发目录
bangpy-ops Python 接口算子开发目录
docker 存放 docker 打包脚本,提供 CI 构建环境。
docs 算子开发、测试、精度验收的说明文档。