Skip to content

Commit 80411bb

Browse files
authored
[fix] correct capitalization of GPU and CPU in documentation (#66)
1 parent 085f6ca commit 80411bb

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

docs/08_impl_reduce/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77

88

9-
## 2. 使用 Gpu 实现 Reduce
9+
## 2. 使用 GPU 实现 Reduce
1010

11-
### 2.1 Cpu 实现
11+
### 2.1 CPU 实现
1212

1313

1414
```cpp
@@ -22,11 +22,11 @@ int reduce(int *arr, int len) {
2222
}
2323
```
2424
25-
可以看到,cpu 实现非常简单,一层循环就可以解决问题。但是,这个实现并不是纯函数式的,因为它有副作用,即修改了 `sum` 的值。我们可以用 Gpu 来实现一个纯函数式的 `Reduce`。
25+
可以看到,cpu 实现非常简单,一层循环就可以解决问题。但是,这个实现并不是纯函数式的,因为它有副作用,即修改了 `sum` 的值。我们可以用 GPU 来实现一个纯函数式的 `Reduce`。
2626
27-
### 2.2 Gpu 层次结构
27+
### 2.2 GPU 层次结构
2828
29-
首先我们先来回归一下 Gpu 的层次结构。也就是代码中的 `block` 和 `grid`。`block` 是一个线程块,`grid` 是一个线程网格。`block` 中的线程可以通过 `threadIdx.x` 来获取自己的线程 id,`grid` 中的线程可以通过 `blockIdx.x` 来获取自己的线程 id。`block` 中的线程可以通过 `blockDim.x` 来获取 `block` 的大小,`grid` 中的线程可以通过 `gridDim.x` 来获取 `grid` 的大小。
29+
首先我们先来回归一下 GPU 的层次结构。也就是代码中的 `block` 和 `grid`。`block` 是一个线程块,`grid` 是一个线程网格。`block` 中的线程可以通过 `threadIdx.x` 来获取自己的线程 id,`grid` 中的线程可以通过 `blockIdx.x` 来获取自己的线程 id。`block` 中的线程可以通过 `blockDim.x` 来获取 `block` 的大小,`grid` 中的线程可以通过 `gridDim.x` 来获取 `grid` 的大小。
3030
3131
对于 `Reduce` 来说,我们可以按照下面这个图设计:
3232
@@ -40,7 +40,7 @@ GPU 的计算过程如下图所示:
4040
4141
以上图为例,我们来看一下 `Reduce` 的计算过程。首先,我们把数组分成了 `3` 个 `block`,每个 `block` 中有 `8` 个线程。在第一轮计算中,奇数线程会把自己的值累加到偶数线程中。在第二轮计算中,`block` 中的第 `0` 个线程会把 `4` 号线程的值累加到自己的值中。 每个 `block` 的值都计算完之后还需要对 `block` 的值进行累加,下面我们来看一下代码要如何实现。
4242
43-
### 2.3 Gpu 实现
43+
### 2.3 GPU 实现
4444
4545
我们首先看 `Kernel` 的实现,代码如下:
4646
@@ -160,7 +160,7 @@ nvcc -o reduce_naive reduce_naive.cu
160160

161161
## 3. 总结
162162

163-
本文主要讨论了如何用 Gpu 来实现 `Reduce`。我们首先回顾了 Gpu 的层次结构,然后我们用 Gpu 来实现了一个纯函数式的 `Reduce`。最后,我们对比了 cpu 和 gpu 的实现,发现 gpu 的实现更加简洁,而且可以充分利用 Gpu 的并行计算能力。下一篇文章我们将讨论如何优化 `Reduce` 的实现。
163+
本文主要讨论了如何用 GPU 来实现 `Reduce`。我们首先回顾了 GPU 的层次结构,然后我们用 GPU 来实现了一个纯函数式的 `Reduce`。最后,我们对比了 cpu 和 GPU 的实现,发现 GPU 的实现更加简洁,而且可以充分利用 GPU 的并行计算能力。下一篇文章我们将讨论如何优化 `Reduce` 的实现。
164164

165165
## Reference
166166

0 commit comments

Comments
 (0)