环境变量参考
加速库安装完成后,提供进程级环境变量设置脚本“set_env.sh”,以自动完成环境变量设置,用户进程结束后自动失效。
Transformer加速库环境变量说明
- 基础环境变量
环境变量名
说明
ATB_HOME_PATH
软件包安装后文件存储路径。
LD_LIBRARY_PATH
Linux系统中加载动态库时的搜寻路径列表。
PATH
将ATB软件包bin目录的路径添加到系统PATH环境变量中,推荐使用默认路径。
- 加速库相关环境变量
环境变量名
默认值
功能说明
配置说明
变更声明
ATB_STREAM_SYNC_EVERY_KERNEL_ENABLE
0
用于问题定位,确定报错所在的kernel。当变量配置为1时,每个Kernel的Execute结束时就做流同步。
0:关闭同步。
1:开启同步。
-
ATB_STREAM_SYNC_EVERY_RUNNER_ENABLE
0
用于问题定位,确定报错所在的runner。当变量配置为1时,每个Runner的Execute时就做流同步。
0:关闭同步。
1:开启同步。
-
ATB_STREAM_SYNC_EVERY_OPERATION_ENABLE
0
用于问题定位,确定报错所在的Operation。当变量配置为1时,每个Operation的Execute时就做同步。
0:关闭同步。
1:开启同步。
-
ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT
1
本地kernelCache的槽位数。
- 槽位数增加时:增加cache命中率,但降低检索效率。
- 槽位数减少时:提高检索效率,但降低cache命中率。
支持范围:1~1024。
建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量,请谨慎使用。
后续将日落,请谨慎使用。
ATB_OPSRUNNER_KERNEL_CACHE_GLOBAL_COUNT
5
全局kernelCache的槽位数。
- 槽位数增加:增加cache命中率,但降低检索效率。
- 槽位数减少:提高检索效率,但降低cache命中率。
支持范围:1~1024。
ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE
1
workspace内存分配算法选择。根据环境变量配置不同,ATB会选择不同的算法去计算workspace大小与workspace分配,用户可通过选择不同算法自行测试workspace分配情况。
0:暴力算法。
1:block分配算法。
2:有序heap算法。
3:引入block合并(SOMAS算法退化版)。
ATB_COMPARE_TILING_EVERY_KERNEL
0
每个Kernel运行后,比较运行前和后的NPU上tiling内容是否变化,一般用于检查是否发生tiling内存踩踏。
0:不开启。
1:开启。
-
ATB_SHARE_MEMORY_NAME_SUFFIX
""
共享内存命名后缀,多用户同时使用通信算子时,需通过设置该值进行共享内存的区分。
可配置为任意字符串。
建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量,请谨慎使用。
ATB_MATMUL_SHUFFLE_K_ENABLE
1
Shuffle-K使能,矩阵乘的结果矩阵不同位置计算时的累加序一致/不一致。会影响matmul算子内部累加序。
0:不使能,累加序一致。
1:使能,累加序不一致。
-
LCCL_PARALLEL
0
该功能和确定性计算无法同时开启,"LCCL_DETERMINISTIC"需要为0或者false。
多通信域并行功能使用结束后,LCCL_PARALLEL需要设置回false,否则会导致基础场景性能下降。不支持在运行过程中修改。
该环境变量只支持allReduce多线程并发场景使用,仅支持
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 8卡且数据量小于100MB。true或者1开启。0或者false关闭。
后续将随LCCL功能一起日落,请谨慎使用。
LCAL_COMM_ID
-
用于初始化socket绑定和连接的ip和端口,同一个device并发创建多个通信域时,需要通过这个环境变量绑定连接不同的端口。
格式为"ip:port",其中ip指定要使用的IP地址(rank0所在服务器ip),port指定要使用的端口号。
ip限制为本机ip 127.0.0.1;端口限制为 10067~10067+commDomain,commDomain的配置请参考参数列表。
注:当前版本不支持多机通信,ip字段未被使用。
ASCEND_LAUNCH_BLOCKING
0
PyTorch训练或在线推理场景,可通过此环境变量控制算子执行时是否启动同步模式。
由于NPU模型训练时默认算子异步执行,导致算子执行过程中出现报错时,打印的报错堆栈信息并不是实际的调用栈信息。当设置为“1”时,强制算子采用同步模式运行,这样能够打印正确的调用栈信息,从而更容易地调试和定位代码中的问题。设置为“0”时则会采用异步方式执行。
0:异步模式。
1:同步模式。
- 仅在使用torch_atb的时候有用。
- 设置为“1”时
- 强制算子采用同步模式运行会导致性能下降。
- task_queue算子队列关闭,TASK_QUEUE_ENABLE设置不生效。
- 仅支持
Atlas 训练系列产品 和Atlas A2 训练系列产品 。
-
TASK_QUEUE_ENABLE
1
此环境变量用于控制开启task_queue算子下发队列优化的等级。
0:关闭。
1:开启,下发队列Level 1优化。
2:开启,下发队列Level 2优化。
- 仅在使用torch_atb的时候有用。
- ASCEND_LAUNCH_BLOCKING设置为“1”时,task_queue算子队列关闭,TASK_QUEUE_ENABLE设置不生效。
- 仅支持
Atlas 训练系列产品 和Atlas A2 训练系列产品 /Atlas A2 推理系列产品 。
-
- 加速库日志相关环境变量请参考可维可测能力环境变量。
- 算子库相关环境变量
环境变量名
默认值
功能说明
配置说明
变更声明
LCCL_DETERMINISTIC
0
算子确定性计算开关,开启后所有支持开关控制的算子变为确定性计算,不支持开关控制的算子不受影响。
目前该开关仅涉及LCCL确定性AllReduce(保序加)是否开启(有影响的Operation包括AllReduceOperation、ReduceScatterOperation和LinearParallelOperation)。需注意,开启功能仅在单机场景生效,即rankSize<=单机卡数。
开启后会有如下影响:
- 影响部分通信算子性能。
- 影响lccl通信算子的累加序。
0:关闭。
1:开启。
后续将随LCCL功能一起日落,请谨慎使用。
ASDOPS_QUANT_MIN_NEG_127
0
控制int8量化输出的最小值。
不建议用户修改。
0:最小值为-128。
1:最小值为-127。
建议直接使用默认值,修改默认值使用会影响性能和精度。后续版本会删除此环境变量,请谨慎使用。