具有计算能力 3.0 的 GPU 中的 CUDA 动态并行性

CUDA dynamic parallelism in a GPU with compute capability 3.0

是否可以在计算能力小于 3.5[=26= 的设备中使用 动态并行 功能]? 我知道 nvcc 如果在内核中遇到内核启动会 return 出错,但是是否可以声明一些 PTX 级函数来支持此功能? 例如这里我声明了 cudaLaunchDevice():

.extern .func(.param .b32 func_retval0) cudaLaunchDevice
{
    .param .b32 fun,
    .param .b32 parameterBuffer,
    .param .align 4 .b8 gridDimension[12],
    .param .align 4 .b8 blockDimension[12],
    .param .b32 sharedMemSize,
    .param .b32 stream
}

希望cuda_device_runtime_api.h中这个函数的CUDA级声明映射到之前的PTX级声明。 (节目一定要挂什么东西吗?)

//CUDA-level declaration of cudaLaunchDevice()
extern "C" __device__
cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer,
                             dim3 gridDimension, dim3 blockDimension,
                             unsigned int sharedMemSize,
                             cudaStream_t stream);

(代码来自CUDA C编程指南v6.5) .

不幸的是,这不起作用。您必须拥有 Kepler GK110 或任何第一代或第二代 Maxwell 卡。

"Dynamic Parallelism is only supported by devices of compute capability 3.5 and higher." 资料来源:http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#ixzz3OB61zgmK