1 Star 4 Fork 3

Cambricon/mlu-ops

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
MIT
  • 为了提供更好的开发体验,我们为您提供包含寒武纪完整软件栈的容器镜像,帮助您跳过环境部署环节
  • 如需获取该容器镜像,可提 ISSUE 留下您的联系方式

简介

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

MLU-OPS™提供了以下功能:

依赖条件

  • 操作系统:
    • 支持 x86_64 架构下的 Ubuntu20.04、Centos7.6、Centos8.5、Kylin10
    • MLU-OPS™ v1.0.0版本后将不再支持 Ubuntu18.04。Ubuntu22.04系统将在后续的版本提供支持。
  • 寒武纪 MLU SDK:
    • 编译和运行时依赖 CNToolkit v3.12.3 或更高版本,CNNL v1.26.1 或者更高版本
  • 寒武纪 MLU 驱动:
    • 运行时依赖驱动 v5.10.25 或更高版本
  • 外部链接库:
    • libxml2-dev、libprotobuf-dev、protobuf-compiler、llvm-6.0-dev、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_ubuntu20.04/cntoolkit_x.x.x-x.ubuntu20.04_amd64.deb
    wget https://sdk.cambricon.com/static/Basis/MLU370_X86_ubuntu20.04/cnnl_x.x.x-x.ubuntu20.04_amd64.deb
    sudo apt-get install ./cntoolkit-x.x.x-x.ubuntu20.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
    
  • 准备链接库环境

    sudo apt-get update
    sudo apt-get install protobuf-compiler libxml2-dev libprotobuf-dev llvm-6.0-dev

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

可查看最新版 开发者文档

目录文件结构

目录/文件 描述
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 目录下文档。

MIT License Copyright (C) [2022] by Cambricon, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Efficient operation implementation based on the Cambricon Machine Learning Unit (MLU) . expand collapse
C++ and 6 more languages
MIT
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/cambricon/mlu-ops.git
git@gitee.com:cambricon/mlu-ops.git
cambricon
mlu-ops
mlu-ops
master

Search