昇腾社区首页
中文
注册

安装包相关

描述CANN软件安装完成后,系统通过“set_env.sh”脚本默认配置的程序编译、执行相关的基础环境变量,以及后续程序编译执行时,需要手工配置的跟安装包相关的环境变量。

安装后自动配置环境变量

CANN软件安装完成后,默认会自动配置程序编译、执行所依赖的基础环境变量,但用户进程结束后相关环境变量自动失效,您也可以通过如下环境变量脚本一键式配置。

# root用户安装时环境变量配置示例:
# 安装toolkit包时
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# 安装nnrt包时
source /usr/local/Ascend/nnrt/set_env.sh    
# 安装nnae包时
source /usr/local/Ascend/nnae/set_env.sh   
# 安装nnal包时
source /usr/local/Ascend/nnal/atb/set_env.sh 
#安装tfplugin包时
source /usr/local/Ascend/tfplugin/set_env.sh
# 非root用户安装时环境变量配置示例:
# 安装toolkit时
source ${HOME}/Ascend/ascend-toolkit/set_env.sh 
# 安装nnrt包时
source ${HOME}/Ascend/nnrt/set_env.sh    
# 安装nnae包时
source ${HOME}/Ascend/nnae/set_env.sh
# 安装nnal包时
source ${HOME}/Ascend/nnal/atb/set_env.sh    
# 安装tfplugin包时
source ${HOME}/Ascend/tfplugin/set_env.sh

用户也可以通过修改~/.bashrc文件方式设置永久环境变量,操作如下:

  1. 以运行用户在任意目录下执行vi ~/.bashrc命令,打开.bashrc文件,在文件最后一行后面添加上述内容。
  2. 执行:wq!命令保存文件并退出。
  3. 执行source ~/.bashrc命令使其立即生效。

详细环境变量说明如下表所示。

表1 环境变量说明

软件包

环境变量名称

环境变量说明

配置示例

开发套件包(toolkit)

LD_LIBRARY_PATH

动态库的查找路径。

export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
export ASCEND_TOOLKIT_HOME=/home/HwHiAiUser/Ascend/ascend-toolkit/latest
export LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:$LD_LIBRARY_PATH
export PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:$PYTHONPATH
export PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:$PATH
export ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME}
export ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp
export TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit
export ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME}

ASCEND_TOOLKIT_HOME

CANN-toolkit软件包安装后文件存储路径。

PYTHONPATH

Python搜索路径。

PATH

可执行文件查找路径。

ASCEND_AICPU_PATH

AI CPU组件的安装路径。

ASCEND_OPP_PATH

算子库根目录。

TOOLCHAIN_HOME

工具链安装路径。

ASCEND_HOME_PATH

同ASCEND_TOOLKIT_HOME,代表CANN-toolkit软件安装后文件存储路径。

离线推理引擎包(nnrt)

ASCEND_NNRT_HOME

nnrt软件包安装后文件存储路径。

export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
export ASCEND_NNRT_HOME=/home/HwHiAiUser/Ascend/nnrt/latest
export LD_LIBRARY_PATH=${ASCEND_NNRT_HOME}/lib64:$LD_LIBRARY_PATH
export PYTHONPATH=${ASCEND_NNRT_HOME}/python/site-packages:$PYTHONPATH
export ASCEND_AICPU_PATH=${ASCEND_NNRT_HOME}
export ASCEND_OPP_PATH=${ASCEND_NNRT_HOME}/opp

LD_LIBRARY_PATH

动态库的查找路径。

PYTHONPATH

Python搜索路径。

ASCEND_AICPU_PATH

AI CPU组件的安装路径。

ASCEND_OPP_PATH

算子库根目录。

深度学习引擎包(nnae)

ASCEND_NNAE_HOME

nnae软件包安装后文件存储路径。

export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
export ASCEND_NNAE_HOME=/home/HwHiAiUser/Ascend/nnae/latest
export LD_LIBRARY_PATH=${ASCEND_NNAE_HOME}/lib64:${ASCEND_NNAE_HOME}/lib64/plugin/opskernel:${ASCEND_NNAE_HOME}/lib64/plugin/nnengine:$LD_LIBRARY_PATH
export PYTHONPATH=${ASCEND_NNAE_HOME}/python/site-packages:${ASCEND_NNAE_HOME}/opp/built-in/op_impl/ai_core/tbe:$PYTHONPATH
export PATH=${ASCEND_NNAE_HOME}/bin:${ASCEND_NNAE_HOME}/compiler/ccec_compiler/bin:$PATH
export ASCEND_AICPU_PATH=${ASCEND_NNAE_HOME}
export ASCEND_OPP_PATH=${ASCEND_NNAE_HOME}/opp
export ASCEND_HOME_PATH=${ASCEND_NNAE_HOME}

