深度解读昇腾CANN模型下沉技术,提升模型调度性能
内容提要
本文介绍了昇腾CANN模型下沉技术,通过图模式的Host调度和模型下沉调度,优化模型执行性能。模型下沉调度分为模型加载和模型执行两个阶段,降低调度耗时。模型下沉执行方式减少了CPU负载、通信抖动,并提升了E2E收益。模型下沉头开销包括Tensor转换、地址刷新、异步拷贝和模型执行任务。
延伸解读
模型下沉的适用条件与限制
模型下沉调度并非适用于所有模型。文章明确指出,该技术针对静态shape模型,即每次执行的输入tensor shape固定不变,且所有算子在给定输入shape后能确定输出shape。这类模型在编译时可完成所有Host调度工作,为下沉奠定基础。对于动态shape模型,由于shape可变,无法提前确定内存和Tiling,因此不能直接应用下沉调度。读者需根据自身模型特性判断是否适合采用此技术。
下沉头开销的构成与影响
模型下沉执行虽然减少了Host与Device的频繁交互,但每次执行仍存在头开销,包括Tensor数据结构转换、地址刷新、异步拷贝和模型执行Task下发。文章以盘古71B增量推理模型为例,当头开销约2ms。头开销越小,下沉带来的E2E收益越大。因此,在实际应用中需关注头开销的优化,例如减少地址变更次数或避免不必要的异步拷贝,以最大化下沉效果。
下沉调度在集群场景下的优势
在集群训练或推理中,Host调度方式下不同卡上的Host下发时序可能不同步,导致卡间集合通信出现抖动。而模型下沉执行将Task提前排布到Device上,执行时无需Host频繁交互,从而减少了Rank间的通信抖动。这一优势对于需要多卡协同的大模型场景尤为重要,有助于提升整体训练或推理的稳定性和效率。
从LLaMA-7B案例看下沉收益
文章以Host Bound的LLaMA-7B模型推理为例,对比了Host调度和模型下沉执行的Profiling数据。Host调度下Device计算时间和空隙时间比例接近1:1,而下沉执行后Device空隙大幅减少,端到端获得18ms收益,吞吐量提升37%。这一案例表明,对于Host Bound模型,下沉调度能有效减少Device空闲,提升性能。但收益程度取决于模型特性和头开销大小,需结合实际评估。
Q&A
昇腾CANN模型下沉技术的主要目的是什么?
主要目的是优化模型执行性能,降低调度耗时。
模型下沉调度分为哪两个阶段?
模型加载和模型执行两个阶段。
什么是Host Bound模型?
Host Bound模型是指Device执行Task的速度比Host下发Task的速度快,导致Device处于空闲状态。
静态shape模型的特点是什么?
静态shape模型的输入tensor shape是固定不变的,所有算子的输入输出shape在编译时可确定。
模型下沉执行的优势有哪些?
减少CPU负载、减少通信抖动、提升E2E收益。
下沉头开销包括哪些部分?
包括Tensor转换、地址刷新、异步拷贝和模型执行任务。