已合并
dynamic_mx_quant fix oom #7291
季骏创建于 7月9日
dynamic_mx_quant fix oom #7291
已合并
季骏创建于 7月9日
共 2 个文件变更+12-9
@@ -1,5 +1,5 @@
1/**1/**
2- * Copyright (c) 2026 Huawei Technologies Co., Ltd.2+ * Copyright (c) 2026-2026 Huawei Technologies Co., Ltd.
3 * This program is free software, you can redistribute it and/or modify it under the terms and conditions of3 * This program is free software, you can redistribute it and/or modify it under the terms and conditions of
4 * CANN Open Software License Agreement Version 2.0 (the "License").4 * CANN Open Software License Agreement Version 2.0 (the "License").
5 * Please refer to the License for details. You may not use this file except in compliance with the License.5 * Please refer to the License for details. You may not use this file except in compliance with the License.
@@ -157,31 +157,36 @@ ASCENDC_TPL_SEL(
157 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_SCALE_ALG_0, TPL_SCALE_ALG_1,157 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_SCALE_ALG_0, TPL_SCALE_ALG_1,
158 TPL_SCALE_ALG_2_SPEC_DST_MAX_VALUE),158 TPL_SCALE_ALG_2_SPEC_DST_MAX_VALUE),
159 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_ROUND_MODE),159 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_ROUND_MODE),
160- ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE)),160+ ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE),
161+ ASCENDC_TPL_TILING_STRUCT_SEL(DynamicMxQuantTailAxisTilingData)),
161 // 尾轴量化,blocksize!=32量化162 // 尾轴量化,blocksize!=32量化
162 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_TAIL_AXIS_QUANT_NORMAL),163 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_TAIL_AXIS_QUANT_NORMAL),
163 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE_ALG),164 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE_ALG),
164 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_ROUND_MODE),165 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_ROUND_MODE),
165- ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_ODD_SCALE, TPL_EVEN_SCALE)),166+ ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_ODD_SCALE, TPL_EVEN_SCALE),
167+ ASCENDC_TPL_TILING_STRUCT_SEL(DynamicMxQuantTilingData)),
166 // 非尾轴量化,blocksize=32,小尾轴优化模板168 // 非尾轴量化,blocksize=32,小尾轴优化模板
167 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_NOT_TAIL_AXIS_QUANT_SMALL_OPTI),169 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_NOT_TAIL_AXIS_QUANT_SMALL_OPTI),
168 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_SCALE_ALG_0, TPL_SCALE_ALG_1,170 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_SCALE_ALG_0, TPL_SCALE_ALG_1,
169 TPL_SCALE_ALG_2_SPEC_DST_MAX_VALUE, TPL_SCALE_ALG_2_OTHERS),171 TPL_SCALE_ALG_2_SPEC_DST_MAX_VALUE, TPL_SCALE_ALG_2_OTHERS),
170 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_RINT, TPL_ROUND, TPL_FLOOR),172 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_RINT, TPL_ROUND, TPL_FLOOR),
171- ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE)),173+ ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE),
174+ ASCENDC_TPL_TILING_STRUCT_SEL(DynamicMxQuant4OptimizeTilingData)),
172 // 非尾轴量化,大尾轴优化模板175 // 非尾轴量化,大尾轴优化模板
173 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_NOT_TAIL_AXIS_QUANT_LARGE_OPTI),176 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_NOT_TAIL_AXIS_QUANT_LARGE_OPTI),
174 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_SCALE_ALG_0, TPL_SCALE_ALG_1,177 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_SCALE_ALG_0, TPL_SCALE_ALG_1,
175 TPL_SCALE_ALG_2_SPEC_DST_MAX_VALUE, TPL_SCALE_ALG_2_OTHERS),178 TPL_SCALE_ALG_2_SPEC_DST_MAX_VALUE, TPL_SCALE_ALG_2_OTHERS),
176 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_RINT, TPL_ROUND, TPL_FLOOR),179 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_RINT, TPL_ROUND, TPL_FLOOR),
177- ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE)),180+ ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE),
181+ ASCENDC_TPL_TILING_STRUCT_SEL(DynamicMxQuant4OptimizeTilingData)),
178 // 非尾轴,普通模板和多行处理模板182 // 非尾轴,普通模板和多行处理模板
179 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_NOT_TAIL_AXIS_QUANT_NORMAL,183 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_UINT_SEL(optiMode, ASCENDC_TPL_UI_LIST, TPL_NOT_TAIL_AXIS_QUANT_NORMAL,
180 TPL_NOT_TAIL_AXIS_QUANT_OPTI),184 TPL_NOT_TAIL_AXIS_QUANT_OPTI),
181 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE_ALG),185 ASCENDC_TPL_UINT_SEL(scaleAlg, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_SCALE_ALG),
182 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_ROUND_MODE),186 ASCENDC_TPL_UINT_SEL(roundMode, ASCENDC_TPL_UI_LIST, TPL_NOT_CARE_ROUND_MODE),
183- ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_ODD_SCALE, TPL_EVEN_SCALE)), );187+ ASCENDC_TPL_UINT_SEL(isOddScale, ASCENDC_TPL_UI_LIST, TPL_ODD_SCALE, TPL_EVEN_SCALE),
188+ ASCENDC_TPL_TILING_STRUCT_SEL(DynamicMxQuantTilingData)));
184 189 
185} // namespace DynamicMxQuant190} // namespace DynamicMxQuant
186 191 
187-#endif // _DYNAMIC_MX_QUANT_STRUCT_H_192+#endif // _DYNAMIC_MX_QUANT_STRUCT_H_
@@ -139,8 +139,6 @@ template <uint64_t optiMode, uint64_t scaleAlg, uint64_t roundMode, uint64_t isO
139__global__ __aicore__ void dynamic_mx_quant(GM_ADDR x, GM_ADDR y, GM_ADDR mxScale, GM_ADDR workspace, GM_ADDR tiling)139__global__ __aicore__ void dynamic_mx_quant(GM_ADDR x, GM_ADDR y, GM_ADDR mxScale, GM_ADDR workspace, GM_ADDR tiling)
140{140{
141 REGISTER_TILING_DEFAULT(DynamicMxQuant4OptimizeTilingData);141 REGISTER_TILING_DEFAULT(DynamicMxQuant4OptimizeTilingData);
142- REGISTER_TILING_FOR_TILINGKEY("NOT TAIL AXIS TILING DATA", DynamicMxQuantTilingData);
143- REGISTER_TILING_FOR_TILINGKEY("TAIL AXIS WITH BLOCKSIZE 32 TILING DATA", DynamicMxQuantTailAxisTilingData);
144 KERNEL_TASK_TYPE_DEFAULT(KERNEL_TYPE_MIX_AIV_1_0);142 KERNEL_TASK_TYPE_DEFAULT(KERNEL_TYPE_MIX_AIV_1_0);
145 143 
146#if (__NPU_ARCH__ == 3510)144#if (__NPU_ARCH__ == 3510)