Skip to content

Commit e21c397

Browse files
author
zhangfuwen
committed
vault backup: 2025-10-24 11:56:34
1 parent 05bb3c8 commit e21c397

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

Notes/001-modern-computing/024-OpenGL与OpenCL.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,29 @@
11

22
# 从显卡到GPGPU
33

4-
当代的显卡功能早已经不局限于画面的渲染,而是变成一个通用的计算平台,称为GPGPU,即General Purpose GPU。GPGPU与传统的显卡与CPU有什么区别呢?
4+
**三种不同的任务**
55

66
其实可以认为存在三种不同的任务:
77
1. 控制,主要处理if else逻辑,将人类规则应用于软件中。
88
2. 通用计算,主要是各类算法,如排序、搜索、视频编解码等。
99
3. 专用计算,如3D渲染、视频编解码等。
1010

11+
**CPU无法满足日益增长的计算需求**
1112
通用计算和专用计算有重叠的部分,控制和通用计算也有重叠的部分。传统的CPU同时具备控制和计算能力,无论是控制还是普通计算,还是专用计算,CPU都能处理。但时至今日,CPU越来越沦落为单纯的控制器件,而通用计算和专用计算都越来越多的交给GPU、NPU等来处理。出现这个趋势的原因包括:
1213
1. 能效,CPU的通长较长,能效不好,同样的计算任务,专用计算部件往往更省电,这对于电池较小的手机和耗电量巨大的数据中心都比较重要。
1314
2. 性能,CPU的计算能力提升主要途径是提高频率和多核,这两方面都存在限制。首先频率无法无限提升,现在CPU频率达到5GHz已经相当困难。其次核心数目的提升也比较难,因为CPU比较复杂,每增加一个核就会大量增加芯片面积,这会导致功耗增加,也会导致芯片的良率下降。
15+
基于以上原因,大量的计算需求CPU无法承接,从而只能流向其他计算部件。比如说硬件加速器或GPU。
16+
17+
**硬件加速器研发滞后**
18+
19+
硬件加速器是一个非常专用的设备,它仅能执行固定的算法。比如说某些芯片上有zip压缩的硬件加速器,这个加速器只能进行zip压缩,别的什么事件都干不了。然后软件提出的计算需求是非常快速的。需要一个设备来满足快速提出的计算需求。
20+
21+
22+
当代的显卡功能早已经不局限于画面的渲染,而是变成一个通用的计算平台,称为GPGPU,即General Purpose GPU。GPGPU与传统的显卡与CPU有什么区别呢?
1423

15-
基于以上原因,大量的计算需求CPU无法承接,从而只能流向其他计算部件。比如说硬件加速器或GPU。硬件加速器是一个非常专用的
24+
### GPU的通用计算能力
1625

26+
使用GPU做通用计算的尝试开始得很早。早在1999年,就有要尝试通过着色器程度来计算科学问题。
1727
# OpenGL
1828

1929
下面一一段简单的OpenCL代码,用于绘制一个三角形:

0 commit comments

Comments
 (0)