LD_LIBRARY_PATH

动态库的查找路径。

PYTHONPATH

Python搜索路径。

PATH

可执行文件查找路径。

ASCEND_AICPU_PATH

AI CPU组件的安装路径。

ASCEND_OPP_PATH

算子库根目录。

ASCEND_HOME_PATH

同ASCEND_NNAE_HOME,代表nnae软件安装后文件存储路径。

加速库(nnal)

ATB_HOME_PATH

软件包安装后文件存储路径。

export ATB_HOME_PATH="${atb_path}/latest/atb/cxx_abi_${cxx_abi}"
export LD_LIBRARY_PATH=$ATB_HOME_PATH/lib:$ATB_HOME_PATH/examples:$ATB_HOME_PATH/tests/atbopstest:$LD_LIBRARY_PATH
export PATH=$ATB_HOME_PATH/bin:$PATH

#加速库环境变量
export ATB_STREAM_SYNC_EVERY_KERNEL_ENABLE=0
export ATB_STREAM_SYNC_EVERY_RUNNER_ENABLE=0 
export ATB_STREAM_SYNC_EVERY_OPERATION_ENABLE=0 
export ATB_OPSRUNNER_SETUP_CACHE_ENABLE=1
export ATB_OPSRUNNER_KERNEL_CACHE_TYPE=3 
export ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT=1
export ATB_OPSRUNNER_KERNEL_CACHE_GLOABL_COUNT=5 
export ATB_OPSRUNNER_KERNEL_CACHE_TILING_SIZE=10240 
export ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE=1 
export ATB_WORKSPACE_MEM_ALLOC_GLOBAL=0
export ATB_COMPARE_TILING_EVERY_KERNEL=0
export ATB_HOST_TILING_BUFFER_BLOCK_NUM=128
export ATB_DEVICE_TILING_BUFFER_BLOCK_NUM=32 
export ATB_SHARE_MEMORY_NAME_SUFFIX=""
export ATB_LAUNCH_KERNEL_WITH_TILING=1
export ATB_MATMUL_SHUFFLE_K_ENABLE=1
export ATB_RUNNER_POOL_SIZE=64 

#算子库环境变量
export ASDOPS_HOME_PATH=$ATB_HOME_PATH
export ASDOPS_MATMUL_PP_FLAG=1 
export ASDOPS_LOG_LEVEL=ERROR 
export ASDOPS_LOG_TO_STDOUT=0
export ASDOPS_LOG_TO_FILE=1  
export ASDOPS_LOG_TO_FILE_FLUSH=0 
export ASDOPS_LOG_TO_BOOST_TYPE=atb 
export ASDOPS_LOG_PATH=~ 
export ASDOPS_TILING_PARSE_CACHE_DISABLE=0 
export LCCL_DETERMINISTIC=0 

LD_LIBRARY_PATH

Linux系统中加载动态库时的搜寻路径列表。

PATH

将ATB软件包bin目录的路径添加到系统PATH环境变量中,推荐使用默认路径。

ATB_STREAM_SYNC_EVERY_KERNEL_ENABLE

用于问题定位,确定报错所在的kernel。当变量配置为1时,每个Kernel的Execute结束时就做流同步。

ATB_STREAM_SYNC_EVERY_RUNNER_ENABLE

用于问题定位,确定报错所在的runner。当变量配置为1时,每个Runner的Execute时就做流同步。

ATB_STREAM_SYNC_EVERY_OPERATION_ENABLE

用于问题定位,确定报错所在的Operation。当变量配置为1时,每个Operation的Execute时就做同步。

ATB_OPSRUNNER_SETUP_CACHE_ENABLE

是否开启ATB的SetupCache功能。该功能在检测到operation的输入和输出tensor未发生变化时会跳过setup的大部分流程,进而提升调度侧性能。

默认开启,以进行性能加速。

ATB_OPSRUNNER_KERNEL_CACHE_TYPE

是否开启ATB的kernelCache功能。该功能在检测到operation的输入与参数未发生变化时,会复用已经计算好的tiling数据及内部结构体,进而提升调度侧性能。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT

