高性能 C++ 并行编程导读

高性能 C++ 并行编程导读

时间:2026/04/09

这组笔记现在按“从语言与内存基础,到 CPU 并行,再到 GPU 与实战”的顺序整理。
阅读时不建议完全按时间写作顺序看,而建议按下面这条主线走。


1. 推荐学习顺序

  1. C 指针与内存模型
  2. RAII 与智能指针
  3. 左右值、完美转发与引用折叠
  4. 模板与元编程
  5. vector 容器优化
  6. 编译器优化与汇编视角
  7. 访存优化
  8. C++11 多线程编程
  9. 原子操作、内存序与无锁基础
  10. TBB 并行编程
  11. CUDA 开启的 GPU 编程
  12. 流体仿真实战

2. 每篇笔记解决什么问题

编号 主题 核心问题
[01] C 指针与内存模型 地址、生命周期、数组退化、别名与缓存直觉
[02] RAII 与智能指针 资源如何自动释放,所有权如何表达
[03] 左右值、完美转发与引用折叠 std::move / std::forward 到底在做什么
[04] 模板与元编程 泛型、类型推导、if constexpr、traits、concepts
[05] vector 容器优化 连续内存、扩容、失效规则、并发写入模式
[06] 编译器优化与汇编视角 编译器如何重写 C++,哪些写法更利于优化
[07] 访存优化 cache、AoS/SoA、stride、blocking、false sharing
[08] C++11 多线程编程 thread/mutex/condition_variable/future/thread pool
[09] 原子操作、内存序与无锁基础 atomic、CAS、acquire/release、seq_cst
[10] TBB 并行编程之旅 task、并行循环、归约、scan、arena、pipeline
[11] CUDA 开启的 GPU 编程 kernel、内存、shared memory、stream、Thrust
[12] 流体仿真实战 把 CUDA、访存、数值迭代放到一个完整案例里

3. 这次整理做了什么

这次不是只改文件名,而是做了三类整理:

  1. 把空白或草稿笔记补成正式版:
    C 指针RAII编译器优化访存优化流体仿真
  2. 新增了一篇缺失但关键的笔记:
    原子操作、内存序与无锁基础
  3. 统一为按内容排序的 [NN]xxx.md 命名

4. 如果只想抓主干

时间有限时,可以先看这 6 篇:

  1. C 指针与内存模型
  2. RAII 与智能指针
  3. 左右值、完美转发与引用折叠
  4. vector 容器优化
  5. 访存优化
  6. C++11 多线程编程

这几篇能先把 C++ 高性能和并行里最常见的基础坑位补齐。


5. 接下来的自然扩展

如果后面继续补这套笔记,最值得优先新增的主题是:

  1. SIMD 与自动向量化
  2. Benchmark 与性能分析方法
  3. NUMA 与多路 CPU 内存访问
  4. std::pmr 与内存池
  5. C++20/23 并发工具:jthread / latch / barrier / semaphore