CheCUDA: A Checkpoint/Restart Tool for CUDA Applications

Hiroyuki Takizawa, Katsuto Sato, Kazuhiko Komatsu,
Graduate School of Information Sciences, Tohoku University, 6-3 Aramaki-aza-aoba, Sendai, 980-8578 Japan
International Conference on Parallel and Distributed Computing, Applications and Technologies, 2009, p.408-413


   title={CheCUDA: A Checkpoint/Restart Tool for CUDA Applications},

   author={Takizawa, H. and Sato, K. and Komatsu, K. and Kobayashi, H.},

   booktitle={Parallel and Distributed Computing, Applications and Technologies, 2009 International Conference on},





Download Download (PDF)   View View   Source Source   



In this paper, a tool named CheCUDA is designed to checkpoint CUDA applications that use GPUs as accelerators. As existing checkpoint/restart implementations do not support checkpointing the GPU status, CheCUDA hooks a part of basic CUDA driver API calls in order to record the status changes on the main memory. At checkpointing, CheCUDA stores the status changes in a file after copying all necessary data in the video memory to the main memory and then disabling the CUDA runtime. At restarting, CheCUDA reads the file, re-initializes the CUDA runtime, and recovers the resources on GPUs so as to restart from the stored status. This paper demonstrates that a prototype implementation of CheCUDA can correctly checkpoint and restart a CUDA application written with basic APIs. This also indicates that CheCUDA can migrate a process from one PC to another even if the process uses a GPU. Accordingly, CheCUDA is useful not only to enhance the dependability of CUDA applications but also to enable dynamic task scheduling of CUDA applications required especially on heterogeneous GPU cluster systems. This paper also shows the timing overhead for checkpointing.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2021 hgpu.org

All rights belong to the respective authors

Contact us: