diff --git a/04Inference/06Kernel/05Qnnpack.md b/04Inference/06Kernel/05Qnnpack.md index 151482ed..b3f787eb 100644 --- a/04Inference/06Kernel/05Qnnpack.md +++ b/04Inference/06Kernel/05Qnnpack.md @@ -94,7 +94,7 @@ Marat Dukhan 于 2019 年离开 Meta 来到谷歌之后,发表了一篇名为 这标志着 QNNPACK 与其他 GEMM 实现之间的重要区别:其他库会重新打包 A 和 B 矩阵,以更好地利用缓存层次结构,希望通过大量计算来摊销打包开销,而 QNNPACK 则针对 A 和 B 面板可以适应 L1 缓存的情况进行优化。因此,**它旨在消除所有非计算必需的内存转换**。 -间接卷积算法的计算同样也是基于对输出的切分,计算 MR × NR 的小块。与传统 GEMM 方法不同的是,其将将整个 K 维全部在计算 Kernel 中处理完,消除了输出部分和的访存。这里所说的「将整个 K 维全部」并不是指 K 维不进行拆分,而是指拆分后不和其他维度交换,实际计算中 K 维会以 $2^n$ 为基础进行拆分。 +间接卷积算法的计算同样也是基于对输出的切分,计算 MR × NR 的小块。如图19.5.4所示,与传统 GEMM 方法不同的是,其将将整个 K 维全部在计算 Kernel 中处理完,消除了输出部分和的访存。这里所说的「将整个 K 维全部」并不是指 K 维不进行拆分,而是指拆分后不和其他维度交换,实际计算中 K 维会以 $2^n$ 为基础进行拆分。 ![间接卷积算法示意图](images/05QNNPACK04.png)