6.9. 执行控制 [已弃用]
本节介绍了 CUDA 运行时应用程序编程接口中已弃用的执行控制功能。
某些函数具有重载的 C++ API 模板版本,在 C++ API 例程 模块中单独记录。
函数
- __host__ cudaError_t cudaFuncSetSharedMemConfig ( const void* func, cudaSharedMemConfig config )
- 设置设备函数的共享内存配置。
函数
- __host__ cudaError_t cudaFuncSetSharedMemConfig ( const void* func, cudaSharedMemConfig config )
-
设置设备函数的共享内存配置。
参数
- func
- - 设备函数符号
- config
- - 请求的共享内存配置
已弃用
描述
在具有可配置共享内存库的设备上,此函数将强制所有后续指定设备函数的启动都具有给定的共享内存库大小配置。在函数的任何给定启动时,如果需要以适应函数的首选配置,设备的共享内存配置将临时更改。函数后续启动之间共享内存配置的更改可能会引入设备端同步点。通过 cudaFuncSetSharedMemConfig 设置的每个函数的共享内存库大小设置将覆盖由 cudaDeviceSetSharedMemConfig 设置的设备范围设置。
更改共享内存库大小不会增加共享内存使用率或影响内核的占用率,但可能会对性能产生重大影响。较大的库大小将允许更大的共享内存潜在带宽,但会改变哪些类型的共享内存访问将导致库冲突。
此函数在具有固定共享内存库大小的设备上不起作用。
对于模板函数,请按如下方式传递函数符号:func_name<template_arg_0,...,template_arg_N>
支持的库配置为
-
cudaSharedMemBankSizeDefault:启动此函数时使用设备的共享内存配置。
-
cudaSharedMemBankSizeFourByte:启动此函数时将共享内存库宽度设置为本地四字节。
-
cudaSharedMemBankSizeEightByte:启动此函数时将共享内存库宽度设置为本地八字节。
注意-
请注意,此函数也可能返回先前异步启动的错误代码。
-
在 CUDA 4.1 中,使用字符串命名函数作为func参数已被弃用,并在 CUDA 5.0 中移除。
-
请注意,如果此调用尝试初始化内部 CUDA RT 状态,此函数也可能返回 cudaErrorInitializationError、cudaErrorInsufficientDriver 或 cudaErrorNoDevice。
-
请注意,如 cudaStreamAddCallback 所指定,不得从回调中调用任何 CUDA 函数。在这种情况中,cudaErrorNotPermitted 可能会(但不保证)作为诊断返回。
另请参阅
cudaDeviceSetSharedMemConfig, cudaDeviceGetSharedMemConfig, cudaDeviceSetCacheConfig, cudaDeviceGetCacheConfig, cudaFuncSetCacheConfig, cuFuncSetSharedMemConfig