本地kernelCache的槽位数。

  • 槽位数增加时:增加cache命中率,但降低检索效率。
  • 槽位数减少时:提高检索效率,但降低cache命中率。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ATB_OPSRUNNER_KERNEL_CACHE_GLOBAL_COUNT

全局kernelCache的槽位数。

  • 槽位数增加:增加cache命中率,但降低检索效率。
  • 槽位数减少:提高检索效率,但降低cache命中率。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ATB_OPSRUNNER_KERNEL_CACHE_TILING_SIZE

设置kernelCache中每一块用于存储tiling的buffer大小(单位:字节)。

一般不建议用户更改,仅在算子tiling大小超过buffer大小时配置。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE

workspace内存分配算法选择。根据环境变量配置不同,ATB会选择不同的算法去计算workspace大小与workspace分配,用户可通过选择不同算法自行测试workspace分配情况。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ATB_WORKSPACE_MEM_ALLOC_GLOBAL

是否使用全局中间tensor内存分配算法。开启后会对中间tensor内存进行大小计算与分配。

ATB_COMPARE_TILING_EVERY_KERNEL

每个Kernel运行后,比较运行前和后的NPU上tiling内容是否变化,一般用于检查是否发生tiling内存踩踏。

ATB_HOST_TILING_BUFFER_BLOCK_NUM

Context内部HostTilingBuffer块数,数量与OP并行的最大并行数有关,通常使用默认值,不建议修改。

ATB_DEVICE_TILING_BUFFER_BLOCK_NUM

Context内部DeviceTilingBuffer块数,数量与OP并行的最大并行数有关,通常使用默认值,不建议修改。

ATB_SHARE_MEMORY_NAME_SUFFIX

共享内存命名后缀,多用户同时使用通信算子时,需通过设置该值进行共享内存的区分。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ATB_LAUNCH_KERNEL_WITH_TILING

tiling拷贝随算子下发功能开关。开启后会修改tiling拷贝方式,主要用于Atlas 推理系列产品上的性能提升。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ATB_MATMUL_SHUFFLE_K_ENABLE

Shuffle-K使能,矩阵乘的结果矩阵不同位置计算时的累加序一致/不一致。会影响matmul算子内部累加序。

ATB_RUNNER_POOL_SIZE

加速库runner池中可存放runner的个数。

不建议用户更改,在OP输入tensor与参数配置多变的情况下,增加runner池容量可提升性能,但会增加host内存的使用量。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_HOME_PATH

配置算子库路径,便于使用ATB功能。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_OPS_PATH

配置算子库op路径,便于使用ATB功能。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_MATMUL_PP_FLAG

算子库开启使用PPMATMUL。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_LOG_LEVEL

算子库日志级别。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本考虑使用ASCEND_GLOBAL_LOG_LEVEL或ASCEND_MODULE_LOG_LEVEL 代替。

ASDOPS_LOG_TO_STDOUT

算子库日志是否输出到控制台。

ASDOPS_LOG_TO_FILE

算子库日志是否输出到文件。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_LOG_TO_FILE_FLUSH

日志写文件是否刷新。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_LOG_TO_BOOST_TYPE

加速库日志目录名称。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_LOG_PATH

算子库日志保存路径。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

ASDOPS_TILING_PARSE_CACHE_DISABLE

控制是否开启算子库tilingParse缓存优化。

开启优化后会提升非首token性能。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

LCCL_DETERMINISTIC

LCCL确定性AllReduce(保序加)是否开启。需注意,开启功能在rankSize<=8时生效。

开启后会有如下影响:

  • 影响部分通信算子性能。
  • 影响lccl通信算子的累加序。

ASDOPS_QUANT_MIN_NEG_127

控制int8量化输出的最小值。

不建议用户修改。

建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量, 请谨慎使用。

TensorFlow框架插件包(tfplugin)

ASCEND_PLUGIN_HOME

框架包安装后文件存储路径。

export ASCEND_PLUGIN_HOME=/usr/local/Ascend/tfplugin/latest
export PYTHONPATH=${ASCEND_PLUGIN_HOME}/python/site-packages:$PYTHONPATH

PYTHONPATH

Python搜索路径。

表2 环境变量说明

软件包

环境变量名称

环境变量说明

配置示例

Runtime

LD_LIBRARY_PATH

动态库的查找路径。

# Runtime使用到的so文件存在路径
# 如环境中存在Driver,则配置如下。
export LD_LIBRARY_PATH=${install_path}/latest/runtime/lib64:$LD_LIBRARY_PATH
# 如环境中不存在Driver,则配置如下。
export LD_LIBRARY_PATH=${install_path}/latest/runtime/lib64:$LD_LIBRARY_PATH:${install_path}/latest/runtime/lib64/stub

