环境变量说明

MindIE LLM安装完成后,提供进程级环境变量设置脚本“set_env.sh”,以自动完成环境变量设置。

“set_env.sh”脚本环境变量

表1 “set_env.sh”脚本环境变量说明

环境变量名

功能描述

取值范围

默认值

  • MindIE_LLM相关环境变量

MINDIE_LLM_CONTINUOUS_BATCHING

MindIE LLM是否连续batching的开关。

  • 0:不开启
  • 1:开启

1

MINDIE_LLM_HOME_PATH

MindIE LLM主目录所在路径。

N/A

N/A

MINDIE_LLM_PYTHON_LOG_TO_FILE

MindIE LLM中Python程序运行时产生的日志是否写入文件的开关。

  • 0:不开启
  • 1:开启

1

MINDIE_LLM_PYTHON_LOG_LEVEL

用于设定ATB的Python日志级别。

  • DEBUG
  • INFO
  • WARN
  • ERROR
  • CRITICAL

INFO

MINDIE_LLM_PYTHON_LOG_PATH

MindIE LLM中Python程序运行时所产生日志文件的存储路径。

字符串路径,默认“~/mindie/log/debug/”

~/mindie/log/debug/

MINDIE_LLM_PYTHON_LOG_TO_STDOUT

MindIE LLM中Python程序运行时产生的日志是否写入标准输出流的开关。

  • 0:不开启
  • 1:开启

0

MINDIE_LLM_RECOMPUTE_THRESHOLD

MindIE LLM中重计算阈值。

[0,1]

0.5

PYTORCH_INSTALL_PATH

torch三方件的安装路径,使用以下方式获取

python3 -c 'import torch, os; print(

os.path.dirname(os.path.abspath(torch.__file__)))'。

N/A

N/A

PYTORCH_NPU_INSTALL_PATH

torch_npu三方件的安装路径,使用以下方式获取python3 -c 'import torch, torch_npu, os; print(os.path.dirname(os.path.abspath(torch_npu.__file__)))'。

N/A

N/A

  • ATB_Models相关环境变量

ATB_OPERATION_EXECUTE_ASYNC

控制ATB graph的setup和execute是否使用pipeline并行,设置为1则开启。

  • 0:不开启
  • 1:开启

1

ATB_SPEED_HOME_PATH

ATB模型lib路径的环境变量,必须配置。

必须是ATB模型lib路径

None

TASK_QUEUE_ENABLE

检查是否开启了torch的TASK_QUEUE,如果是,则必须使用torch的TASK_QUEUE来执行atb graph的execute。

  • 0:模型仓拉起子线程执行execute任务
  • 1:使用Torch三方件启动的线程执行execute任务

1

  • 日志相关环境变量

MINDIE_LLM_LOG_TO_FILE

MindIE LLM C++日志写入文件开关。

  • 0:不开启
  • 1:开启

1

MINDIE_LLM_LOG_LEVEL

MindIE LLM C++日志级别。

  • DEBUG
  • INFO
  • WARN
  • ERROR
  • CRITICAL

INFO

MINDIE_LLM_LOG_TO_STDOUT

MindIE LLM C++日志写入标准输出流开关。

  • 0:不开启
  • 1:开启

0

其他可选环境变量

MindIE_LLM相关环境变量请参考表2

表2 MindIE_LLM相关环境变量说明

环境变量名

功能描述

取值范围

默认值

HOST_IP

宿主机IP地址。

N/A

N/A

INF_NAN_MODE_ENABLE

可以开启此环境变量,开启后若出现溢出,溢出值会被置为NaN;若不开启此变量,则会对溢出值进行截断。

  • 0:不开启
  • 1:开启

1

LOCAL_RANK

指示Device的本地ID。

[0, ${WORLD_SIZE} - 1]

0

MIES_USE_MB_SWAPPER

高性能Swap开关。

  • 0:不开启
  • 1:开启

0

MINDIE_CHECK_INPUTFILES_PERMISSION

是否需要检验外部文件的权限信息,包括文件所有者和其他人对文件的写权限。

  • 0:不需要检验外部文件的权限信息
  • 1:需要检验外部文件的权限信息

1

MINDIE_LLM_BENCHMARK_ENABLE

是否开启MindIE LLM模块的Benchmark功能,开启后将会输出性能数据到指定文件路径。

  • 0:不开启
  • 1:开启

0

MINDIE_LLM_BENCHMARK_FILEPATH

