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),速度快很多。
posted @ 2025-05-17 19:46  最爱丁珰  阅读(39)  评论(0)    收藏  举报