6.3. 线程管理 [已弃用]

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

Functions

__host__cudaError_t cudaThreadExit ( void )
Exit and clean up from CUDA launches.
__host__cudaError_t cudaThreadGetCacheConfig ( cudaFuncCache ** pCacheConfig )
Returns the preferred cache configuration for the current device.
__host__cudaError_t cudaThreadGetLimit ( size_t* pValue, cudaLimit limit )
Returns resource limits.
__host__cudaError_t cudaThreadSetCacheConfig ( cudaFuncCache cacheConfig )
Sets the preferred cache configuration for the current device.
__host__cudaError_t cudaThreadSetLimit ( cudaLimit limit, size_t value )
Set resource limits.
__host__cudaError_t cudaThreadSynchronize ( void )
Wait for compute device to finish.

Functions

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

cudaSuccess

已弃用

请注意,此函数已弃用,因为其名称未能反映其实际行为。其功能与非弃用函数cudaDeviceReset()完全相同,建议改用后者。

描述

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

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

Note:

另请参阅:

cudaDeviceReset

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

cudaSuccess

已弃用

请注意,此函数已弃用,因为其名称未能反映其行为。其功能与非弃用函数cudaDeviceGetCacheConfig()完全相同,建议改用后者。

描述

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

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

支持的缓存配置包括:

Note:

另请参阅:

cudaDeviceGetCacheConfig

__host__cudaError_t cudaThreadGetLimit ( size_t* pValue, cudaLimit limit )
返回资源限制。
参数
pValue
- Returned size in bytes of limit
limit
- Limit to query
已弃用

请注意,此函数已被弃用,因为其名称未能准确反映其行为。其功能与非弃用函数cudaDeviceGetLimit()完全相同,建议改用后者。

描述

返回*pValuelimit的当前大小。支持的cudaLimit值为:

Note:

另请参阅:

cudaDeviceGetLimit

__host__cudaError_t cudaThreadSetCacheConfig ( cudaFuncCache cacheConfig )
为当前设备设置首选的缓存配置。
参数
cacheConfig
- Requested cache configuration
返回

cudaSuccess

已弃用

请注意,此函数已弃用,因为其名称未能反映其实际行为。其功能与非弃用函数cudaDeviceSetCacheConfig()完全相同,建议改用后者。

描述

在L1缓存和共享内存使用相同硬件资源的设备上,通过cacheConfig设置当前设备的首选缓存配置。这仅是一个偏好设置。运行时系统会尽可能采用请求的配置,但必要时可以自由选择其他配置。通过cudaFuncSetCacheConfig ( C API)cudaFuncSetCacheConfig ( C++ API)设置的任何函数级偏好都将优先于此设备全局设置。将设备全局缓存配置设为cudaFuncCachePreferNone会导致后续内核启动时优先保持原有缓存配置,除非必须更改才能启动内核。

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

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

支持的缓存配置包括:

Note:

另请参阅:

cudaDeviceSetCacheConfig

__host__cudaError_t cudaThreadSetLimit ( cudaLimit limit, size_t value )
设置资源限制。
参数
limit
- Limit to set
value
- Size in bytes of limit
已弃用

请注意,此函数已弃用,因为其名称未能准确反映其行为。其功能与非弃用函数cudaDeviceSetLimit()完全相同,建议改用后者。

描述

limit设置为value是应用程序请求更新设备当前维护的限制值。驱动程序可以自由调整请求值以满足硬件要求(可能将其限制在最小或最大值范围内,向上取整到最近的元素大小等)。应用程序可以使用cudaThreadGetLimit()来准确查询限制值最终被设置为何。

设置每个cudaLimit都有其特定的限制条件,因此这里分别进行讨论。

Note:

另请参阅:

cudaDeviceSetLimit

__host__cudaError_t cudaThreadSynchronize ( void )
等待计算设备完成操作。
返回

cudaSuccess

已弃用

请注意,此函数已弃用,因为其名称未能反映其实际行为。其功能类似于未弃用的函数cudaDeviceSynchronize(),建议改用后者。

描述

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

Note:

另请参阅:

cudaDeviceSynchronize