66 Star 280 Fork 138

MindSpore/akg

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

View English

AKG简述

AKG(Auto Kernel Generator)对深度神经网络中的算子进行优化,并提供特定模式下的算子自动融合功能。AKG与MindSpore的图算融合功能协同工作,可提升在不同硬件后端上运行网络的性能。

AKG由三个基本的优化模块组成:规范化、自动调度和后端优化。

  • 规范化: 为了解决polyhedral表达能力的局限性(只能处理静态的线性程序),需要首先对计算公式IR进行规范化。规范化模块中的优化主要包括自动运算符inline、自动循环融合和公共子表达式优化等。

  • 自动调度: 自动调度模块基于polyhedral技术,主要包括自动向量化、自动切分、thread/block映射、依赖分析和数据搬移等。

  • 后端优化: 后端优化模块的优化主要包括TensorCore使能、双缓冲区、内存展开和同步指令插入等。

硬件后端支持

当前支持gpu v100/A100,更多硬件后端支持待开发。

构建

从MindSpore侧构建

详细细节请参考MindSpore README.md

独立构建

我们建议您从MindSpore侧构建运行AKG代码,但同时为了方便开发,我们提供了独立编译运行AKG的方式。 详细的编译依赖请参考MindSpore安装指南

bash build.sh -e $target // target can set 'gpu'

运行

  1. 设置环境变量
  • GPU V100/A100

    cd tests
    source ./test_env.sh gpu
    
  1. 运行测试用例
  • GPU V100/A100
    cd tests/operators/gpu
    python3 test_all.py -a "op_name" #运行op_name算子测试用例
    

贡献

欢迎您的贡献,具体细节请参考MindSpore贡献者Wiki

版本说明

版本说明详见RELEASE.

许可证

Apache License 2.0

空文件

简介

AKG(Auto Kernel Generator) is an optimizer for operators in Deep Learning Networks, which provides the ability to automatically fuse ops with specific patterns. 展开 收起
Python 等 5 种语言
Apache-2.0
取消

发行版 (9)

全部
2年前

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/mindspore/akg.git
git@gitee.com:mindspore/akg.git
mindspore
akg
akg
796260887e9c87964aad87ab8154211060870fec

搜索帮助

371d5123 14472233 46e8bd33 14472233