6.3. 线程管理 [已弃用]

本节介绍 CUDA 运行时应用程序编程接口中已弃用的线程管理功能。

函数

__host__cudaError_t cudaThreadExit ( void )
退出 CUDA 启动并进行清理。
__host__cudaError_t cudaThreadGetCacheConfig ( cudaFuncCache ** pCacheConfig )
返回当前设备的首选缓存配置。
__host__cudaError_t cudaThreadGetLimit ( size_t* pValue, cudaLimit limit )
返回资源限制。
__host__cudaError_t cudaThreadSetCacheConfig ( cudaFuncCache cacheConfig )
设置当前设备的首选缓存配置。
__host__cudaError_t cudaThreadSetLimit ( cudaLimit limit, size_t value )
设置资源限制。
__host__cudaError_t cudaThreadSynchronize ( void )
等待计算设备完成。

函数

__host__cudaError_t cudaThreadExit ( void )
退出 CUDA 启动并进行清理。
返回值

cudaSuccess

已弃用

请注意,此函数已弃用,因为其名称未能反映其行为。其功能与未弃用的函数 cudaDeviceReset() 相同,应改用该函数。

描述

显式销毁并清理当前进程中与当前设备关联的所有资源。后续对该设备的任何 API 调用都将重新初始化该设备。

请注意,此函数将立即重置设备。调用者有责任确保在调用此函数时,进程中的任何其他主机线程都未访问该设备。

注意

另请参阅

cudaDeviceReset

__host__cudaError_t cudaThreadGetCacheConfig ( cudaFuncCache ** pCacheConfig )
返回当前设备的首选缓存配置。
参数
pCacheConfig
- 返回的缓存配置
返回值

cudaSuccess

已弃用

请注意,此函数已弃用,因为其名称未能反映其行为。其功能与未弃用的函数 cudaDeviceGetCacheConfig() 相同,应改用该函数。

描述

在 L1 缓存和共享内存使用相同硬件资源的设备上,此函数通过以下方式返回pCacheConfig当前设备的首选缓存配置。这仅是一种偏好。运行时将尽可能使用请求的配置,但如果需要执行函数,则可以自由选择不同的配置。

这将返回一个pCacheConfigcudaFuncCachePreferNone 在 L1 缓存和共享内存大小固定的设备上。

支持的缓存配置包括

注意

另请参阅

cudaDeviceGetCacheConfig

__host__cudaError_t cudaThreadGetLimit ( size_t* pValue, cudaLimit limit )
返回资源限制。
参数
pValue
- 返回的限制大小(字节)
limit
- 要查询的限制
已弃用

请注意,此函数已弃用,因为其名称未能反映其行为。其功能与未弃用的函数 cudaDeviceGetLimit() 相同,应改用该函数。

描述

返回值:*pValue的当前大小limit。支持的 cudaLimit 值包括

注意

另请参阅

cudaDeviceGetLimit

__host__cudaError_t cudaThreadSetCacheConfig ( cudaFuncCache cacheConfig )
设置当前设备的首选缓存配置。
参数
cacheConfig
- 请求的缓存配置
返回值

cudaSuccess

已弃用

请注意,此函数已弃用,因为其名称未能反映其行为。其功能与未弃用的函数 cudaDeviceSetCacheConfig() 相同,应改用该函数。

描述

在 L1 缓存和共享内存使用相同硬件资源的设备上,此函数通过以下方式设置cacheConfig当前设备的首选缓存配置。这仅是一种偏好。运行时将尽可能使用请求的配置,但如果需要执行该函数,则可以自由选择不同的配置。通过 cudaFuncSetCacheConfig ( C API)cudaFuncSetCacheConfig ( C++ API) 设置的任何函数偏好将优先于此设备范围的设置。将设备范围的缓存配置设置为 cudaFuncCachePreferNone 将导致后续内核启动优先选择不更改缓存配置,除非启动内核是必需的。

在 L1 缓存和共享内存大小固定的设备上,此设置不起作用。

使用与最近偏好设置不同的偏好启动内核可能会插入设备端同步点。

支持的缓存配置包括

注意

另请参阅

cudaDeviceSetCacheConfig

__host__cudaError_t cudaThreadSetLimit ( cudaLimit limit, size_t value )
设置资源限制。
参数
limit
limit
- 要设置的限制
value
已弃用

- 限制大小(字节)

描述

请注意,此函数已弃用,因为其名称未能反映其行为。其功能与未弃用的函数 cudaDeviceSetLimit() 相同,应改用该函数。limit设置- 要设置的限制

是应用程序请求更新设备维护的当前限制。驱动程序可以自由修改请求的值以满足硬件要求(这可能包括钳位到最小值或最大值、向上舍入到最接近的元素大小等)。应用程序可以使用 cudaThreadGetLimit() 来准确了解限制已设置为多少。

  • 设置每个 cudaLimit 都有其自身的特定限制,因此此处将分别讨论。

注意

另请参阅

cudaLimitMallocHeapSize 控制 malloc() 和 free() 设备系统调用使用的堆的大小。设置 cudaLimitMallocHeapSize 必须在启动任何使用 malloc() 或 free() 设备系统调用的内核之前执行,否则将返回 cudaErrorInvalidValue

cudaDeviceSetLimit
__host__cudaError_t cudaThreadSynchronize ( void )
返回值

cudaSuccess

已弃用

等待计算设备完成。

描述

请注意,此函数已弃用,因为其名称未能反映其行为。其功能类似于未弃用的函数 cudaDeviceSynchronize() ,应改用该函数。

注意

另请参阅

阻塞直到设备完成所有先前的请求任务。cudaThreadSynchronize() 如果先前的任务之一失败,则返回错误。如果为此设备设置了 cudaDeviceScheduleBlockingSync 标志,则主机线程将阻塞,直到设备完成其工作。