已合并
问题修复:ExtendConvTranspose算子修复A16W8场景下部分case AIC问题 #8626
sunlesheng创建于 20 天前
问题修复:ExtendConvTranspose算子修复A16W8场景下部分case AIC问题 #8626
已合并
共 1 个文件变更+10-3
| @@ -109,9 +109,16 @@ void Conv3DDXV2SmallKernelTiling::InitBaseMNK(L0TilingParams& l0Params) | |||
| 109 | 109 | ||
| 110 | uint32_t kIter = static_cast<uint32_t>(Ops::Base::CeilDiv(kTotal, static_cast<uint64_t>(l0Params.baseK))); | 110 | uint32_t kIter = static_cast<uint32_t>(Ops::Base::CeilDiv(kTotal, static_cast<uint64_t>(l0Params.baseK))); |
| 111 | if (kIter >= TWO_U32) { | 111 | if (kIter >= TWO_U32) { |
| 112 | - l0Params.al0Pbuffer = DB_ON; | 112 | + // 开启DB前校验: DB后L0a/L0b至少需容纳k0, 否则calcMaxBaseK内强制对齐k0会导致L0溢出 |
S | |||
| 113 | - l0Params.bl0Pbuffer = DB_ON; | 113 | + uint32_t maxBaseKByL0aDb = static_cast<uint32_t>(platformInfo_.l0_ab_size / DB_ON / dtypeByteL0a_ / |
| 114 | - l0Params.baseK = calcMaxBaseK(); | 114 | + l0Params.baseM); |
| 115 | + uint32_t maxBaseKByL0bDb = static_cast<uint32_t>(platformInfo_.l0_ab_size / DB_ON / dtypeByteL0b_ / | ||
| 116 | + l0Params.baseN); | ||
| 117 | + if (maxBaseKByL0aDb >= tilingRunInfo_.k0 && maxBaseKByL0bDb >= tilingRunInfo_.k0) { | ||
| 118 | + l0Params.al0Pbuffer = DB_ON; | ||
| 119 | + l0Params.bl0Pbuffer = DB_ON; | ||
| 120 | + l0Params.baseK = calcMaxBaseK(); | ||
| 121 | + } | ||
| 115 | } | 122 | } |
| 116 | } | 123 | } |
| 117 | 124 | ||
还会有容纳不下k0的情况吗?