开发者
下载

简介

前提条件

  • 安装软件包:准备带有AI处理器的硬件环境,并安装驱动固件和CANN软件包,具体安装步骤请参见CANN 软件安装
  • GCC版本:要求9.5.0及以上,建议使用9.5.0版本。
  • CMake:要求3.20.0版本及以上,建议使用3.20.0版本。
  • 安装mspti,mspti有两种获取方式(开启PGO特性时需要安装该依赖):
    • 直接获取编译好的匹配release包,获取链接https://gitcode.com/Ascend/mspti/releases,安装命令如下:
      ./mindstudio-profiler-tools-interface_{version}_{arch}.run --install --install-path={cann_install_path}

      --install-path:指定安装路径,需要为上述CANN软件包的安装路径。

    • 源码编译:
      • 将源码仓clone到本地,命令如下(以使用HTTPS协议为例):
        git clone https://gitcode.com/Ascend/mspti.git
      • 执行编译,命令如下:
        bash script/build.sh
      • 替换CANN软件包文件:

        编译成功后,将csrc/include头文件目录复制到{cann_install_path}/cann/tools/mspti/include;将build/libmspti.so动态库目录复制到{cann_install_path}/cann/tools/mspti/lib64;cann_install_path需要为上述CANN软件包的安装路径。

  • 安装完成后设置环境变量:

    安装CANN软件后,使用CANN运行用户进行编译、运行时,需要以CANN运行用户登录环境,执行source ${INSTALL_DIR}/set_env.sh命令设置环境变量。${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。

启用AutoFuse

在TensorFlow图模式流程中,自动融合的开启方式由环境变量控制,包括功能控制与DFX控制,自动融合开箱只需要打开功能控制,DFX控制用于辅助定位或优化。功能控制的环境变量名为AUTOFUSE_FLAGSDFX控制的环境变量名为AUTOFUSE_DFX_FLAGS,环境变量值以字符串"--key=value"形式配置,每一项不同的key代表一个具体控制点, 多项配置使用英文分号分隔。

自动融合目前支持以下类别算子的融合,具体开启方式如下:

表1 自动融合支持的算子类型

融合类型

开启方式

Auto Tiling求解算法

Auto Tiling算法精度

融合算子生成时的中间过程文件

PGO调优算法

Elemwise

默认开启

默认轴排序算法

默认高精度求解

默认不保留

默认控核算法

Broadcast

默认开启

默认轴排序算法

默认高精度求解

默认不保留

默认控核算法

Reduce

环境变量显式控制

默认轴排序算法

默认高精度求解

默认不保留

默认控核算法

Concat

环境变量显式控制

默认轴排序算法

默认高精度求解

默认不保留

默认控核算法

以Reduce和Concat算子为例,开启自动融合功能的配置示例如下:

  • 功能控制:
    export AUTOFUSE_FLAGS="--enable_autofuse=true;--autofuse_enable_pass=reduce,concat"
  • DFX控制:
    export AUTOFUSE_DFX_FLAGS="--att_accuracy_level=1;--att_profiling=true"

上述环境变量中每一项的详细解释请参见AUTOFUSE_FLAGS环境变量控制点AUTOFUSE_DFX_FLAGS环境变量控制点

支持离线推理静态shape场景开启自动融合功能,方法为:

  • 设置环境变量,开启自动融合功能,比如:
    export AUTOFUSE_FLAGS="--enable_autofuse=true"
    • 使用ATC离线模型编译工具转换模型,生成om离线模型。
    • 使用GE图引擎接口aclgrphBuildModel编译模型,生成om离线模型。
  • 模型加载与推理

    使用acl接口加载生成的om模型,完成推理。

关于ATC工具详细使用方法请参见ATC离线模型编译工具

关于GE图引擎接口使用方法请参见编译Graph为离线模型

关于acl接口推理详细说明请参见应用开发 (C&C++)中的模型管理