昇腾社区首页
中文
注册

环境变量参考

加速库安装完成后,提供进程级环境变量设置脚本“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_SETUP_CACHE_ENABLE

    1

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

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

    0:关闭Setup缓存。

    1:开启Setup缓存。

    -

    ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT

    1

    本地kernelCache的槽位数。

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

    支持范围:1~1024。

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

    ATB_OPSRUNNER_KERNEL_CACHE_GLOABL_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_WORKSPACE_MEM_ALLOC_GLOBAL

    0

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

    0:不开启。

    1:开启。

    -

    ATB_COMPARE_TILING_EVERY_KERNEL

    0

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

    0:不开启。

    1:开启。

    -

    ATB_HOST_TILING_BUFFER_BLOCK_NUM

    128

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

    配置范围:128~1024。

    -

    ATB_DEVICE_TILING_BUFFER_BLOCK_NUM

    32

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

    配置范围:32~1024。

    -

    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 800I A2 推理产品 8卡且数据量小于100MB。

    true或者1开启。0或者false关闭。

    -

    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时:关闭task_queue算子下发队列优化。
    • 配置为1或未配置时:开启task_queue算子下发队列Level 1优化。

      Level 1优化:使能task_queue算子下发队列优化,将算子下发任务分为两段,一部分放在新增的二级流水上,一、二级流水通过队列传递任务,相互并行,通过部分掩盖减少整体的下发耗时,提升端到端性能。

    • 配置为2时:开启task_queue算子下发队列Level 2优化。

      Level 2优化:包含Level 1的优化并增加了一、二级流水负载均衡和二级流水唤醒加速优化。仅在二进制场景生效,建议配置值为Level 2优化。

    0:关闭。

    1:开启,下发队列Level 1优化。

    2:开启,下发队列Level 2优化。

    • 仅在使用torch_atb的时候有用。
    • ASCEND_LAUNCH_BLOCKING设置为“1”时,task_queue算子队列关闭,TASK_QUEUE_ENABLE设置不生效。
    • 仅支持 Atlas 训练系列产品 Atlas A2 训练系列产品 / Atlas 800I A2 推理产品

    -

  • 算子库相关环境变量

    环境变量名

    默认值

    功能说明

    配置说明

    变更声明

    LCCL_DETERMINISTIC

    0

    算子确定性计算开关,开启后所有支持开关控制的算子变为确定性计算,不支持开关控制的算子不受影响。

    目前该开关仅涉及LCCL确定性AllReduce(保序加)是否开启(有影响的Operation包括AllReduceOperation、ReduceScatterOperation和LinearParallelOperation)。需注意,开启功能仅在单机场景生效,即rankSize<=单机卡数。

    开启后会有如下影响:

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

    0:关闭。

    1:开启。

    -

    ASDOPS_QUANT_MIN_NEG_127

    0

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

    不建议用户修改。

    0:最小值为-128。

    1:最小值为-127。

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