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

时间:2015-01-02 16:42:52

标签: cuda

在计算能力低于 3.5 的设备中,是否可以使用动态并行功能? 我知道如果在内核中遇到内核启动, nvcc 将返回错误,但是是否可以声明某些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编程指南 book v6.5

1 个答案:

答案 0 :(得分:1)

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

“动态并行性仅受3.5及更高计算能力的设备支持。” 资料来源:http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#ixzz3OB61zgmK