第1章:课程介绍与GPU基础

1.1 为什么我们要聊GPU?

先说说我自己的经历。大概20年前,我刚入行做图像处理。
那时候做一次Harmony校正,一张1080p的图要跑几十秒。
项目组几十个人,天天盯着进度条发呆。

为什么会这么慢?
因为当时全靠CPU硬扛。
CPU虽然聪明,能处理复杂逻辑,但一次只能干几件事。
校正算法里那种逐像素计算,说白了就是重复劳动。
让它干这个,简直就是让数学家去搬砖。

GPU不一样。
它天生就是为大规模并行计算设计的。
我至今记得第一次在GPU上跑通校正算法的那个下午——
处理时间从45秒降到了1.2秒。
整个团队都惊呆了。

你想想看,如果只是在笔记本上挥挥手,就能把一张4K图像的校正时间压到毫秒级,那意味着什么?
意味着实时校正不再是梦想。
意味着我们可以用软件方案替代昂贵的硬件校正盒。
意味着……嗯,这些就是我们这门课要讲的东西。

核心观点:GPU不是用来跑游戏的,它是被你严重低估的并行计算利器。尤其是做Harmony校正这种像素级重复操作,GPU就是天选打工人。

1.2 GPU的发展史——从游戏卡到计算卡

讲这部分,我得先承认一件事。
我最早接触GPU,也是因为打游戏。
1999年,NVIDIA发布了GeForce 256。
它第一次提出了GPU这个概念。
当时大家想的都是「这卡能跑多少帧」,没人在意它还能干嘛。

转折点发生在2007年。
NVIDIA推出了CUDA架构。
你可以把它理解成「教会GPU说人话」。
之前你想让GPU干活,得用图形学API——OpenGL、DirectX,
写个向量加法都要假装是在画三角形。
有了CUDA,直接用C语言就能写并行程序。

我个人的感觉是,那一年才是GPU计算的元年。
从那以后,GPU不再只是游戏卡,它变成了计算卡。

后面的发展就更快了:

  • 2009年:Fermi架构,首次支持C++、双精度浮点
  • 2012年:Kepler架构,能耗比大幅提升
  • 2017年:Volta架构,引入Tensor Core,专门加速AI
  • 2020年:Ampere架构,第三代Tensor Core + 光追核心
  • 2022年:Hopper架构,Transformer专用引擎

你可能注意到了,这二十年GPU的核心数爆炸式增长。
从最早的几组流水线,到如今上万颗CUDA核心。
而我们的Harmony校正算法,正好可以把这个优势吃干榨净。

1.3 并行计算——为什么GPU能跑这么快

这里我直接给你画个对比。
CPU就像几个米其林大厨,做菜讲究工序复杂、色香味俱全。
GPU就像一千个帮厨,每人只切一根葱,一分钟切一千根。

校正算法里的大头是:

  1. 颜色查表:每个像素都要做一次3D LUT插值
  2. 网格变形:每个像素都要根据网格坐标做双线性插值
  3. 响应曲线映射:每个像素都要执行一次EOTF/PQ逆变换

这些操作有一个共同特征:
对像素A的处理,完全不影响像素B的结果。
这就是所谓的「数据并行」。

特性CPUGPU
核心数4-161024-16384
频率3-5 GHz1-2 GHz
缓存大(MB级)小(KB级)
控制单元复杂简单
内存带宽50-100 GB/s500-2000 GB/s
适合场景复杂逻辑、串行任务简单运算、大规模并行

你看看内存带宽那一栏。
GPU的带宽是CPU的10倍以上。
这意味着什么?
意味着读取同样大小的图像数据,GPU只需要十分之一的时间。
对于需要逐像素读写的大尺寸校正来说,这就是质变。

我的小建议:
在设计GPU校正流水线时,一定要优先考虑「内存访问模式」。
我曾经花了两周优化一个核函数,发现瓶颈根本不在计算,
而在线程访问显存的模式是随机的——改成连续访问后,直接快了8倍。

1.4 课程目标与预备知识

这门课不是给你讲理论。
我们要的是「能跑、能优化、能上线」。
学完这门课后,你应该能做到:

  • 理解Harmony校正的核心算法(3D LUT、网格变形、去伽马)
  • 能用CUDA/C++把校正流水线跑在GPU上
  • 能分析性能瓶颈并针对性优化(共享内存、内存合并、warp调度)
  • 能处理4K@60fps的实时校正场景

至于预备知识,我不希望你卡在门槛上:

  • C/C++基础:指针、数组、函数调用要熟练。如果你只会Python,你得先补补C++
  • 图像处理基础:知道像素、通道、分辨率、色彩空间是怎么回事
  • 一点线性代数:矩阵、向量、插值——高中数学水平就够了
  • CUDA基础:我会在第一章快速回顾,但如果你完全零基础,建议先跑一遍NVIDIA的官方入门示例

⚠️ 避坑提醒:
我曾经收过一个学员,上来就问「我没写过C++,能不能直接学GPU校正」。
我当时的回答是:可以,但你会很痛苦。
因为你知道,GPU调试本身就很麻烦——一旦报错,有C++功底能帮你定位内存泄漏和Segmentation Fault。
所以,请务必先把C++搞熟。

1.5 本章知识结构

下面这张图,是我个人非常喜欢的一种总结方式。
它把本章的核心概念串在一起,方便你复习时快速回顾。

GPU加速Harmony校正 · 第一章知识结构 GPU加速Harmony校正 GPU发展史 游戏卡 → 计算卡 并行计算优势 数据并行、SIMT模型 GPU vs CPU 核心数、带宽、延迟 课程目标 实战 + 优化 + 实时 🔑 本章核心结论 1. GPU的并行架构天然适合图像校正类算法——像素间无依赖,可以大规模并发 2. 发展历程让我们看到:工具在变,但「用更少时间做更多事」的需求不变 3. 学这门课之前,请确认C++和图像处理基础——不然你会被并行调试折磨

1.6 本章小结

说了这么多,我想用几句话收个尾:

  • GPU发展了几十年,终于不再是那个只会画三角形的傻孩子了
  • 并行计算的核心就一句话:把一个大任务拆成无数个小任务,同时执行
  • GPU和CPU没有谁取代谁,它们是互补的——复杂逻辑给CPU,重复计算给GPU
  • 这门课的目标很实在:让你拥有把校正算法跑在GPU上,并且跑得飞快的能力