MindIE LLM安装完成后,提供进程级环境变量设置脚本“set_env.sh”,以自动完成环境变量设置。
环境变量名 |
功能描述 |
取值范围 |
默认值 |
---|---|---|---|
|
|||
MINDIE_LLM_CONTINUOUS_BATCHING |
MindIE LLM是否连续batching的开关。 |
|
1 |
MINDIE_LLM_HOME_PATH |
MindIE LLM主目录所在路径。 |
N/A |
N/A |
MINDIE_LLM_PYTHON_LOG_TO_FILE |
MindIE LLM中Python程序运行时产生的日志是否写入文件的开关。 |
|
1 |
MINDIE_LLM_PYTHON_LOG_LEVEL |
用于设定ATB的Python日志级别。 |
|
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 |
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_OPERATION_EXECUTE_ASYNC |
控制ATB graph的setup和execute是否使用pipeline并行,设置为1则开启。 |
|
1 |
ATB_SPEED_HOME_PATH |
ATB模型lib路径的环境变量,必须配置。 |
必须是ATB模型lib路径 |
None |
TASK_QUEUE_ENABLE |
检查是否开启了torch的TASK_QUEUE,如果是,则必须使用torch的TASK_QUEUE来执行atb graph的execute。 |
|
1 |
|
|||
MINDIE_LLM_LOG_TO_FILE |
MindIE LLM C++日志写入文件开关。 |
|
1 |
MINDIE_LLM_LOG_LEVEL |
MindIE LLM C++日志级别。 |
|
INFO |
MINDIE_LLM_LOG_TO_STDOUT |
MindIE LLM C++日志写入标准输出流开关。 |
|
0 |
MindIE_LLM相关环境变量请参考表2。
环境变量名 |
功能描述 |
取值范围 |
默认值 |
---|---|---|---|
HOST_IP |
宿主机IP地址。 |
N/A |
N/A |
INF_NAN_MODE_ENABLE |
可以开启此环境变量,开启后若出现溢出,溢出值会被置为NaN;若不开启此变量,则会对溢出值进行截断。 |
|
1 |
LOCAL_RANK |
指示Device的本地ID。 |
[0, ${WORLD_SIZE} - 1] |
0 |
MIES_USE_MB_SWAPPER |
高性能Swap开关。 |
|
0 |
MINDIE_CHECK_INPUTFILES_PERMISSION |
是否需要检验外部文件的权限信息,包括文件所有者和其他人对文件的写权限。 |
|
1 |
MINDIE_LLM_BENCHMARK_ENABLE |
是否开启MindIE LLM模块的Benchmark功能,开启后将会输出性能数据到指定文件路径。 |
|
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 |
MINDIE_LLM_USE_MB_SWAPPER |
MindIE LLM高性能Swap开关。 |
|
0 |
NPU_DEVICE_IDS |
使用的NPU卡号。 |
[0,卡号] 例:[0, 1, 2,...] |
N/A |
NPU_MEMORY_FRACTION |
NPU显存利用率。 |
(0.0, 1.0] |
|
PERFORMANCE_PREFIX_TREE_ENABLE |
memory_decoding并行解码高性能前缀树实现开关。 |
|
0 |
POST_PROCESSING_SPEED_MODE_TYPE |
指定后处理加速模式 |
|
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。
环境变量名 |
功能描述 |
取值范围 |
默认值 |
---|---|---|---|
ATB_LLM_BENCHMARK_ENABLE |
性能数据获取是否打开。 |
|
0 |
ATB_LLM_BENCHMARK_FILEPATH |
性能数据保存路径。 |
所有值 |
None |
ATB_LLM_ENABLE_AUTO_TRANSPOSE |
是否开启权重右矩阵自动转置寻优。 |
|
1 |
ATB_LLM_HCCL_ENABLE |
华为集合通信计算库选择。 |
N/A |
N/A |
ATB_LLM_LCOC_ENABLE |
通信计算掩盖功能开关。 |
|
1 |
ATB_LLM_LOGITS_SAVE_ENABLE |
是否保存logits信息。 |
|
0 |
ATB_LLM_LOGITS_SAVE_FOLDER |
保存logits信息的文件夹。 |
所有值 |
None |
ATB_LLM_RAZOR_ATTENTION_ENABLE |
开启ra压缩需要。 |
|
0 |
ATB_LLM_RAZOR_ATTENTION_ROPE |
在rope旋转编码方式下的Razor attention压缩算法使能开关。 |
|
0 |
ATB_LLM_TOKEN_IDS_SAVE_ENABLE |
是否保存token信息。 |
|
0 |
ATB_LLM_TOKEN_IDS_SAVE_FOLDER |
保存token信息的文件夹。 |
所有值 |
None |
ATB_PROFILING_ENABLE |
是否采集性能profiling数据。 |
|
0 |
ATB_USE_TILING_COPY_STREAM |
是否开启双stream功能。 |
|
0 |
BIND_CPU |
是否将NPU上运行的进程基于CPU亲和度绑核。 |
|
1 |
CPU_BINDING_NUM |
每个device上绑定的核数。 |
[0, cpu核数除以numa上的device个数] |
None |
IS_ALIBI_MASK_FREE |
是否支持Speculate。 |
|
0 |
LONG_SEQ_ENABLE |
判断是否为长序列。 |
|
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 |
RANKTABLEFILE |
启动多机时需要。 |
N/A |
N/A |
RESERVED_MEMORY_GB |
模型运行时动态申请显存池的大小。 |
[0, 64) |
3 |
TIME_IT |
判断调用_timeit_run还是_run。 |
[0,1] 默认值为0,要开启性能测试需设置为1,部分场景需开启用来测试性能,详细场景使用情况参考各模型readme。 |
0 |
日志相关环境变量请参考表4。
环境变量名 |
功能描述 |
取值范围 |
默认值 |
---|---|---|---|
ATB_LOG_LEVEL |
控制日志级别。 |
|
INFO |
ATB_LOG_TO_FILE |
控制日志是否保存到文件,设置为1则开启。 |
|
other |
ATB_LOG_TO_STDOUT |
控制日志是否打屏,设置为1则开启。 |
|
other |
LOG_LEVEL |
用于设定ATB的Python日志级别。 |
|
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 |
控制日志级别。 |
|
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。
环境变量名 |
功能描述 |
取值范围 |
默认值 |
---|---|---|---|
ASCEND_LAUNCH_BLOCKING |
算子同步下发功能开关,用于debug场景。 |
|
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内存进行大小计算与分配。 |
|
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")