Skip to content

Commit f0ac6b7

Browse files
authored
[Fix] fix some bugs (#65)
1 parent abe3898 commit f0ac6b7

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

docs/09_optimize_reduce/01_interleaved_addressing/reduce_interleaved_addressing.cu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ __global__ void reduce_naive_kernel(int *arr, int *out, int len)
2525
for (int s = 1; s < bdim; s *= 2)
2626
{
2727
int index = 2 * s * tid;
28-
if ((index + s < bdim) && (bdim * bid + s < len))
28+
if ((index + s < bdim) && (bdim * bid + s + index < len))
2929
{
3030
sdata[index] += sdata[index + s];
3131
}
@@ -98,4 +98,4 @@ int main()
9898
delete[] arr;
9999
delete[] out;
100100
return 0;
101-
}
101+
}

docs/12_convolution/02_intro_conv_optimize/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
## 1. 卷积算法映射为矩阵乘法
88

9-
首先我们先来回顾一下卷积算法的定义,假设输入的特征图为 $X$,卷积核为 $K$,输出特征图为 $Y$,$X$ 的大小为 $N \times C \times H \times W$,$K$ 的大小为 $M \times C \times K_h \times K_w$,$Y$ 的大小为 $N \times M \times H \times W$。那么卷积算法的定义如下:
9+
首先我们先来回顾一下卷积算法的定义,假设输入的特征图为 $X$,卷积核为 $K$,输出特征图为 $Y$,$X$ 的大小为 $N \times C_{in} \times H_{in} \times W_{in}$,$K$ 的大小为 $M \times C_{in} \times K_h \times K_w$,$Y$ 的大小为 $N \times M \times H_{out} \times W_{out}$。那么卷积算法的定义如下:
1010

1111
$$
1212
Y[n,oc,oh,ow] = \sum_{ic}\sum_{fh}\sum_{fw}X[n,ic,ih,iw] \times K[oc,ic,fh,fw]

docs/17_flash_attn/01_flash_attn_v1_part1.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,15 @@ $$
8888

8989
---
9090

91-
**步骤 1:外层循环 $ j=1 $,处理块 $\mathbf{K}_1, \mathbf{V}_1$**
91+
**步骤 1:外层循环 $ j=1 $,处理块 $\mathbf{K}_1, \mathbf{V}_1$ **
9292

9393
1. **加载 $\mathbf{K}_1, \mathbf{V}_1$ 到 SRAM**
9494

9595
$$
9696
\mathbf{K}_1 = \begin{bmatrix} k_{11} & k_{12} \\ k_{21} & k_{22} \end{bmatrix}, \quad \mathbf{V}_1 = \begin{bmatrix} v_{11} & v_{12} \\ v_{21} & v_{22} \end{bmatrix}
9797
$$
9898

99-
2. **内层循环 $ i=1 $,处理块 $\mathbf{Q}_1$**
99+
2. **内层循环 $ i=1 $,处理块 $\mathbf{Q}_1$ **
100100
- **加载数据**
101101
$$
102102
\mathbf{Q}_1 = \begin{bmatrix} q_{11} & q_{12} \\ q_{21} & q_{22} \end{bmatrix}, \quad \mathbf{O}_1 = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix}, \quad \ell_1 = [0, 0]^T, \quad m_1 = [-\infty, -\infty]^T
@@ -122,7 +122,7 @@ $$
122122
- 类似地,加载 $\mathbf{Q}_2 = \begin{bmatrix} q_{31} & q_{32} \\ q_{41} & q_{42} \end{bmatrix}$,计算 $\mathbf{S}_{21} = \mathbf{Q}_2 \mathbf{K}_1^T$,更新后两行 $\mathbf{O}_2$。
123123

124124

125-
**步骤 2:外层循环 $ j=2 $,处理块 $\mathbf{K}_2, \mathbf{V}_2$**
125+
**步骤 2:外层循环 $ j=2 $,处理块 $\mathbf{K}_2, \mathbf{V}_2$ **
126126

127127
1. **加载 $\mathbf{K}_2, \mathbf{V}_2$ 到 SRAM**
128128
$$
@@ -142,7 +142,7 @@ $$
142142
$$
143143
- **结果等价于全局 Softmax**:最终 $\mathbf{O}_1$ 为前两行注意力结果的加权和。
144144

145-
3. **内层循环 $ i=2 $,处理块 $\mathbf{Q}_2$**
145+
3. **内层循环 $ i=2 $,处理块 $\mathbf{Q}_2$ **
146146
- 类似地,计算 $\mathbf{S}_{22} = \mathbf{Q}_2 \mathbf{K}_2^T$,更新后两行 $\mathbf{O}_2$。
147147

148148

0 commit comments

Comments
 (0)