Skip to content

基于全局掩码复用的计算性能优化

说明 该性能优化建议适用于如下产品型号:

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

【优先级】高

【描述】当连续执行多个向量计算操作(如多次Adds、Muls等)且这些操作共享相同的掩码配置参数(如掩码长度、掩码值和掩码模式一致)时,存在性能优化空间。此时,若每次调用计算接口时都启用内部掩码设置(即isSetMask=true),将被迫重复执行一整套掩码初始化流程:包括设置掩码模式SetMaskCount、设置掩码值(SetVectorMask)、重置掩码(ResetMask)以及重置掩码模式(SetMaskNorm)。这一系列操作在硬件层面需要耗费大量cycle,尤其在高频计算中,会拖慢整体执行效率。在计算规模较小时,由于实际计算耗时短,而掩码配置的固定开销占总耗时比例较高,优化策略能显著降低相对开销,实现高比例性能提升。

【优化方案】

在这些场景中,掩码配置保持不变的情况下,遵循“一次性全局配置,后续复用”的核心原则:在所有连续计算操作执行之前,通过调用SetVectorMask接口完成全局掩码的一次性、完整设置mask;随后,所有后续的向量计算接口调用均应将isSetMask参数设置为false,以明确指示接口跳过内部掩码设置流程,直接复用已预置的全局掩码状态。

图1 代码优化

理论分析:SetMaskCount、SetMask、ResetMask、SetMaskNorm四个接口,每个接口调用耗时1cycle,连续调用180次Adds计算接口,共节省4×180 = 720cycles。

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区