ATC模型转换环境问题案例

举报
昇腾CANN 发表于 2023/08/21 16:18:46 2023/08/21
【摘要】 ATC(Ascend Tensor Compiler)是异构计算架构CANN体系下的模型转换工具,它可以将开源框架的网络模型(如TensorFlow等)以及Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型。本期就分享几个环境搭建过程中常见问题的典型案例,并给出原因分析及解决方法。

ATC(Ascend Tensor Compiler)是异构计算架构CANN体系下的模型转换工具:它可以将开源框架的网络模型(如TensorFlow等)以及Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型;模型转换过程中,ATC会进行算子调度优化、权重数据重排、内存使用优化等具体操作,对原始的深度学习模型进行进一步的调优,从而满足部署场景下的高性能需求,使其能够高效执行在昇腾AI处理器上。

本期就分享几个关于ATC环境搭建问题的典型案例,并给出原因分析及解决方法:

  1. 未设置环境变量,导致ATC工具无法使用
  2. 模型转换时,Python版本不匹配,导致模型转换失败

01 未设置环境变量,导致ATC工具无法使用

问题现象描述

输入模型转换的命令后,按回车,提示如下信息:

bash: atc: command not found

原因分析

ATC工具在CANN软件包中以二进制形式存在,使用该工具前,必须通过环境变量使能二进制才可以运行工具;若使用atc --help命令回车,仍旧回显上述信息,则说明ATC工具无法使用。

解决措施

ATC工具运行前,先设置运行所需环境变量。

    • 以root用户安装Ascend-cann-toolkit包
      . /usr/local/Ascend/ascend-toolkit/set_env.sh
      #若开发套件包Ascend-cann-toolkit在非昇腾设备上安装,则如下环境变量必须执行,用于设置动态链接库所在路径,否则无需执行
      export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/<arch>-linux/devlib:$LD_LIBRARY_PATH

    • 以非root用户安装Ascend-cann-toolkit包:
      . $HOME/Ascend/ascend-toolkit/set_env.sh
      #若开发套件包Ascend-cann-toolkit在非昇腾设备上安装,则如下环境变量必须执行,用于设置动态链接库所在路径,否则无需执行
      export LD_LIBRARY_PATH=$HOME/Ascend/ascend-toolkit/latest/<arch>-linux/devlib:$LD_LIBRARY_PATH

        其中,<arch>请替换为操作系统具体架构。

    设置环境变量后,使用atc --help命令回车,若回显了atc相关参数信息,则说明工具可以正常使用,可以进行后续的模型转换。

    02 模型转换时,Python版本不匹配,导致模型转换失败

    问题现象描述

    输入模型转换的命令后,按回车,提示如下信息:

    ATC run failed, Please check the detail log, Try 'atc --help' for more information
    E40002: The current Python version is [Python 3.6.9]. The system supports only [Python 3.7] or later.
            TraceBack (most recent call last):
            [GraphOpt][InitializeInner][InitTbeFunc] Failed to init tbe.[FUNC:InitializeInner][FILE:tbe_op_store_adapter.cc][LINE:1585]
            [SubGraphOpt][PreCompileOp][InitAdapter] InitializeAdapter adapter [tbe_op_adapter] failed! Ret [4294967295][FUNC:InitializeAdapter][FILE:op_store_adapter_manager.cc][LINE:86]
            [SubGraphOpt][PreCompileOp][Init] Initialize op store adapter failed, OpsStoreName[tbe-custom].[FUNC:Initialize][FILE:op_store_adapter_manager.cc][LINE:133]
            [FusionMngr][Init] Op store adapter manager init failed.[FUNC:Initialize][FILE:fusion_manager.cc][LINE:109]
            PluginManager InvokeAll failed.[FUNC:Initialize][FILE:ops_kernel_manager.cc][LINE:101]
            OpsManager initialize failed.[FUNC:InnerInitialize][FILE:gelib.cc][LINE:238]        GELib::InnerInitialize failed.[FUNC:Initialize][FILE:gelib.cc][LINE:167]

    原因分析

    ATC工具进行模型编译或者单算子编译时,依赖Python版本,当前要求的Python版本为:Python3.7.x(3.7.0~3.7.11)、Python3.8.x(3.8.0~3.8.11)、Python3.9.x(3.9.0~3.9.7)。查看报错信息,发现当前使用的Python版本,比如上述的Python 3.6.9并不在版本要求范围内。

    解决措施

    若还未安装符合要求的Python版本,则优先安装对应的Python版本;若已安装,则执行如下环境变量,指定需要使用的版本,以Python3.7.5为例,设置相关环境变量:

    #如果用户环境存在多个python3版本,则指定使用python3.7.5版本
    export PATH=/usr/local/python3.7.5/bin:$PATH
    #设置python3.7.5库文件路径
    export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH

    03 更多介绍

    [1]昇腾文档中心:https://www.hiascend.com/zh/document

    [2]昇腾社区在线课程:https://www.hiascend.com/zh/edu/courses

    [3]昇腾论坛:https://www.hiascend.com/forum

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。