×

AKG深度学习网络优化程序

消耗积分:2 | 格式:zip | 大小:14.33 MB | 2022-06-17

小峰

分享资料个

授权协议 Apache-2.0
开发语言 C/C++ Python
操作系统 跨平台
软件类型 开源软件

软件简介

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

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

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

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

  • 指令发射: 指令发射模块的优化主要包括循环规范化、标签自动生成和指令发射等。

  • 后端优化: 后端优化模块的优化主要包括双缓冲区、存储重写和同步指令插入等。

    pYYBAGKn-6mAHUgiAAF6cN7bGNE543.png

硬件后端支持

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

构建

从MindSpore侧构建

详细细节请参考MindSpore README.md

独立构建

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

bash build.sh -t $target // target can set 'gpu' or 'ascend'

运行

  1. 设置环境变量
  • Ascend910

    cd tests
    source ./test_env.sh amd64
    export 
    export PATH=${PATH}:${YOUR_CCEC_COMPILER_PATH}
  • GPU V100/A100

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !