Skip to content
Gains Summary
Main Navigation 首页 / Home
C++ 编程 / C++ Programming
系统与高性能 / Systems & Performance
Web 开发 / Web Development
人工智能 / Artificial Intelligence
工业软件 / Industrial Software
其他内容 / Other Topics
C++ 编程 / C++系统与性能 / SystemsWeb 开发 / Web人工智能 / AI工业软件 / Industrial

外观

Sidebar Navigation

← 系统与高性能 / Systems & Performance

计算系统 / Computing Systems

1. 计算系统:计算机如何执行与加速程序

2. 从 C++ 源码到 CPU 执行

3. CPU 流水线、乱序执行与分支预测

4. Cache、一致性、伪共享与 NUMA

5. GPU、SM、Warp 与显存

6. 计算执行模型:程序怎样映射到机器

7. SIMD 与编译器向量化

8. C++ 多线程与 OpenMP

9. CUDA 平台与编程模型

10. CUDA Kernel、内存与性能

11. CPU-GPU 异构流水线

12. MPI 与分布式并行

13. 并行算法模式

14. 性能模型与工具

15. 递进学习项目:从单线程到集群

历史完整正文 / Original Deep Dives

1. 历史完整正文:统一前文章逐篇保留

原体系结构与硬件 / Original Architecture

1. 硬件编程与高性能计算:一张可走通的学习地图 / A Practical Learning Map for Hardware Programming and HPC

2. 计算机体系结构:CPU、内存与 GPU / Computer Architecture: CPUs, Memory, and GPUs

3. 计算机架构基础——为什么 GPU 比 CPU 更快 / Computer Architecture Fundamentals: Why GPUs Outperform CPUs

4. 并行计算理论——30 天训练能优化到多快? / Parallel Computing Theory and the Limits of Training Acceleration

5. GPU 架构深入——上万个核心如何分工协作 / GPU Architecture and Massive Parallel Execution

6. CUDA 编程模型——把矩阵乘法映射到 GPU / The CUDA Programming Model for Mapping Matrix Multiplication to GPUs

7. CUDA 内存管理——百亿参数如何装进显存 / CUDA Memory Management for Large Models

8. CUDA 性能优化——从 30 天缩短到 10 天 / CUDA Performance Optimization

9. CPU 并行编程——OpenMP 与 SIMD 向量化 / CPU Parallel Programming with OpenMP and SIMD

10. HPC 集群与 MPI——多节点分布式训练 / HPC Clusters and MPI for Distributed Training

11. 异构计算——CPU 与 GPU 如何协同工作 / Heterogeneous Computing with CPUs and GPUs

12. 深度学习训练优化实战——从 30 天到 3 天 / Deep Learning Training Optimization from Thirty Days to Three

13. 性能分析工具——找到真正的瓶颈 / Performance Analysis Tools for Finding Real Bottlenecks

14. NPU 全景——昇腾/寒武纪/TPU/苹果生态 / The NPU Landscape: Ascend, Cambricon, TPU, and Apple

15. 未来趋势——2030 年的计算机会是什么形态 / Future Computing Trends Toward 2030

16. 硬件与高性能计算:从“程序为什么慢”开始 / Hardware and HPC Starting from Why Programs Are Slow

原并行计算 / Original Parallel Computing

1. 并行计算:从 SIMD 到 MPI / Parallel Computing from SIMD to MPI

2. 并行计算全景:从晶体管、CPU、GPU 到计算集群 / Parallel Computing from Transistors, CPUs, and GPUs to Clusters

3. 并行计算基础:任务分解、加速比与可扩展性 / Parallel Computing Fundamentals: Decomposition, Speedup, and Scalability

4. 处理器体系结构:从指令流水线到多核芯片 / Processor Architecture from Instruction Pipelines to Multicore Chips

5. CPU 并行:多线程、SIMD、Cache 一致性与 NUMA / CPU Parallelism with Threads, SIMD, Cache Coherence, and NUMA

6. 内存层次:Cache、带宽、局部性与一致性 / Memory Hierarchies, Bandwidth, Locality, and Coherence

7. GPU 体系结构:SIMT、Warp、SM 与吞吐优先设计 / GPU Architecture with SIMT, Warps, and Streaming Multiprocessors

8. CUDA 编程模型:Thread、Block、Grid 与内存协作 / CUDA Threads, Blocks, Grids, and Cooperative Memory Access

9. 并行算法模式:Map、Reduce、Scan、Stencil 与任务图 / Parallel Patterns: Map, Reduce, Scan, Stencil, and Task Graphs

10. 异构计算:CPU、GPU、NPU 如何协同工作 / Heterogeneous Computing with CPUs, GPUs, and NPUs

11. 分布式并行:MPI、集合通信、RDMA 与多机多卡 / Distributed Parallelism with MPI, Collective Communication, and RDMA

