6.36. CUDA 检查点

CUDA API 版本控制支持

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

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

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

函数

CUresult cuCheckpointProcessCheckpoint ( int  pid, CUcheckpointCheckpointArgs* args )
检查 CUDA 进程的 GPU 内存内容。
CUresult cuCheckpointProcessGetRestoreThreadId ( int  pid, int* tid )
返回 CUDA 进程的恢复线程 ID。
CUresult cuCheckpointProcessGetState ( int  pid, CUprocessState* state )
返回 CUDA 进程的进程状态。
CUresult cuCheckpointProcessLock ( int  pid, CUcheckpointLockArgs* args )
锁定正在运行的 CUDA 进程。
CUresult cuCheckpointProcessRestore ( int  pid, CUcheckpointRestoreArgs* args )
从上次检查点恢复 CUDA 进程的 GPU 内存内容。
CUresult cuCheckpointProcessUnlock ( int  pid, CUcheckpointUnlockArgs* args )
解锁 CUDA 进程以允许 CUDA API 调用。

函数

CUresult cuCheckpointProcessCheckpoint ( int  pid, CUcheckpointCheckpointArgs* args )
检查 CUDA 进程的 GPU 内存内容。
参数
pid
- CUDA 进程的进程 ID
args
- 可选的检查点操作参数
描述

检查由以下项指定的 CUDA 进程pid处于 LOCKED 状态。GPU 内存内容将被带入主机内存,并且所有底层引用将被释放。进程必须处于 LOCKED 状态才能进行检查点操作。

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

CUresult cuCheckpointProcessGetRestoreThreadId ( int  pid, int* tid )
返回 CUDA 进程的恢复线程 ID。
参数
pid
- CUDA 进程的进程 ID
tid
- 返回的恢复线程 ID
描述

*tid中返回由以下项指定的进程的 CUDA 恢复线程的线程 IDpid.

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

*state由以下项指定的 CUDA 进程的当前状态pid.

CUresult cuCheckpointProcessLock ( int  pid, CUcheckpointLockArgs* args )
锁定正在运行的 CUDA 进程。
参数
pid
- CUDA 进程的进程 ID
args
- 可选的锁定操作参数
描述

锁定由以下项指定的 CUDA 进程pid这将阻止进一步的 CUDA API 调用。进程必须处于 RUNNING 状态才能锁定。

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

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

CUresult cuCheckpointProcessRestore ( int  pid, CUcheckpointRestoreArgs* args )
从上次检查点恢复 CUDA 进程的 GPU 内存内容。
参数
pid
- CUDA 进程的进程 ID
args
- 可选的恢复操作参数
描述

从上次检查点恢复由以下项指定的 CUDA 进程pid。进程必须处于 CHECKPOINTED 状态才能恢复。

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

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

另请参阅

cuInit

CUresult cuCheckpointProcessUnlock ( int  pid, CUcheckpointUnlockArgs* args )
解锁 CUDA 进程以允许 CUDA API 调用。
参数
pid
- CUDA 进程的进程 ID
args
- 可选的解锁操作参数
描述

解锁由以下项指定的进程pid,使其能够恢复进行 CUDA API 调用。进程必须处于 LOCKED 状态。

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