环境变量说明

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

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

环境变量名

说明

MINDIE_LLM_BACKEND

MindIE LLM的BACKEND类型,可选值为"atb"、"pt"和"ms"。

PYTHONPATH

用于告诉 Python 解释器在哪个路径下查找用户定义的模块。

MINDIE_LLM_HOME_PATH

MindIE LLM主目录所在路径。默认值为set_env.sh所在的路径。

MINDIE_LLM_CONTINUOUS_BATCHING

MindIE LLM是否连续batching的开关。

  • 0:不开启
  • 1:开启(默认值)

MINDIE_LLM_PYTHON_LOG_TO_FILE

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

  • 0:不开启
  • 1:开启

MINDIE_LLM_PYTHON_LOG_TO_STDOUT

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

  • 0:不开启(默认值)
  • 1:开启

MINDIE_LLM_PYTHON_LOG_PATH

MindIE LLM中Python程序运行时所产生日志文件的存储路径。默认值为${MINDIE_LLM_HOME_PATH}/logs/pythonlog.log。

MINDIE_LLM_PYTHON_LOG_LEVEL

MindIE LLM中Python程序运行时的日志级别,包括CRITICAL, FATAL, ERROR, WARNING, INFO(默认值), DEBUG, NOTSET几种级别。

MINDIE_LLM_RECOMPUTE_THRESHOLD

MindIE LLM中重计算阈值。默认值为0.5。

ATB_SPEED_HOME_PATH

模型仓安装后文件存储路径,MindIE LLMMindIE Service组件依赖此环境变量。

PYTORCH_INSTALL_PATH

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

PYTORCH_NPU_INSTALL_PATH

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

LD_LIBRARY_PATH

在LD_LIBRARY_PATH环境变量中,添加${ATB_SPEED_HOME_PATH}/lib路径,以此关联模型仓编译出的动态库;

添加${PYTORCH_INSTALL_PATH}/lib路径,以关联torch三方件提供的动态库;

添加${PYTORCH_NPU_INSTALL_PATH}/lib路径,以关联torch_npu三方件提供的动态库。

ATB_OPERATION_EXECUTE_ASYNC

算子setup和execute异步执行开关。

  • 0:不开启
  • 1:开启(默认值)

TASK_QUEUE_ENABLE

默认模型仓拉起子线程执行execute任务,开启此环境变量后,使用Torch三方件启动的线程执行execute任务。

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

ATB_CONTEXT_HOSTTILING_RING

CPU侧用来存放算子Tiling data的Buffer块数量。默认为1。

ATB_CONTEXT_HOSTTILING_SIZE

CPU侧用来存放算子Tiling data的Buffer块大小。默认为102400字节。

ATB_WORKSPACE_MEM_ALLOC_GLOBAL

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

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

  • 0:不开启
  • 1:开启(默认值)

ATB_USE_TILING_COPY_STREAM

是否多开启一个Stream做Tiling data从CPU拷贝到NPU的动作。不推荐开启,加速库已默认开启ATB_LAUNCH_KERNEL_WITH_TILING环境变量,打开Tiling data拷贝随算子下发功能。

  • 0:不开启(默认值)
  • 1:开启

ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT

设置op runner的本地cache 槽位数,默认值为1个。

ATB_OPSRUNNER_KERNEL_CACHE_GLOABL_COUNT

设置op runner的全局cache 槽位数,默认值为16个。

可选环境变量说明请参考表2

表2 其他环境变量说明

环境变量名

说明

INF_NAN_MODE_ENABLE

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

  • 0:不开启
  • 1:开启(默认值)

INT8_FORMAT_NZ_ENABLE

INT8类型的Tensor转为NZ格式时需要开启此环境变量。

  • 0:不开启(默认值)
  • 1:开启

ATB_ACLNN_CACHE_GLOABL_COUNT

设置AclNN算子所需aclExecutor的全局Cache个数。取值范围:[0, 100),默认值为16。

ATB_LLM_LCOC_ENABLE

通信计算掩盖功能开关。

  • 0:不开启
  • 1:开启(默认值)

BIND_CPU

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

  • 0:不开启
  • 1:开启(默认值)

CPU_BINDING_NUM

设置每个进程绑的核数。该值不得小于0,默认值为None,即将NUMA节点一半的CPU核心数平分给直连在这个NUMA节点上的NPU device。

NUMA(Non-UnifNUMA(Non-Uniform Memory Access,非统一内存访问)架构是一种针对多处理器系统的内存组织方式。

WORLD_SIZE

张量并行数量。

ASCEND_RT_VISIBLE_DEVICES

指定当前机器上可用的逻辑NPU核心,多个核心间使用逗号相连。默认值为None,代表可用的逻辑NPU核心为[1,2,3,...,${WORLD_SIZE} - 1]。

ATB_LLM_HCCL_ENABLE

是否使能HCCL通信后端。

  • 0:不开启(默认值)
  • 1:开启

PROFILING_LEVEL

设置ProfilerLevel。可选项为"Level0"(默认值)、"Level1"、"Level2"、"Level_none"。

ATB_PROFILING_ENABLE

是否采集性能profiling数据。

  • 0:否(默认值)
  • 1:是

PROFILING_FILEPATH

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

RESERVED_MEMORY_GB

模型运行时动态申请显存池的大小。取值范围:[0, 64),默认值为3。

NPU_MEMORY_FRACTION

NPU显存利用率。取值范围:(0.0, 1.0],在ATB Models中默认值为1.0,在MindIE LLM 中默认值为0.8。

ATB_LLM_BENCHMARK_ENABLE

性能数据获取是否打开。

  • 0:不开启(默认值)
  • 1:开启

ATB_LLM_BENCHMARK_FILEPATH

性能数据保存路径,默认为None。

ATB_LLM_TOKEN_IDS_SAVE_ENABLE

ModelTest场景下,是否保存token信息。

  • 0:否(默认值)
  • 1:是

使用此功能时,“MODELTEST_DATASET_SPECIFIED”环境变量不能为空。

ATB_LLM_TOKEN_IDS_SAVE_FOLDER

ModelTest场景下,token信息的存放路径,默认为当前路径。

MODELTEST_DATASET_SPECIFIED

ModelTest场景下,采用的数据集后处理类型,默认为None。

ATB_LLM_LOGITS_SAVE_ENABLE

ModelTest场景下,是否保存logits信息。

  • 0:否(默认值)
  • 1:是

使用此功能时,“MODELTEST_DATASET_SPECIFIED”环境变量不能为空。

ATB_LLM_LOGITS_SAVE_FOLDER

Logits信息的保存路径,默认为当前路径。

ATB_LLM_ENABLE_AUTO_TRANSPOSE

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

  • 0:不开启
  • 1:开启(默认值)

ATB_LOG_TO_STDOUT

ATB的C++日志写入标准输出流的开关。

  • 0:不开启(默认值)
  • 1:开启

ATB_LOG_TO_FILE

ATB的C++日志写入文件的开关。

  • 0:不开启(默认值)
  • 1:开启

ATB_LOG_LEVEL

ATB C++日志级别。可选范围:"TRACE"、"DEBUG"、"INFO"、"WARN"(默认值)、"ERROR","FATAL"。

ATB_HOME_PATH

ATB加速库所在路径。

ASCEND_LAUNCH_BLOCKING

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

  • 0:不开启(默认值)
  • 1:开启

IS_ALIBI_MASK_FREE

是否支持Speculate。

  • 0:否(默认值)
  • 1:是

RANK

指示device的全局ID。取值范围为[0, ${WORLD_SIZE} - 1),默认值为0。

LONG_SEQ_ENABLE

判断是否为长序列。

  • 0:否(默认值)
  • 1:是

LOG_LEVEL

ATB Python日志级别。取值范围:"NOTSET"、"DEBUG"、"INFO"(默认值)、"WARN"、"WARNING"、"ERROR"、"FATAL"、"CRITICAL"。

LOG_TO_FILE

ATB Python日志文件的存储路径。默认为空(即不写入文件)。

PYTHON_LOG_MAXSIZE

ATB Python日志单个文件的最大容量(单位:字节),默认值:1073741824(1GB)。

LOCAL_RANK

指示Device的本地ID。取值范围为0到每台机器拥有的NPU卡数-1, 默认值为0。

TIMEIT

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

MAX_SEQ_LEN

RotaryEmbedding入参。

MINDIE_LLM_LOG_TO_STDOUT

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

  • 0:不开启(默认值)
  • 1:开启

MINDIE_LLM_LOG_TO_FILE

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

  • 0:不开启(默认值)
  • 1:开启

MINDIE_LLM_LOG_LEVEL

MindIE LLM C++日志级别。取值范围:"TRACE"、"DEBUG"、"INFO"、"WARN"(默认值)、"ERROR"、"FATAL"。

SOURCE_DATE_EPOCH

构建whl包所需的时间戳。

RANKTABLEFILE

Ranktable文件存放的路径。

  • 多机推理必须配置。
  • 单机推理建议取消该环境变量(取消命令:unset RANKTABLEFILE)。如果设置该环境变量,文件内容必须正确有效(节点IP地址和device_ip必须正确),否则会导致模型初始化失败。

ATB_LLM_RAZOR_ATTENTION_ENABLE

RA压缩开关。

  • 0:不开启(默认值)
  • 1:开启

MIES_USE_MB_SWAPPER

高性能Swap开关。

  • 0:不开启(默认值)
  • 1:开启

MIES_PYTHON_LOG_LEVEL

设定MindIE Server Python日志级别。取值范围:"CRITICAL"、"ERROR"、"WARNING"、"INFO"(default)、"DEBUG"、"NOTSET"。

MIES_PYTHON_LOG_TO_FILE

MindIE Server Python日志写入文件开关。

  • 0:不开启(默认值)
  • 1:开启

MIES_PYTHON_LOG_PATH

MindIE Server Python日志文件存储路径。

MIES_PYTHON_LOG_TO_STDOUT

MindIE Server Python日志写入标准输出流开关。

  • 0:不开启(默认值)
  • 1:开启

MINDIE_LLM_PYTHON_LOG_MAXSIZE

MindIE LLM Python单个日志文件的最大容量(单位:字节)。默认值:1073741824。

MINDIE_LLM_PYTHON_LOG_MAXNUM

MindIE LLM Python日志存储的最大数量(单位:件),默认值:10。

MINDIE_LLM_FRAMEWORK_BACKEND

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

MIES_INSTALL_PATH

MindIE Server的安装路径。

MIES_CONFIG_JSON_PATH

MindIE Server配置文件所在路径。

NPU_DEVICE_IDS

使用的NPU卡号。取值范围:[0, ${WORLD_SIZE} - 1]。

MIES_CONTAINER_IP

MindIE Server容器IP地址。

HOST_IP

宿主机IP地址。

MINDIE_LLM_BENCHMARK_ENABLE

是否开启MindIE LLM模块的benchmark功能,开启后将会输出性能数据到指定文件路径。默认为0,改为1可开启。

MINDIE_LLM_BENCHMARK_FILEPATH

指定MindIE LLM模块的benchmark功能输出的性能数据文件路径。默认为"{MINDIE_LLM_HOME_PATH}/logs/benchmark.jsonl"。

MINDIE_LLM_BENCHMARK_RESERVING_RATIO

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

POST_PROCESSING_SPEED_MODE_TYPE

  • 指定后处理加速模式,默认为0,即不开启加速。
  • 指定为1时,开启top_p近似计算,该功能加速较为明显,但会略微影响后处理精度。
  • 指定为2时,开启索引加速,该功能加速效果微弱。
  • 指定为3时,将同时开启上述两个功能。

ATB_LLM_RAZOR_ATTENTION_ROPE

Rope编码下的RA压缩开关。

  • 0:不开启(默认值)
  • 1:开启

MINDIE_LLM_USE_MB_SWAPPER

MindIE LLM高性能Swap开关。

  • 0:不开启(默认值)
  • 1:开启

MODELTEST_LOG_FILENAME

MindIE LLM Modeltest日志文件名。

MODELTEST_LOG_LEVEL

MindIE LLM Modeltest日志级别。取值范围:"DEBUG"、"INFO" (默认值)、"WARN"、"ERROR"、"CRITICAL"。

MODELTEST_LOG_TO_FILE

MindIE LLM Modeltest日志写入文件开关。

  • 0:不开启
  • 1:开启(默认值)

PERFORMANCE_PREFIX_TREE_ENABLE

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

  • 0:不开启(默认值)
  • 1:开启

ENABLE_ACLNN_ATTN_DECODE_BACKEND

Decode阶段attention计算是否使用aclnn后端,默认使用atb后端。

  • 0:使用atb后端(当权重格式为float16时,建议使用atb后端)
  • 1:使用aclnn后端(当权重格式为bfloat16时,建议使用aclnn后端)

当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")