Compiler

PYTHONPATH

Python搜索路径。

# Compiler使用的python路径
export PYTHONPATH=${install_path}/latest/compiler/python/site-packages:$PYTHONPATH

# Compiler可执行程序的查找路径。如果用户环境存在多个python3版本,则指定使用python3.7.5版本,python3.7.5安装路径请根据实际情况进行替换;同时设置ATC工具可执行文件所在路径
export PATH=${install_path}/latest/compiler/ccec_compiler/bin:${install_path}/latest/compiler/bin:$PATH

# Compiler的库文件存放路径
export LD_LIBRARY_PATH=${install_path}/latest/compiler/lib64:${install_path}/latest/compiler/lib64/plugin/opskernel:${install_path}/latest/compiler/lib64/plugin/nnengine:$LD_LIBRARY_PATH:${install_path}/latest/compiler/lib64/stub

PATH

可执行程序的查找路径。

LD_LIBRARY_PATH

动态库的查找路径。

HCCL

PYTHONPATH

Python搜索路径。

# HCCL使用的python路径
export PYTHONPATH=${install_path}/latest/hccl/python/site-packages:$PYTHONPATH

# HCCL可执行程序的查找路径。如果用户环境存在多个python3版本,则指定使用python3.7.5版本,python3.7.5安装路径请根据实际情况进行替换;同时设置ATC工具可执行文件所在路径
export PATH=${install_path}/latest/hccl/bin:$PATH

# HCCL的库文件存在路径
export LD_LIBRARY_PATH=${install_path}/latest/hccl/lib64:$LD_LIBRARY_PATH:${install_path}/latest/hccl/lib64/plugin/opskernel

PATH

可执行程序的查找路径。

LD_LIBRARY_PATH

动态库的查找路径。

Toolkit

TOOLCHAIN_HOME

工具链安装路径。

# 工具链安装路径
export TOOLCHAIN_HOME=${install_path}/latest/toolkit

# Toolkit使用的python路径
export PYTHONPATH=${install_path}/latest/toolkit/python/site-packages:$PYTHONPATH

# Toolkit的库文件存在路径
export LD_LIBRARY_PATH=${install_path}/latest/toolkit/tools/aml/lib64:$LD_LIBRARY_PATH

# Toolkit可执行程序的查找路径 
export PATH=${install_path}/latest/toolkit/python/site-packages/bin/:${install_path}/latest//toolkit/tools/profiler/bin/:${install_path}/latest/toolkit/tools/ascendc_tools/:${install_path}/latest/toolkit/tools/aml/lib64/:${install_path}/latest/toolkit/tools/ccec_compiler/bin:$PATH

PYTHONPATH

Python搜索路径。

LD_LIBRARY_PATH

动态库的查找路径。

PATH

可执行程序的查找路径。

OPP

ASCEND_OPP_PATH

算子库根目录。

# 算子库根目录
export ASCEND_OPP_PATH=${install_path}/latest/opp

#AI CPU组件的安装路径
export ASCEND_AICPU_PATH=${install_path}/latest

# OPP使用的python路径
export PYTHONPATH=${install_path}/latest/opp/built-in/op_impl/ai_core/tbe/:$PYTHONPATH

ASCEND_AICPU_PATH

AI CPU组件的安装路径。

PYTHONPATH

Python搜索路径。

如果安装了AOE,还有如下环境变量。

AOE

LD_LIBRARY_PATH

动态库的查找路径。

# AOE的库文件存在路径
export LD_LIBRARY_PATH=${install_path}/latest/tools/aoe/lib64:$LD_LIBRARY_PATH

# AOE可执行程序的查找路径
export PATH=${install_path}/latest/tools/aoe:$PATH

PATH

可执行程序的查找路径。

手工配置环境变量

程序编译执行过程中,可能会需要配置跟软件包安装相关的环境变量。下面描述CANN提供的不同场景下需要手工配置的环境变量。

表3 手工配置环境变量列表

软件包

环境变量名称

环境变量说明

配置示例

自定义算子安装包

ASCEND_CUSTOM_OPP_PATH

用户自定义算子包安装路径。

支持配置多个路径,以英文冒号分隔,排在最前面的优先级最高。

export ASCEND_CUSTOM_OPP_PATH=${install_path}/ascend-toolkit/latest/opp/vendor_name1:${install_path}/ascend-toolkit/latest/opp/vendor_name2