LLVM的NVPTX后端(由NVIDIA提供)是否支持CUDA5 / Compute Capability 3.5设备中的新动态并行功能?
答案 0 :(得分:2)
我在CUDA Dynamic Parallelism Programming Guide的标题为“从PTX进行设备端启动”的部分中找到了一些信息。似乎可以从PTX访问一个名为cudaLaunchDevice()的函数,用户只需要在PTX中声明这个函数然后调用它:
// When .address_size is 64
.extern .func(.param .b32 func_retval0) cudaLaunchDevice
(
.param .b64 func,
.param .b64 parameterBuffer,
.param .align 4 .b8 gridDimension[12],
.param .align 4 .b8 blockDimension[12],
.param .b32 sharedMemSize,
.param .b64 stream
)
;
所以我想假设答案是在LLVM IR中声明这个函数,然后才使用它。我还没有测试过这个解决方案。