计算能力为3.0的GPU中的CUDA动态并行

计算能力为3.0的GPU中的CUDA动态并行,cuda,Cuda,在计算能力低于3.5的设备中,是否可能具有动态并行性功能? 我知道,如果nvcc在内核中遇到内核启动,它将返回一个错误,但是是否可以声明一些PTX级别的函数来支持此功能? 例如,这里我声明了cudaLaunchDevice(): 希望CUDA\u device\u runtime\u api.h中此函数的CUDA级别声明将映射到以前的PTX级别声明。(该计划是否必须与某些内容相关联?) (代码来自《CUDA C编程指南》第6.5版) .不幸的是,这不起作用。您必须拥有开普勒GK110或任何第一代

在计算能力低于3.5的设备中,是否可能具有动态并行性功能? 我知道,如果nvcc在内核中遇到内核启动,它将返回一个错误,但是是否可以声明一些PTX级别的函数来支持此功能? 例如,这里我声明了
cudaLaunchDevice()

希望
CUDA\u device\u runtime\u api.h
中此函数的CUDA级别声明将映射到以前的PTX级别声明。(该计划是否必须与某些内容相关联?)

(代码来自《CUDA C编程指南》第6.5版)
.

不幸的是,这不起作用。您必须拥有开普勒GK110或任何第一代或第二代麦克斯韦卡

“只有计算能力为3.5及更高版本的设备才支持动态并行。” 资料来源:

.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-level declaration of cudaLaunchDevice()
extern "C" __device__
cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer,
                             dim3 gridDimension, dim3 blockDimension,
                             unsigned int sharedMemSize,
                             cudaStream_t stream);