指定MindIE LLM模块的Benchmark功能输出的性能数据文件路径。

N/A

"{MINDIE_LLM_HOME_PATH}/logs/benchmark.jsonl"

MINDIE_LLM_BENCHMARK_RESERVING_RATIO

当性能数据文件超过最大文件大小限制时,旧数据会被新数据覆盖。此环境变量指定保留旧数据的比例,默认为0.1。

[0.0, 1.0]

0.1

MINDIE_LLM_FRAMEWORK_BACKEND

MindIE LLM框架后端类型,当前可选值为"atb"(ATB,默认值)和"ms"(MindSpore)。

  • ATB
  • MS

(不区分大小写)

ATB

MINDIE_LLM_USE_MB_SWAPPER

MindIE LLM高性能Swap开关。

  • 0:不开启
  • 1:开启

0

NPU_DEVICE_IDS

使用的NPU卡号。

[0,卡号]

例:[0, 1, 2,...]

N/A

NPU_MEMORY_FRACTION

NPU显存利用率。

(0.0, 1.0]

  • ATB Models中默认值为1.0
  • MindIE LLM中默认值为0.8

PERFORMANCE_PREFIX_TREE_ENABLE

memory_decoding并行解码高性能前缀树实现开关。

  • 0:不开启
  • 1:开启

0

POST_PROCESSING_SPEED_MODE_TYPE

指定后处理加速模式

  • 0:不开启加速
  • 1:开启top_p近似计算
  • 2:开启索引加速
  • 3:同时开启上top_p近似计算和索引加速

0

RANK

指示device的全局ID。

[0, ${WORLD_SIZE} - 1)。

0

SOURCE_DATE_EPOCH

消除whl包的bep差异。

N/A

N/A

WORLD_SIZE

张量并行数量。

N/A

N/A

ATB_Models相关环境变量请参考表3

表3 ATB_Models相关环境变量说明

环境变量名

功能描述

取值范围

默认值

ATB_LLM_BENCHMARK_ENABLE

性能数据获取是否打开。

  • 0:不开启
  • 其它值:开启

0

ATB_LLM_BENCHMARK_FILEPATH

性能数据保存路径。

所有值

None

ATB_LLM_ENABLE_AUTO_TRANSPOSE

是否开启权重右矩阵自动转置寻优。

  • 0:不开启
  • 1:开启

1

ATB_LLM_HCCL_ENABLE

华为集合通信计算库选择。

N/A

N/A

ATB_LLM_LCOC_ENABLE

通信计算掩盖功能开关。

  • 0:不开启
  • 1:开启

1

ATB_LLM_LOGITS_SAVE_ENABLE

是否保存logits信息。

  • 0:否
  • 其它值:是

0

ATB_LLM_LOGITS_SAVE_FOLDER

保存logits信息的文件夹。

所有值

None

ATB_LLM_RAZOR_ATTENTION_ENABLE

开启ra压缩需要。

  • 0:不开启
  • 1:开启

0

ATB_LLM_RAZOR_ATTENTION_ROPE

在rope旋转编码方式下的Razor attention压缩算法使能开关。

  • 0:不开启
  • 1:开启

0

ATB_LLM_TOKEN_IDS_SAVE_ENABLE

是否保存token信息。

  • 0:否
  • 其它值:是

0

ATB_LLM_TOKEN_IDS_SAVE_FOLDER

保存token信息的文件夹。

所有值

None

ATB_PROFILING_ENABLE

是否采集性能profiling数据。

  • 0:否
  • 1:是

0

ATB_USE_TILING_COPY_STREAM

是否开启双stream功能。

  • 0:不开启
  • 1:开启

0

BIND_CPU

是否将NPU上运行的进程基于CPU亲和度绑核。

  • 0:不开启
  • 1:开启

1

CPU_BINDING_NUM

每个device上绑定的核数。

[0, cpu核数除以numa上的device个数]

None

IS_ALIBI_MASK_FREE

是否支持Speculate。

  • 0:否
  • 1:是

0

LONG_SEQ_ENABLE

判断是否为长序列。

  • 0:否
  • 1:是

0

MINDIE_ACLNN_CACHE_GLOBAL_COUNT

Plugin Op中aclExecutor及对应aclTensor的全局Cache个数。

[0, 100)

16

PROFILING_FILEPATH

设置profiling文件路径,默认保存在当前路径下profiling文件夹中。

N/A

N/A

PROFILING_LEVEL

设置ProfilerLevel。

  • Level0
  • Level1
  • Level2
  • Level_none

