1 Star 0 Fork 74

Hanshize / akg

forked from MindSpore / akg 
加入 Gitee
与超过 600 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README_CN.md

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

仓库评论 ( 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. 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/Hanshize/akg.git
git@gitee.com:Hanshize/akg.git
Hanshize
akg
akg
master

搜索帮助