Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
性能优化需求,通过mte2提前载入提高L1和L0流水并行度以达到性能优化的目的。
conv卷积算子团队
性能优化,整体性能提升约3%,配合tiling切分优化可进一步扩大性能优化幅度
对 Conv2dSmallKernelParallelism 模板类中 cin 分块循环的一次性能优化,通过引入 MTE2 预加载(双缓冲/Ping-Pong)机制,将原本串行的"加载→消费"流程重构为"预加载下一个 cin 块 + 消费当前 cin 块"的流水线模式,使数据加载与计算得以重叠,从而降低 MTE 等待延迟、提升整体吞吐量。
主要改动: 循环体三段式重构:将原先每个 kl1 迭代中串行执行的 WaitFlag → LoadFmapL1Chunk → LoadWeightL1Block → SetFlag 流程拆分为三个独立段(Segment 1/2/3),分别处理首迭代加载、预加载下一块、以及消费当前块。
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
性能优化需求,通过mte2提前载入提高L1和L0流水并行度以达到性能优化的目的。
Origin(信息来源)
conv卷积算子团队
Benefit / Necessity (价值/作用)
性能优化,整体性能提升约3%,配合tiling切分优化可进一步扩大性能优化幅度
Design(设计方案)
对 Conv2dSmallKernelParallelism 模板类中 cin 分块循环的一次性能优化,通过引入 MTE2 预加载(双缓冲/Ping-Pong)机制,将原本串行的"加载→消费"流程重构为"预加载下一个 cin 块 + 消费当前 cin 块"的流水线模式,使数据加载与计算得以重叠,从而降低 MTE 等待延迟、提升整体吞吐量。
主要改动:
循环体三段式重构:将原先每个 kl1 迭代中串行执行的 WaitFlag → LoadFmapL1Chunk → LoadWeightL1Block → SetFlag 流程拆分为三个独立段(Segment 1/2/3),分别处理首迭代加载、预加载下一块、以及消费当前块。