From ffdb7c6f7bad735742567671bbc6df06598bbdb9 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 26 Aug 2026 07:36:13 +0000 Subject: [PATCH] =?UTF-8?q?v0.95:=20=E4=BF=AE=E6=AD=A3baseK=E6=97=A0dValue?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F=EF=BC=8CdValue=E7=BA=A6=E6=9D=9F=E5=9C=A8kL1?= =?UTF-8?q?(GM=E2=86=92L1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BMM算子优化分析_Release/BMM算子优化分析_v0.95.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/BMM算子优化分析_Release/BMM算子优化分析_v0.95.md b/BMM算子优化分析_Release/BMM算子优化分析_v0.95.md index 7bbc990..1ed4d80 100644 --- a/BMM算子优化分析_Release/BMM算子优化分析_v0.95.md +++ b/BMM算子优化分析_Release/BMM算子优化分析_v0.95.md @@ -431,12 +431,14 @@ $$ \text{BaseM} \times \text{BaseN} = \frac{L0C}{2 \times 4\text{B}} = 32768 \text{ 元素} $$ -(双缓冲两份,FP32 4B/元素)。BaseM/BaseN 的长宽比跟随 SingleCoreM/SingleCoreN(进而跟随 M/N),对齐 16 的倍数。baseK 由 L0A/L0B 容量和 dValue 决定: +(双缓冲两份,FP32 4B/元素)。BaseM/BaseN 的长宽比跟随 SingleCoreM/SingleCoreN(进而跟随 M/N),对齐 16 的倍数。baseK 由 L0A/L0B 容量决定(L1→L0 搬移无 dValue 要求,dValue 约束的是 GM→L1 的 $k_{L1}$): $$ -baseK = \min\Big(\frac{L0A}{2 \cdot \text{BaseM} \cdot \text{dtype}},\; \frac{L0B}{2 \cdot \text{BaseN} \cdot \text{dtype}}\Big) \text{ 向下 16 对齐},\quad baseK \cdot \text{dtype} \ge 256\text{B} +baseK = \min\Big(\frac{L0A}{2 \cdot \text{BaseM} \cdot \text{dtype}},\; \frac{L0B}{2 \cdot \text{BaseN} \cdot \text{dtype}}\Big) \text{ 向下 16 对齐} $$ +核间不切 K 时 K 维度层次关系:$K = \text{singleCoreK} \ge k_{L1} \ge baseK$——$k_{L1}$ 是 GM→L1 的 K 向粒度(须 $k_{L1} \cdot \text{dtype} \ge 256\text{B}$),baseK 是 L1→L0 的 K 向粒度(仅受 L0A/L0B 容量约束)。 + **Step 1:SingleCoreM / SingleCoreN 的确定**(每核输出 tile,$\ge$ BaseM/N) SingleCoreM × SingleCoreN 是每核每次处理的输出区域,**不受 L0 容量直接约束**——一个 [SingleCoreM, SingleCoreN] tile 内部由若干 [BaseM, BaseN] L0 tile 组成($\text{SingleCoreM} \ge \text{BaseM}$,$\text{SingleCoreN} \ge \text{BaseN}$)。SingleCoreM/N 的核心影响是 **GM→L1 搬移效率和 L2 重复读率**: