6.23. 执行控制 [已弃用]
本节介绍低级别 CUDA 驱动程序应用程序编程接口中已弃用的执行控制函数。
函数
- CUresult cuFuncSetBlockShape ( CUfunction hfunc, int x, int y, int z )
- 设置函数的块维度。
- CUresult cuFuncSetSharedMemConfig ( CUfunction hfunc, CUsharedconfig config )
- 为设备函数设置共享内存配置。
- CUresult cuFuncSetSharedSize ( CUfunction hfunc, unsigned int bytes )
- 设置函数的动态共享内存大小。
- CUresult cuLaunch ( CUfunction f )
- 启动 CUDA 函数。
- CUresult cuLaunchGrid ( CUfunction f, int grid_width, int grid_height )
- 启动 CUDA 函数。
- CUresult cuLaunchGridAsync ( CUfunction f, int grid_width, int grid_height, CUstream hStream )
- 启动 CUDA 函数。
- CUresult cuParamSetSize ( CUfunction hfunc, unsigned int numbytes )
- 设置函数的参数大小。
- CUresult cuParamSetTexRef ( CUfunction hfunc, int texunit, CUtexref hTexRef )
- 将纹理引用添加到函数的参数列表。
- CUresult cuParamSetf ( CUfunction hfunc, int offset, float value )
- 将浮点参数添加到函数的参数列表。
- CUresult cuParamSeti ( CUfunction hfunc, int offset, unsigned int value )
- 将整数参数添加到函数的参数列表。
- CUresult cuParamSetv ( CUfunction hfunc, int offset, void* ptr, unsigned int numbytes )
- 将任意数据添加到函数的参数列表。
函数
- CUresult cuFuncSetBlockShape ( CUfunction hfunc, int x, int y, int z )
-
设置函数的块维度。
参数
- hfunc
- - 要指定维度的内核
- x
- - X 维度
- y
- - Y 维度
- z
- - Z 维度
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_VALUE
已弃用
描述
指定x, y、和z当内核由hfunc启动时创建的线程块的维度。注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetSharedSize, cuFuncSetCacheConfig, cuFuncGetAttribute, cuParamSetSize, cuParamSeti, cuParamSetf, cuParamSetv, cuLaunch, cuLaunchGrid, cuLaunchGridAsync, cuLaunchKernel
- CUresult cuFuncSetSharedMemConfig ( CUfunction hfunc, CUsharedconfig config )
-
为设备函数设置共享内存配置。
参数
- hfunc
- - 要为其提供共享内存配置的内核
- config
- - 请求的共享内存配置
返回值
CUDA_SUCCESS, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT
已弃用
描述
在具有可配置共享内存库的设备上,此函数将强制所有后续启动的指定设备函数都具有给定的共享内存库大小配置。在函数的任何给定启动时,如果需要,设备的共享内存配置将被临时更改以适应函数的首选配置。函数后续启动之间共享内存配置的更改可能会引入设备端同步点。通过 cuFuncSetSharedMemConfig 设置的每个函数的共享内存库大小设置将覆盖使用 cuCtxSetSharedMemConfig 设置的上下文范围设置。
更改共享内存库大小不会增加共享内存使用量或影响内核的占用率,但可能会对性能产生重大影响。较大的库大小将允许更大的共享内存潜在带宽,但会改变哪些类型的共享内存访问会导致库冲突。
此函数在具有固定共享内存库大小的设备上不起作用。
支持的库配置为
-
CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE:启动此函数时使用上下文的共享内存配置。
-
CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE:启动此函数时,将共享内存库宽度设置为本机四字节。
-
CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE:启动此函数时,将共享内存库宽度设置为本机八字节。
注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuCtxGetCacheConfig, cuCtxSetCacheConfig, cuCtxGetSharedMemConfig, cuCtxSetSharedMemConfig, cuFuncGetAttribute, cuLaunchKernel, cudaFuncSetSharedMemConfig
- CUresult cuFuncSetSharedSize ( CUfunction hfunc, unsigned int bytes )
-
设置函数的动态共享内存大小。
参数
- hfunc
- - 要为其指定动态共享内存大小的内核
- bytes
- - 每个线程的动态共享内存大小(以字节为单位)
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_VALUE
已弃用
描述
通过bytes设置当内核由hfunc启动时创建的线程块的维度。注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetCacheConfig, cuFuncGetAttribute, cuParamSetSize, cuParamSeti, cuParamSetf, cuParamSetv, cuLaunch, cuLaunchGrid, cuLaunchGridAsync, cuLaunchKernel
- CUresult cuLaunch ( CUfunction f )
-
启动 CUDA 函数。
参数
- f
- - 要启动的内核
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_LAUNCH_FAILED, CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES, CUDA_ERROR_LAUNCH_TIMEOUT, CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING, CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
已弃用
描述
在 1 x 1 x 1 的块网格上调用内核f。该块包含先前调用 cuFuncSetBlockShape() 指定的线程数。必须在使用 cuFuncSetBlockShape()、cuFuncSetSharedSize()、cuParamSetSize()、cuParamSeti()、cuParamSetf() 和 cuParamSetv() 先设置块形状、动态共享内存大小和参数信息,然后再调用此函数。
通过 cuLaunchKernel() 启动函数会使函数的块形状、动态共享内存大小和参数信息无效。通过 cuLaunchKernel 启动后,必须重新初始化此状态,然后才能调用此函数。否则会导致未定义的行为。
注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetSharedSize, cuFuncGetAttribute, cuParamSetSize, cuParamSetf, cuParamSeti, cuParamSetv, cuLaunch, cuLaunchGrid, cuLaunchGridAsync, cuLaunchKernel
- CUresult cuLaunchGrid ( CUfunction f, int grid_width, int grid_height )
-
启动 CUDA 函数。
参数
- f
- - 要启动的内核
- grid_width
- - 网格宽度(以块为单位)
- grid_height
- - 网格高度(以块为单位)
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_LAUNCH_FAILED, CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES, CUDA_ERROR_LAUNCH_TIMEOUT, CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING, CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
已弃用
描述
在 1 x 1 x 1 的块网格上调用内核f在grid_widthxgrid_height块网格上启动内核。每个块包含先前调用 cuFuncSetBlockShape() 指定的线程数。必须在使用 cuFuncSetBlockShape()、cuFuncSetSharedSize()、cuParamSetSize()、cuParamSeti()、cuParamSetf() 和 cuParamSetv() 先设置块形状、动态共享内存大小和参数信息,然后再调用此函数。
通过 cuLaunchKernel() 启动函数会使函数的块形状、动态共享内存大小和参数信息无效。通过 cuLaunchKernel 启动后,必须重新初始化此状态,然后才能调用此函数。否则会导致未定义的行为。
注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetSharedSize, cuFuncGetAttribute, cuParamSetSize, cuParamSetf, cuParamSeti, cuParamSetv, cuLaunch, cuLaunchGridAsync, cuLaunchKernel
- CUresult cuLaunchGridAsync ( CUfunction f, int grid_width, int grid_height, CUstream hStream )
-
启动 CUDA 函数。
参数
- f
- - 要启动的内核
- grid_width
- - 网格宽度(以块为单位)
- grid_height
- - 网格高度(以块为单位)
- hStream
- - 流标识符
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_HANDLE, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_LAUNCH_FAILED, CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES, CUDA_ERROR_LAUNCH_TIMEOUT, CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING, CUDA_ERROR_SHARED_OBJECT_INIT_FAILED
已弃用
描述
在 1 x 1 x 1 的块网格上调用内核f在grid_widthxgrid_height块网格上启动内核。每个块包含先前调用 cuFuncSetBlockShape() 指定的线程数。必须在使用 cuFuncSetBlockShape()、cuFuncSetSharedSize()、cuParamSetSize()、cuParamSeti()、cuParamSetf() 和 cuParamSetv() 先设置块形状、动态共享内存大小和参数信息,然后再调用此函数。
通过 cuLaunchKernel() 启动函数会使函数的块形状、动态共享内存大小和参数信息无效。通过 cuLaunchKernel 启动后,必须重新初始化此状态,然后才能调用此函数。否则会导致未定义的行为。
注意-
在某些情况下,当 cubin 在没有 ABI 的情况下创建时(即,使用ptxas--abi-compileno),此函数可能会序列化内核启动。 CUDA 驱动程序通过根据每次启动的需要增加每个线程的堆栈并在之后不缩小堆栈来保留异步行为。
-
此函数使用标准的 默认流 语义。
-
请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetSharedSize, cuFuncGetAttribute, cuParamSetSize, cuParamSetf, cuParamSeti, cuParamSetv, cuLaunch, cuLaunchGrid, cuLaunchKernel
- CUresult cuParamSetSize ( CUfunction hfunc, unsigned int numbytes )
-
设置函数的参数大小。
参数
- hfunc
- - 要设置参数大小的内核
- numbytes
- - 参数列表的大小(以字节为单位)
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE
已弃用
描述
通过numbytes对应于hfunc.注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetSharedSize, cuFuncGetAttribute, cuParamSetf, cuParamSeti, cuParamSetv, cuLaunch, cuLaunchGrid, cuLaunchGridAsync, cuLaunchKernel
- CUresult cuParamSetTexRef ( CUfunction hfunc, int texunit, CUtexref hTexRef )
-
向函数的参数列表中添加纹理引用。
参数
- hfunc
- - 要向其添加纹理引用的内核
- texunit
- - 纹理单元(必须为 CU_PARAM_TR_DEFAULT)
- hTexRef
- - 要添加到参数列表的纹理引用
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE
已弃用
描述
使绑定到纹理引用的 CUDA 数组或线性内存hTexRef可作为纹理用于设备程序。在此 CUDA 版本中,纹理引用必须通过 cuModuleGetTexRef() 获取,并且texunit参数必须设置为 CU_PARAM_TR_DEFAULT。注意请注意,此函数也可能返回先前异步启动的错误代码。
- CUresult cuParamSetf ( CUfunction hfunc, int offset, float value )
-
向函数的参数列表中添加浮点参数。
参数
- hfunc
- - 要向其添加参数的内核
- offset
- - 向参数列表添加参数的偏移量
- value
- - 参数值
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE
已弃用
描述
设置一个浮点参数,该参数将在下次调用与hfunc对应的内核时指定。offset是一个字节偏移量。注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetSharedSize, cuFuncGetAttribute, cuParamSetSize, cuParamSeti, cuParamSetv, cuLaunch, cuLaunchGrid, cuLaunchGridAsync, cuLaunchKernel
- CUresult cuParamSeti ( CUfunction hfunc, int offset, unsigned int value )
-
向函数的参数列表中添加整数参数。
参数
- hfunc
- - 要向其添加参数的内核
- offset
- - 向参数列表添加参数的偏移量
- value
- - 参数值
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE
已弃用
描述
设置一个整数参数,该参数将在下次调用与hfunc对应的内核时指定。offset是一个字节偏移量。注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetSharedSize, cuFuncGetAttribute, cuParamSetSize, cuParamSetf, cuParamSetv, cuLaunch, cuLaunchGrid, cuLaunchGridAsync, cuLaunchKernel
- CUresult cuParamSetv ( CUfunction hfunc, int offset, void* ptr, unsigned int numbytes )
-
向函数的参数列表中添加任意数据。
参数
- hfunc
- - 要向其添加数据的内核
- offset
- - 向参数列表添加数据的偏移量
- ptr
- - 指向任意数据的指针
- numbytes
- - 要复制的数据大小(以字节为单位)
返回值
CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED, CUDA_ERROR_NOT_INITIALIZED, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE
已弃用
描述
从numbytes复制任意数量的数据(在ptr中指定)到与hfunc. offset是一个字节偏移量。注意请注意,此函数也可能返回先前异步启动的错误代码。
另请参阅
cuFuncSetBlockShape, cuFuncSetSharedSize, cuFuncGetAttribute, cuParamSetSize, cuParamSetf, cuParamSeti, cuLaunch, cuLaunchGrid, cuLaunchGridAsync, cuLaunchKernel