12. 性能工程:测量、Roofline、瓶颈定位与优化闭环 / Performance Engineering with Measurement, Roofline, and Bottleneck Analysis

13. 并行计算实战:AI、CAE、图像与科学计算 / Parallel Computing for AI, CAE, Imaging, and Scientific Computing

14. 并行计算实践路线:从单核优化到多机多卡 / A Parallel Computing Project Path from Single-Core to Multi-Node GPUs

本页目录

并行计算实战:AI、CAE、图像与科学计算 / Parallel Computing for AI, CAE, Imaging, and Scientific Computing ​

📅 创建时间:2026-07-20 🏷️ 标签:#AI训练 #CAE #图像处理 #科学计算 📚 前置知识:[[10-performance-engineering]] 📚 相关知识:[[/04-ai/01-llm-engineering/13-training-infrastructure]] [[/05-industrial-software/01-foundations-and-architecture/03-cae-basics]]


1. AI 训练 ​

核心计算 ​

Transformer 训练的大部分计算来自矩阵乘法和 Attention,适合 GPU/Tensor Core。

系统并行 ​

text
CPU 数据处理
  ↓
GPU 前向与反向传播
  ↓
多 GPU 梯度同步
  ↓
优化器更新与 Checkpoint
1
2
3
4
5
6
7

主要瓶颈可能是:

  • GPU 算力
  • HBM 带宽
  • 激活和优化器显存
  • GPU 间集合通信
  • 数据加载和存储

优化手段包括混合精度、算子融合、Activation Checkpoint、数据/张量/流水线并行和通信重叠。


2. AI 推理 ​

推理同时关心吞吐与响应延迟:

  • Batching 提高吞吐,但会增加排队延迟
  • KV Cache 减少重复计算,但消耗显存
  • 量化减少容量和带宽,可能影响精度
  • Continuous Batching 提高动态请求利用率
  • Speculative Decoding 用额外计算换取更少串行解码步骤

自回归解码存在 Token 间依赖,不能简单把整个序列一次并行生成。


3. CAE 与有限元 ​

典型流程:

text
网格读取 → 单元计算 → 矩阵组装 → 线性求解 → 后处理
1

单元计算 ​

不同单元可以并行,但向全局矩阵 Scatter 时可能产生写冲突。

稀疏线性求解 ​

稀疏矩阵向量乘法通常算术强度低,容易受内存带宽限制。预条件器和收敛次数会显著影响总时间。

多节点划分 ​

网格分区需要兼顾单元数量和边界规模,边界越大,Halo Exchange 越多。


4. CFD 与规则网格 ​

有限差分和有限体积常使用 Stencil:

  • CPU:多线程 + SIMD + Cache 分块
  • GPU:Block + Shared Memory Tile
  • 集群:空间分区 + Halo Exchange

时间步之间存在依赖,但同一时间步的大量网格点可以并行。


5. 图像与视频处理 ​

像素级滤波天然适合 GPU,但完整流水线还包含:

text
磁盘/相机输入 → 解码 → 色彩转换 → 滤波 → 编码 → 输出
1

只加速滤波 Kernel 可能无法改善被解码或 I/O 限制的系统。使用硬件编解码、流水线和设备内数据复用通常更重要。


6. 图计算 ​

图算法具有不规则访问和动态工作量:

  • 顶点度数差异巨大
  • 邻接表访问不连续
  • Frontier 大小动态变化
  • 原子更新较多

CPU 擅长复杂控制,GPU 仍可通过 Frontier 压缩、负载分配和批处理获得高吞吐,但优化难度高于规则矩阵计算。


7. 数据库与数据分析 ​

并行技术应用于:

  • 分区扫描
  • Hash Join
  • 聚合与排序
  • SIMD 向量化执行
  • 多核查询调度
  • GPU 数据库算子

列式存储提高连续访问和压缩效率,也更适合向量化。查询执行计划决定并行是否真正减少总工作量。


8. 领域选型表 ​

场景主要并行方式常见瓶颈
LLM 训练GPU + 多卡集合通信算力、显存、网络
LLM 推理Batching + GPU KernelHBM、KV Cache、延迟
有限元CPU/GPU + MPI稀疏访存、通信
CFDStencil + 空间分区带宽、Halo Exchange
图像视频GPU + Pipeline传输、编解码
图计算动态任务并行随机访存、负载不均
数据分析SIMD + 多核分区内存带宽、数据倾斜

历史案例阅读框架 ​

本页保留课程合并前的应用案例。 当前权威文章增加了更完整的端到端数据流和验证方法。

阅读历史案例时按以下顺序:

  1. 领域问题;
  2. 算法依赖;
  3. 数据结构;
  4. 并行模式;
  5. 硬件映射;
  6. 数据移动;
  7. 同步;
  8. 正确性;
  9. 性能证据;
  10. 适用边界。

