当单个模型运行良好,但多个模型同时通过ACL(Ascend Computing Language)接口或推理框架(如MindX)执行时,总体吞吐量(Throughput)不升反降,且延迟(Latency)波动剧烈。
已解决发表于2025-12-09 12:34:55
0 查看
-
模型融合(Fusion)策略无效:我们尝试使用AOE(Ascend Optimization Engine)进行模型融合,期望减少内核启动次数。但并发场景下,性能提升有限。请问,针对并发场景的融合是否有特殊策略?
-
Stream与任务组(Task Group)调优:我们为每个模型创建了独立的ACL Stream,并尝试设置不同的aclrtSetDeviceSatMode参数。效果不明显。在昇腾架构下,如何正确设置Stream或任务组来实现真正的并行,避免Core资源的争抢和无效调度?
-
资源隔离与绑定:我们了解到可以通过npu-smi设置性能模式或进行一些资源隔离。但官方文档对此描述较为简略。是否有方法能将不同的模型或进程固定到不同的AI Core或计算单元上,实现类似CPU绑核(numa)的效果,以减少上下文切换开销?
-
硬件瓶颈定位:我们怀疑瓶颈可能出现在内存带宽(HBM/DDR) 或 片上缓存(Buffer) 的争抢上,但缺乏有效的工具进行定位。除了npu-smi的基础监控,是否有更底层的性能剖析工具(类似Nsight Compute或rocProfiler)可以分析AI Core内部的内存访问冲突和流水线停顿?
本帖最后由 匿名用户 于 2025/12/09 14:07:53 编辑
模型融合(Fusion)策略无效:我们尝试使用AOE(Ascend Optimization Engine)进行模型融合,期望减少内核启动次数。但并发场景下,性能提升有限。请问,针对并发场景的融合是否有特殊策略?
Stream与任务组(Task Group)调优:我们为每个模型创建了独立的ACL Stream,并尝试设置不同的
aclrtSetDeviceSatMode参数。效果不明显。在昇腾架构下,如何正确设置Stream或任务组来实现真正的并行,避免Core资源的争抢和无效调度?资源隔离与绑定:我们了解到可以通过
npu-smi设置性能模式或进行一些资源隔离。但官方文档对此描述较为简略。是否有方法能将不同的模型或进程固定到不同的AI Core或计算单元上,实现类似CPU绑核(numa)的效果,以减少上下文切换开销?硬件瓶颈定位:我们怀疑瓶颈可能出现在内存带宽(HBM/DDR) 或 片上缓存(Buffer) 的争抢上,但缺乏有效的工具进行定位。除了
npu-smi的基础监控,是否有更底层的性能剖析工具(类似Nsight Compute或rocProfiler)可以分析AI Core内部的内存访问冲突和流水线停顿?