文档
注册
评分
提单
论坛
小AI

环境搭建

获取ATC工具

参见CANN 软件安装指南 进行开发环境搭建,并确保开发套件包Ascend-cann-toolkit安装完成。该场景下ATC工具安装在“Ascend-cann-toolkit安装目录/ascend-toolkit/latest/bin”下。

设置环境变量

  • 开发环境架构为Arm(aarch64),模型转换耗时较长,则可以参考开发环境架构为Arm(aarch64)时模型转换耗时较长解决。
  • 该工具对Python版本的支持请参见CANN 软件安装指南中的“安装开发环境>安装OS依赖>依赖列表”章节,本手册以Python3.7.5为例进行介绍,相应环境变量和安装命令以实际安装Python版本为准。
  • 使用ATC工具进行模型转换的过程中,会自动将ATC工具所在位置“../python/site-packages”目录下算子编译依赖的TBE Python库写入PYTHONPATH环境变量。

    若算子实现时用户引入了TBE模块外的其他Python依赖,请自行添加PYTHONPATH的环境变量,配置引入的Python依赖所在路径,如下所示:

    export PYTHONPATH=xxxx:$PYTHONPATH

  1. 必选环境变量
    • 设置公共环境变量
      • 以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>请替换为操作系统具体架构。

    • 设置Python相关环境变量
      模型编译依赖Python,以Python3.7.5为例,请以CANN软件包运行用户执行如下命令设置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
    • 设置环境变量,指定是否开启单线程或多线程编译。
      • 0:开启单线程编译
      • 1:开启多线程编译,默认值
      配置示例如下:
      export MULTI_THREAD_COMPILE=0

    上述环境变量只在当前窗口生效,用户可以将上述命令写入~/.bashrc文件,使其永久生效,方法如下:

    1. 以安装用户在任意目录下执行vi ~/.bashrc,在该文件最后添加上述内容。
    2. 执行:wq!命令保存文件并退出。
    3. 执行source ~/.bashrc使环境变量生效。
  2. 可选环境变量
    1. 日志落盘、打屏与重定向。
      • 日志落盘:

        atc命令执行过程中,日志默认落盘到$HOME/ascend/log/plog/plog-pid_*.log(pid代表进程ID,“*”表示该日志文件创建时的时间戳)路径,由于--log默认值为null,即不输出日志,若该路径存在日志信息,则为atc进程之外的其他日志信息,比如依赖Python相关信息。

        若想要日志体现atc进程相关信息,则模型转换时,需要设置--log参数(不能设置为null)。

      • 日志打屏:
        atc命令执行过程中,日志默认不打屏,如需打屏显示,则请在执行atc命令的当前窗口设置如下环境变量,然后再执行atc命令:
        export ASCEND_SLOG_PRINT_TO_STDOUT=1

        关于日志的更多信息请参见日志参考。若设置上述环境变量后,仍旧未打屏有效信息,则请在atc命令设置--log参数(不能设置为null)显示相应的日志级别。

      • 日志重定向:

        如果不想日志落盘,而是重定向到文件,则模型转换前需要设置上述的日志打屏环境变量,并且atc命令需要设置--log参数(不能设置为null),样例如下:

        atc xxx --log=debug >log.txt
    1. 开启算子并行编译功能。
      若网络模型较大,模型转换过程中,可设置如下环境变量,开启算子的并行编译功能。
      export TE_PARALLEL_COMPILER=xx

      TE_PARALLEL_COMPILER的值代表算子编译进程数(配置为整数),取值范围为1~32,默认值为8,当取值大于1时开启算子的并行编译功能。建议不超过:CPU核数*80%/昇腾AI处理器个数。

    2. 打印模型转换过程中各个阶段的图描述信息。
      export DUMP_GE_GRAPH=1

      上述环境变量控制dump图的内容多少:

      • 取值为1,全量dump。
      • 取值为2,不含有权重等数据的基本版dump。
      • 取值为3,只显示节点关系的精简版dump。

      设置上述环境变量后,还可以设置如下环境变量,控制dump图的个数。

      export DUMP_GRAPH_LEVEL=1
      • 取值为1,dump所有图。
      • 取值为2,dump除子图外的所有图,默认值为2。
      • 取值为3,dump最后的生成图。

      设置上述变量后,在执行atc命令的当前路径会生成如下文件:

      • ge_onnx*.pbtxt:基于ONNX的开源模型描述结构,可以使用Netron等可视化软件打开。
      • ge_proto*.txt:protobuf格式存储的文本文件,该文件可以转成json格式文件方便用户定位问题。该文件与ge_onnx*.pbtxt成对出现,但是比ge_onnx*.pbtxt文件会多string类型的属性信息,用户选择其中一种文件打开即可。

      上述每个文件对应模型编译过程中的一个步骤,比如以ge_onnx_00000001_graph_0_PreRunBegin.pbtxt开始,以ge_onnx_00000078_graph_0_PreRunAfterBuild.pbtxt结尾。每个文件中包括完成该步骤所涉及的所有算子,关于dump图的详细信息请参见dump图详细信息

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词