12.3.1 基于GPU的并行计算
预热的原因:
🧠 核心原因:GPU 的初始化和缓存机制会影响首次运行速度
1. 首次执行会有额外开销
- 当你第一次在一个设备(如
cuda:0)上执行一个操作时,系统会进行一些初始化工作:- 加载内核(kernel);
- 分配内存;
- 编译 PTX(Parallel Thread Execution)代码为特定 GPU 架构的指令;
- 初始化 CUDA 上下文;
- 这些操作只会在第一次运行时发生,后续调用就会快很多。
2. 缓存效应
- 某些计算或内存访问模式会被硬件缓存(cache)优化;
- 第一次运行可能命中率低,第二次就高了;
- 如果你在测量时不考虑这些因素,第一次的“慢速”会扭曲你的平均性能数据。
🔍 原因 1:缓存未命中(Cache Miss)
- 第一次执行某个操作时,所需的数据不在缓存中;
- 系统必须从内存甚至硬盘中读取,这会花费更多时间;
- 这叫做 缓存未命中(cache miss)。
✅ 原因 2:缓存命中(Cache Hit)
- 第二次运行相同或类似的操作时,所需数据很可能已经缓存好了;
- 系统可以直接从缓存中快速读取;
- 这叫做 缓存命中(cache hit),速度快很多。

浙公网安备 33010602011771号