AI 训练历史补充 ​

训练系统同时包含:

  • 数据读取;
  • Tokenize/Preprocess;
  • H2D;
  • Forward;
  • Backward;
  • Gradient Communication;
  • Optimizer;
  • Checkpoint。

GPU 空闲可能来自数据或通信,而不是 Kernel 本身。

AI 推理历史补充 ​

推理区分 Prefill 与 Decode。

Prefill 更偏计算吞吐。 Decode 更容易受 KV Cache、带宽和批量限制。

指标包括 TTFT、Token 间延迟、吞吐、P99、显存和成本。

FEA 历史补充 ​

有限元阶段:

text
DOF
  -> pattern
  -> element integration
  -> assembly
  -> constraints
  -> solve
  -> results
1
2
3
4
5
6
7

局部单元计算容易并行。 全局写入、稀疏求解和通信更难扩展。

CFD 历史补充 ​

CFD 重点是通量、残差、时间推进和 Halo。

结构网格规则,适合 Stencil。 非结构网格需要邻接和间接访存。

图像视频历史补充 ​

完整 Pipeline 包含读取、解码、处理、编码和输出。

GPU Filter 很快,如果解码主导,用户仍看不到改善。

有界队列防止流水线内存无限增长。

图计算历史补充 ​

图计算难点:

  • 随机访问;
  • Frontier;
  • 原子;
  • 数据倾斜;
  • 动态任务;
  • 分区边界。

必须使用代表真实度数分布的数据。

数据分析历史补充 ​

列式布局、SIMD 和分区适合 Scan/Filter/Aggregate。

Join、Group By 和 Sort 受内存、哈希与 Spill 影响。

数据流图 ​

每个案例都应画:

text
input location
  -> transformation
  -> compute stages
  -> communication
  -> output and validation
1
2
3
4
5

数据位置和变化比硬件名称更能解释性能。

并行模式映射 ​

领域常见模式
AIDense Linear Algebra、Collective
FEAMap、Scatter、Sparse Solve
CFDStencil、Halo、Reduction
图像Pipeline、Map、Stencil
图Frontier、Task Graph
数据分析Scan、Hash、Sort、Reduce

模式只是起点,真实实现还要考虑规模和数据分布。

分区 ​

分区同时影响工作、内存和通信。

均分对象数量不一定均分时间。 需要按实际成本加权。

通信 ​

记录:

  • 消息数量;
  • 字节;
  • 延迟;
  • 集合通信;
  • 重叠;
  • 最慢 Rank;
  • 网络拓扑。

正确性 ​

每个领域都有不同 Oracle。

不能因为并行版本更快就跳过领域验证。

浮点顺序变化使用明确容差和守恒检查。

性能测量 ​

报告:

  • 串行基线;
  • 输入;
  • 资源;
  • 总时间;
  • 分阶段;
  • 加速比;
  • 效率;
  • 通信;
  • 内存;
  • 正确性。

历史数字边界 ​

旧硬件性能数字只适用于当时环境。

引用时保留设备、编译器、输入和命令。 无法复原时标为历史参考。

当前课程映射 ​

当前文章加入:

  • AI 端到端训练与推理;
  • FEA/CFD 阶段图;
  • 存储与 I/O;
  • 分区质量;
  • 正确性矩阵;
  • 扩展实验;
  • 案例报告模板。

案例复现清单 ​

  • 源码提交;
  • 数据版本;
  • 构建;
  • 硬件;
  • 并行配置;
  • 原始结果;
  • Profile;
  • 正确性;
  • 当前差异。

核心总结 ​

历史案例用于保留原始解释,当前工程决策必须回到最新课程和目标平台重新测量。 选择并行模型时先看依赖与数据,再看设备。 选择优化方向时先看端到端 Profile,再看局部 Kernel。 选择是否扩展到多节点时,同时估算通信、容量和故障恢复。 任何案例结果都应带正确性证据、环境和适用规模。 跨版本复现时还应记录工具链和依赖变化。

  • 领域算法决定并行模式,不能从硬件型号反推算法。
  • 规则密集计算更容易利用 GPU,不规则任务更依赖调度和数据结构。
  • 端到端系统常包含 CPU、GPU、网络和存储的组合瓶颈。
  • AI 与 CAE 都会同时遇到计算、容量和通信问题。

下一篇:[[12-learning-projects]]

最后更新于:

Pager
上一篇12. 性能工程:测量、Roofline、瓶颈定位与优化闭环 / Performance Engineering with Measurement, Roofline, and Bottleneck Analysis
下一篇14. 并行计算实践路线:从单核优化到多机多卡 / A Parallel Computing Project Path from Single-Core to Multi-Node GPUs

持续记录,持续成长

Copyright © Tidenflow