Reverse-engineering Nvidia's CUDA-checkpoint for faster cold starts
2 days ago
- #reverse-engineering
- #CUDA
- #GPU-checkpoint
- 英伟达的cuda-checkpoint工具允许冻结CUDA进程,并将GPU状态序列化到主机内存中,之后可精确恢复至原有状态。
- 检查点涉及将GPU状态传输到主机端的匿名缓冲区,在恢复前可直接操作此缓冲区(例如修改GPU计数器)。
- 检查点操作由目标进程内的服务线程执行,通过管道通信,并使用普通的驱动程序ioctl而非专用的检查点系统调用。
- 检查点与恢复的速度受暂存缓冲区的分配和释放限制,检查点复制速度约为3 GiB/s,恢复速度约为8 GiB/s,远低于PCIe带宽上限。
- 可通过使用透明大页(THP)降低缓冲区清零开销,或拦截mmap调用重用预清零缓冲区来提升性能,最高可实现4倍加速。