Level0

RANKTABLEFILE

启动多机时需要。

N/A

N/A

RESERVED_MEMORY_GB

模型运行时动态申请显存池的大小。

[0, 64)

3

TIME_IT

判断调用_timeit_run还是_run。

[0,1]

默认值为0,要开启性能测试需设置为1,部分场景需开启用来测试性能,详细场景使用情况参考各模型readme。

0

日志相关环境变量请参考表4

表4 日志相关环境变量说明

环境变量名

功能描述

取值范围

默认值

ATB_LOG_LEVEL

控制日志级别。

  • DEBUG
  • INFO
  • WARN
  • ERROR
  • CRITICAL

INFO

ATB_LOG_TO_FILE

控制日志是否保存到文件,设置为1则开启。

  • other:不开启
  • 1:开启

other

ATB_LOG_TO_STDOUT

控制日志是否打屏,设置为1则开启。

  • other:不开启
  • 1:开启

other

LOG_LEVEL

用于设定ATB的Python日志级别。

  • NOTSET
  • DEBUG
  • INFO
  • WARN
  • WARNING
  • ERROR
  • FATAL
  • CRITICAL

INFO

LOG_TO_FILE

决定ATB的Python日志是否写入文件,以及文件路径。

字符串路径,默认“~/mindie/log/debug/”

~/mindie/log/debug/

MINDIE_LLM_PYTHON_LOG_MAXNUM

MindIE LLM Python日志最大数量。

[0,64]

10

MINDIE_LLM_PYTHON_LOG_MAXSIZE

MindIE LLM单Python日志最大大小(单位:字节)。

[0, 20971520]

20971520

MINDIE_LOG_LEVEL

控制日志级别。

  • DEBUG
  • INFO
  • WARN
  • ERROR
  • CRITICAL

INFO

MINDIE_LOG_PATH

控制日志写入路径。

N/A

"mindie/log/debug"

MINDIE_LOG_ROTATE

控制日志轮转。

N/A

N/A

MINDIE_LOG_TO_FILE

控制日志是否保存到文件,设置为1则开启。

{0, 1, true, false}

true

MINDIE_LOG_TO_STDOUT

控制日志是否打屏,设置为1则开启。

{0, 1, true, false}

false

MINDIE_LOG_VERBOSE

控制日志中是否加入可选日志内容。

{0, 1, true, false}

true

PYTHON_LOG_MAXSIZE

ATB Python日志单个文件的最大容量(单位:字节)。

字符串表示的字节数

1073741824(1GB)

加速库相关环境变量请参考表5

表5 加速库相关环境变量说明

环境变量名

功能描述

取值范围

默认值

ASCEND_LAUNCH_BLOCKING

算子同步下发功能开关,用于debug场景。

  • 0:不开启
  • 1:开启

0

ASCEND_RT_VISIBLE_DEVICES

设置卡号。

[0, 卡号]

例:[0, 1, 2,...]

N/A

ATB_HOME_PATH

ATB加速库路径的环境变量,无默认值,必须配置。

N/A

N/A

ATB_OPSRUNNER_KERNEL_CACHE_GLOABL_COUNT

全局kernelCache的槽位数。

增加槽位数时:增加cache命中率,但降低检索效率。

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

[1, 1024]

16

ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT

本地kernelCache的槽位数。

增加槽位数时:增加cache命中率,但降低检索效率。

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

[1, 1024]

1

ATB_WORKSPACE_MEM_ALLOC_GLOBAL

是否使用全局中间tensor内存分配算法。

开启后会对中间tensor内存进行大小计算与分配。

  • 0:不开启
  • 1:开启

1

更多加速库相关的环境变量可参考《CANN Ascend Transformer Boost加速库》的“环境变量参考”章节

当BIND_CPU环境变量开启时,会调用execute_command方法执行以下命令:

execute_command(["npu-smi", "info", "-i", f"{npu_id}", "-t", "memory"]).split("\n")[1:]execute_command(["npu-smi", "info", "-i", f"{npu_id}", "-t", "usages"]).split("\n")[1:]execute_command(["npu-smi", "info", "-m"]).strip().split("\n")[1:]execute_command(["npu-smi", "info", "-t", "board", "-i", f"{device_info.npu_id}", -c", f"{device_info.chip_id}"]).strip().split("\n")execute_command(["lspci", "-s", f"{pcie_no}", "-vvv"]).split("\n")execute_command(["lscpu"]).split("\n")