昇腾MindIE的性能调优流程主要通过参数配置优化吞吐率(TPS),在满足时延约束的前提下实现最大吞吐。以下是关键参数配置及调优方法,结合具体场景说明:
MindIE模型参数配置文件路径默认为:
/usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
一、基础环境优化
CPU高性能模式与透明大页
在裸机环境中执行以下命令,开启CPU高性能模式和透明大页,可提升整体性能:
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
echo always > /sys/kernel/mm/transparent_hugepage/enabled
建议场景 :所有推理任务均适用,需在系统层面优先配置 。
高性能Swap机制
通过环境变量 MIES_USE_MB_SWAPPER 开启高性能Swap,当 maxPreemptCount > 0 时建议启用,可提升显存资源利用率 。
二、核心参数配置
1. 批处理大小(maxBatchSize)
- 不考虑时延的极限吞吐
将 maxBatchSize 调至显存允许的最大值,显存越大,吞吐率通常越高。
配置示例 :
"maxBatchSize": 256 // 根据显存容量调整
适用场景 :离线批量处理任务,对实时性无要求
- 限制非首Token时延的吞吐优化
若需将Decode平均时延控制在50ms以内,需适当调小 maxBatchSize,避免时延波动。
配置示例 :
"maxBatchSize": 64 // 根据实际时延测试调整
适用场景 :在线实时推理,如对话系统、实时推荐 。
2. 其他关键参数
- maxPreemptCount
控制任务抢占次数,需结合 MIES_USE_MB_SWAPPER 使用。若设置为非零值,建议开启高性能Swap - 线程数与实例数
根据CPU核心数和昇腾芯片的算力核数,合理配置推理线程数(num_threads)和模型实例数(instance_num),避免资源争抢 。
三、调优流程总结
- 环境预配置 :开启CPU高性能模式和透明大页 。
- 显存与批处理平衡 :
- 若追求极限吞吐,逐步增大 maxBatchSize 至显存上限 。
- 若需限制时延,逐步缩小 maxBatchSize 并监控时延 。
- 资源抢占优化 :通过 maxPreemptCount 和高性能Swap提升并发效率 。
- 验证与迭代 :使用性能分析工具(如昇腾Profiling)监控TPS、时延、显存占用等指标,反复调整参数至最优。
四、maxBatchSize的显存计算方式
根据昇腾社区的性能调优指南,maxBatchSize的显存需求需结合模型权重、序列长度等参数综合计算。以下是关键分析步骤:
- 显存计算公式 :根据的调优流程,显存容量(npuMemSize)的计算公式为:
npuMemSize = Floor[(单卡显存 - 空闲占用 - 权重/NPU卡数) * 0.8]
其中,权重指模型权重大小(如Llama3-8B为15GB),空闲占用为系统预留显存,系数0.8为缓冲区保留比例。
maxBatchSize与显存的关系 :
maxBatchSize的上限受显存限制,需满足以下条件:
maxBatchSize ≤ npuMemSize / (单个样本显存占用)
单个样本显存占用取决于模型结构、序列长度(如maxSeqLen)和数据类型(如FP16/BF16)。例如,若单个样本占用1GB显存,则maxBatchSize=256需至少256GB显存(未考虑权重和其他开销)。
实际配置建议 :
若模型权重为15GB(如Llama3-8B),单卡显存为32GB,则: npuMemSize = (32GB - 空闲占用 - 15GB)
- 0.8 ≈ (17GB - 空闲占用) * 0.8 假设空闲占用为2GB,则npuMemSize≈12GB,此时maxBatchSize需根据单样本显存占用调整。
若需支持maxBatchSize=256,需确保总显存(权重+激活+缓冲区)不超过物理显存。例如,昇腾910B单卡显存为32GB时,可能需降低maxSeqLen或使用显存优化技术(如模型并行)。
其他参数联动调优 :
maxPrefillBatchSize建议设为maxBatchSize的一半,如256时设为128。若显存不足,可调低maxSeqLen或maxInputTokenLen。
综上,maxBatchSize=256的显存需求需结合具体模型参数计算。建议参考的公式,输入实际模型权重和序列长度进行精确评估。
五、参考文档
具体参数取值需结合《MindIE安装指南》中“单机推理”章节的步骤 。
更多场景化调优示例可参考昇腾社区性能调优最佳实践 。