问题描述
部署模型后推理速度较慢,等待时间长,与预期差异较大。(尤其是针对大模型、长文本情况)
可能原因
1. 环境变量优化
2. 日志级别问题
3. OS内核版本问题
排查方法及解决方案
1. 针对大模型需要更高的显存,建议适当调高 NPU_MEMORY_FRACTION 环境变量的值,默认是0.8,建议调到0.95以上
===》 export NPU_MEMORY_FRACTION = 0.96
2. 针对推理时卡在哪里很久等待时间较长,建议使能AIV HCCL_OP_EXPANSION_MODE, 关闭确定性计算HCCL_DETERMINISTIC,可以通过env | grep HCCL_来查看是否设置。
===> 使能 AIV : export HCCL_OP_EXPANSION_MODE="AIV"
关闭确定性计算:export HCCL_DETERMINISTIC=false
3. 在PyTorch的训练或推理场景,可以通过设置环境变量CPU_AFFINITY_CONF来控制CPU端算子任务的处理器亲和性,即设定任务绑核。该配置能够优化任务的执行效率,避免跨 NUMA(非统一内存访问架构)节点的内存访问,减少任务调度开销。
===>
开启绑核优化示例,开启方式三选一,建议优先尝试示例二
示例一:粗粒度绑核
export CPU_AFFINITY_CONF=1
示例二:细粒度绑核
export CPU_AFFINITY_CONF=2
示例三:自定义多张NPU卡的绑核范围
export CPU_AFFINITY_CONF=1,npu0:0-1,npu1:2-5,npu3:6-6
4. 在发送请求时,观察日志中是否存在大量的debug、info日志打印。如果存在可能是为了排查问题,各组件开启了debug日志,事后忘记关闭,而大量的日志打印是十分耗时的行为,且在正常的服务过程中,不需要这些日志。
===》 在set_env.sh中关闭各组件的debug/info日志等级,改成ERROR级别。
5. 使用`uname -r `查看OS内核版本,版本小于5.10
===》升级系统,内核版本升级到5.10;(升级前需要找研发确认)
问题描述
部署模型后推理速度较慢,等待时间长,与预期差异较大。(尤其是针对大模型、长文本情况)
可能原因
1. 环境变量优化
2. 日志级别问题
3. OS内核版本问题
排查方法及解决方案
1. 针对大模型需要更高的显存,建议适当调高 NPU_MEMORY_FRACTION 环境变量的值,默认是0.8,建议调到0.95以上
===》 export NPU_MEMORY_FRACTION = 0.96
2. 针对推理时卡在哪里很久等待时间较长,建议使能AIV HCCL_OP_EXPANSION_MODE, 关闭确定性计算HCCL_DETERMINISTIC,可以通过env | grep HCCL_来查看是否设置。
===> 使能 AIV : export HCCL_OP_EXPANSION_MODE="AIV"
关闭确定性计算:export HCCL_DETERMINISTIC=false
3. 在PyTorch的训练或推理场景,可以通过设置环境变量CPU_AFFINITY_CONF来控制CPU端算子任务的处理器亲和性,即设定任务绑核。该配置能够优化任务的执行效率,避免跨 NUMA(非统一内存访问架构)节点的内存访问,减少任务调度开销。
===>
开启绑核优化示例,开启方式三选一,建议优先尝试示例二
示例一:粗粒度绑核
export CPU_AFFINITY_CONF=1
示例二:细粒度绑核
export CPU_AFFINITY_CONF=2
示例三:自定义多张NPU卡的绑核范围
export CPU_AFFINITY_CONF=1,npu0:0-1,npu1:2-5,npu3:6-6
4. 在发送请求时,观察日志中是否存在大量的debug、info日志打印。如果存在可能是为了排查问题,各组件开启了debug日志,事后忘记关闭,而大量的日志打印是十分耗时的行为,且在正常的服务过程中,不需要这些日志。
===》 在set_env.sh中关闭各组件的debug/info日志等级,改成ERROR级别。
5. 使用`uname -r `查看OS内核版本,版本小于5.10
===》升级系统,内核版本升级到5.10;(升级前需要找研发确认)