6.36. CUDA检查点

CUDA API版本支持

本节介绍CUDA底层驱动应用程序编程接口的检查点和恢复功能。

CUDA检查点和恢复API提供了一种方法,当与CPU端进程检查点解决方案结合使用时,可以保存和恢复GPU状态以实现完整进程检查点。它们还可用于暂停GPU工作并挂起CUDA进程,以允许其他应用程序利用GPU资源。

检查点和恢复功能目前仅限于Linux系统。

Functions

CUresult cuCheckpointProcessCheckpoint ( int  pid, CUcheckpointCheckpointArgs* args )
Checkpoint a CUDA process's GPU memory contents.
CUresult cuCheckpointProcessGetRestoreThreadId ( int  pid, int* tid )
Returns the restore thread ID for a CUDA process.
CUresult cuCheckpointProcessGetState ( int  pid, CUprocessState* state )
Returns the process state of a CUDA process.
CUresult cuCheckpointProcessLock ( int  pid, CUcheckpointLockArgs* args )
Lock a running CUDA process.
CUresult cuCheckpointProcessRestore ( int  pid, CUcheckpointRestoreArgs* args )
Restore a CUDA process's GPU memory contents from its last checkpoint.
CUresult cuCheckpointProcessUnlock ( int  pid, CUcheckpointUnlockArgs* args )
Unlock a CUDA process to allow CUDA API calls.

Functions

CUresult cuCheckpointProcessCheckpoint ( int  pid, CUcheckpointCheckpointArgs* args )
检查点一个CUDA进程的GPU内存内容。
参数
pid
- The process ID of the CUDA process
args
- Optional checkpoint operation arguments
描述

对处于LOCKED状态的指定pid的CUDA进程进行检查点保存。GPU内存内容将被转移到主机内存中,并释放所有底层引用。进程必须处于LOCKED状态才能执行检查点操作。

成功返回后,进程将处于CHECKPOINTED状态。

CUresult cuCheckpointProcessGetRestoreThreadId ( int  pid, int* tid )
返回CUDA进程的恢复线程ID。
参数
pid
- The process ID of the CUDA process
tid
- Returned restore thread ID
描述

*tid中返回由pid指定进程的CUDA恢复线程的线程ID。

CUresult cuCheckpointProcessGetState ( int  pid, CUprocessState* state )
返回CUDA进程的进程状态。
参数
pid
- The process ID of the CUDA process
state
- Returned CUDA process state
描述

返回在*state中由pid指定的CUDA进程的当前状态。

CUresult cuCheckpointProcessLock ( int  pid, CUcheckpointLockArgs* args )
锁定一个正在运行的CUDA进程。
参数
pid
- The process ID of the CUDA process
args
- Optional lock operation arguments
描述

锁定由pid指定的CUDA进程,这将阻止进一步的CUDA API调用。进程必须处于运行状态才能锁定。

成功返回后,进程将处于LOCKED状态。

如果指定了timeoutMs且达到超时时间,进程将在返回时保持RUNNING状态。

CUresult cuCheckpointProcessRestore ( int  pid, CUcheckpointRestoreArgs* args )
从最后一次检查点恢复CUDA进程的GPU内存内容。
参数
pid
- The process ID of the CUDA process
args
- Optional restore operation arguments
描述

从最后一个检查点恢复由pid指定的CUDA进程。该进程必须处于CHECKPOINTED(已检查点)状态才能恢复。

成功返回后,进程将处于LOCKED状态。

CUDA进程恢复需要启用持久模式或在执行前调用cuInit

另请参阅:

cuInit

CUresult cuCheckpointProcessUnlock ( int  pid, CUcheckpointUnlockArgs* args )
解锁CUDA进程以允许进行CUDA API调用。
参数
pid
- The process ID of the CUDA process
args
- Optional unlock operation arguments
描述

解锁由pid指定的进程,允许其恢复调用CUDA API。该进程必须处于锁定状态。

成功返回后,进程将处于运行状态。