环境变量说明
MindIE LLM安装完成后,提供进程级环境变量设置脚本“set_env.sh”,以自动完成环境变量设置。
环境变量名 |
说明 |
|---|---|
MINDIE_LLM_HOME_PATH |
MindIE LLM主目录所在路径。默认值为set_env.sh所在的路径。 |
MINDIE_LLM_BACKEND |
BACKEND的类型,可选值为"atb"、"pt"和"ms"。 |
PYTHONPATH |
用于告诉 Python 解释器在哪个路径下查找用户定义的模块。 |
ATB_SPEED_HOME_PATH |
模型仓安装后文件存储路径,MindIE LLM和MindIE 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异步执行开关。
|
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内存分配。
|
ATB_CONTEXT_WORKSPACE_RING |
NPU侧用来存放算子Workspace data的Buffer块数量。默认为1。 |
ATB_CONTEXT_WORKSPACE_SIZE |
NPU侧用来存放算子Workspace data的Buffer块大小。默认为629145600字节。 |
ATB_USE_TILING_COPY_STREAM |
是否多开启一个Stream做Tiling data从CPU拷贝到NPU的动作。不推荐开启,加速库已默认开启ATB_LAUNCH_KERNEL_WITH_TILING环境变量,打开Tiling data拷贝随算子下发功能。
|
ATB_OPSRUNNER_KERNEL_CACHE_LOCAL_COUNT |
设置op runner的本地cache 槽位数,默认值为1个。 |
ATB_OPSRUNNER_KERNEL_CACHE_GLOABL_COUNT |
设置op runner的全局cache 槽位数,默认值为16个。 |
ATB_WORKSPACE_MEM_ALLOC_GLOBAL |
ATB全局内存分配开关。
|
其他环境变量说明。
环境变量名 |
说明 |
|---|---|
INF_NAN_MODE_ENABLE |
可以开启以下环境变量,开启后若出现溢出,溢出值会被置为NaN;若不开启此变量,则会对溢出值进行截断。
|
INT8_FORMAT_NZ_ENABLE |
INT8类型的Tensor转为NZ格式时需要开启此环境变量。
|
ATB_ACLNN_CACHE_GLOABL_COUNT |
设置AclNN算子所需aclExecutor的全局Cache个数。取值范围:[0, 100),默认值为16。 |
ATB_LLM_LCOC_ENABLE |
通信计算掩盖功能开关。
|
BIND_CPU |
是否将NPU上运行的进程基于CPU亲和度绑核。
|
CPU_BINDING_NUM |
设置每个进程绑的核数。该值不得小于0,默认为numa节点核心数的一半。 |
WORLD_SIZE |
张量并行数量。 |
ASCEND_RT_VISIBLE_DEVICES |
指定当前机器上可用的逻辑NPU核心,多个核心间需使用逗号相连。默认值为[1,2,3,...,${WORLD_SIZE} - 1]。 |
ATB_LLM_HCCL_ENABLE |
是否使能HCCL通信后端。
|
PROFILING_LEVEL |
设置ProfilerLevel。可选项为"Level0"(默认值)、"Level1"、"Level2"、"Level_none"。 |
ATB_PROFILING_ENABLE |
是否采集性能profiling数据。
|
PROFILING_FILEPATH |
设置profiling文件路径,默认保存在当前路径下profiling文件夹中。 |
RESERVED_MEMORY_GB |
模型运行时动态申请显存池的大小。取值范围:[0, 64),默认值为3。 |
CUDA_MEMORY_FRACTION |
显存利用率。在ATB Models中默认为1.0。取值范围:(0.0, 1.0]。 |
MAX_MEMORY_GB |
推理时使用的最大显存。默认值为None,取npu-smi info指令获取到的显卡内存值。取值范围:(0, 64]。 |
ATB_LLM_COMM_BACKEND |
通信后端。支持"hccl"或"lccl"。Atlas 800I A2默认通信后端为"lccl"。Altas 300I Duo默认通信后端为"hccl"。 |
ATB_LLM_ADD_NORM_ENABLE |
是否使用add norm融合算子。
|
ATB_LLM_SPECULATE |
是否开启并行解码。
|
ATB_LOG_TO_STDOUT |
ATB C++日志写入标准输出流的开关。
|
ATB_LOG_TO_FILE |
ATB C++日志保存写入文件的开关。
|
ATB_LOG_LEVEL |
ATB C++日志级别。 可选范围:"TRACE"、"DEBUG"、"INFO"、"WARN"(默认值)、"ERROR","FATAL"。 |
ATB_HOME_PATH |
ATB加速库所在路径。 |
ASCEND_LAUNCH_BLOCKING |
算子同步下发功能开关,用于debug场景。
|
IS_ALIBI_MASK_FREE |
是否支持Speculate。
|
RANK |
指示device的全局ID。取值范围为[0, ${WORLD_SIZE} - 1),默认值为0。 |
LONG_SEQ_ENABLE |
判断是否是长序列。 |
ATB_LLM_BENCHMARK_ENABLE |
性能数据获取是否打开。
|
ATB_LLM_BENCHMARK_FILEPATH |
性能数据保存路径,默认为None。 |
ATB_LLM_TOKEN_IDS_SAVE_ENABLE |
ModelTest场景下,是否保存token信息(使能此功能时,环境变量`MODELTEST_DATASET_SPECIFIED`不能为空)。
|
ATB_LLM_TOKEN_IDS_SAVE_FOLDER |
ModelTest场景下,token信息的存放路径,默认为当前路径。 |
MODELTEST_DATASET_SPECIFIED |
ModelTest场景下,采用的数据集后处理类型,默认为None。 |
ATB_LLM_LOGITS_SAVE_ENABLE |
ModelTest场景下,是否保存logits信息(使能此功能时,环境变量`MODELTEST_DATASET_SPECIFIED`不能为空)。
|
ATB_LLM_LOGITS_SAVE_FOLDER |
Logits信息的保存路径,默认为当前路径。 |
ATB_LLM_ENABLE_AUTO_TRANSPOSE |
是否开启权重右矩阵自动转置寻优。
|
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。 |
TIMEIT |
判断调用_timeit_run还是_run。 |
MAX_SEQ_LEN |
RotaryEmbedding入参。 |
MINDIE_LLM_LOG_TO_STDOUT |
MindIE LLM C++日志写入标准输出流开关。
|
MINDIE_LLM_LOG_TO_FILE |
MindIE LLM C++日志写入文件开关。
|
MINDIE_LLM_LOG_LEVEL |
MindIE LLM C++日志级别。取值范围:"TRACE"、"DEBUG"、"INFO"、"WARN"(默认值)、"ERROR"、"FATAL"。 |
SOURCE_DATE_EPOCH |
构建whl包所需的时间戳。 |
RANKTABLEFILE |
Ranktable文件存放的路径。
|
CUDA_VISIBLE_DEVICES |
GPU精度、性能测试需要。 |
MIES_USE_MB_SWAPPER |
高性能Swap开关。 |
ATB_CONVERT_NCHW_TO_ND |
是否将输入Tensor的格式从NCHW转成ND(加速库不支持传入NCHW格式的Tensor)。
|
ATB_LAYER_INTERNAL_TENSOR_REUSE |
Model调用Layer时,是否复用Layer间的中间Tensor。
|
当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")