深度解读昇腾CANN多流并行技术,提高硬件资源利用率
内容提要
华为昇腾CANN多流并行技术提高硬件资源利用率,通过多流并行算法将计算任务下发到不同引擎上并发执行,受网络拓扑结构、节点引擎类型和AI处理器能力等因素影响,适用于静态shape的离线推理场景和Pytorch框架的计算图模式。
延伸解读
多流并行的适用场景与限制
多流并行技术并非通用,它主要适用于静态shape的离线推理场景和PyTorch框架的计算图模式。在这些场景下,GE图引擎能提前编译并分配Stream,实现任务并发。对于动态shape或非计算图模式,该技术可能无法发挥优势,甚至引入额外开销。开发者需根据实际业务场景选择是否启用。
性能收益与资源代价的权衡
多流并行通过并发执行提升硬件利用率,但代价是占用更多Device流资源和内存。实测显示,在Atlas 800I A2上,LLaMA-65B模型性能提升约30%,盘古71B模型提升约15%,但静态shape下内存占用增加约7%。因此,在内存敏感或流资源有限的场景中,需谨慎评估收益与成本。
并行效果的关键影响因素
多流并行的实际效果受网络拓扑结构、节点引擎类型和AI处理器能力影响。理想情况下,整网执行时长取决于最长的Stream,其他Stream的耗时被掩盖。例如,通信耗时可掩盖在计算耗时内,向量计算可掩盖在矩阵运算内。若拓扑依赖复杂或引擎能力不匹配,并行度会降低,优化效果打折扣。
开发者如何控制多流并行
在PyTorch计算图模式下,多流并行默认使能,但开发者可通过参数灵活控制。例如,设置enable_single_stream为False可关闭图单流执行,开启计算通信并行功能可进一步优化。这为不同场景提供了调整空间,建议结合性能分析和资源监控进行调优。
Q&A
昇腾CANN多流并行技术的主要功能是什么?
昇腾CANN多流并行技术通过多流并行算法提高硬件资源利用率,支持计算任务的并发执行。
多流并行技术适用于哪些场景?
多流并行技术适用于静态shape的离线推理场景和Pytorch框架的计算图模式。
多流并行技术如何影响硬件资源的使用?
多流并行技术通过分配Stream提升硬件资源利用率,但会占用更多Device流资源,内存占用增加约7%。
多流并行技术的执行效果受哪些因素影响?
执行效果受网络拓扑结构、节点引擎类型和AI处理器能力等因素影响。
如何使能昇腾CANN的多流并行技术?
开发者可通过参数设置,在静态shape的离线推理场景和Pytorch框架下默认使能多流并行技术。
在Atlas 800I A2推理产品上,多流并行技术的性能提升如何?
在Atlas 800I A2推理产品上,LLaMA-65B模型执行性能提升约30%。