缺乏CUDA 5动态并行性示例

时间:2012-06-01 16:46:22

标签: cuda nvidia hpc

我一直在谷歌搜索,只能在他们的一个技术简报a trivial example中找到计算能力3.0中新的动态并行性from here。我知道HPC专用卡probably won't be available直到明年这个时候(在自然实验室获得他们的之后)。是的,我意识到他们给出的简单例子足以让你前进,但越多越好

还有其他我错过的例子吗?

为了省去麻烦,以下是技术简报中给出的完整示例:

__global__ ChildKernel(void* data){
    //Operate on data
}
__global__ ParentKernel(void *data){
    ChildKernel<<<16, 1>>>(data);
}
// In Host Code
ParentKernel<<<256, 64>>(data);

// Recursion is also supported
__global__ RecursiveKernel(void* data){
    if(continueRecursion == true)
        RecursiveKernel<<<64, 16>>>(data);
}

编辑: GTC演讲New Features In the CUDA Programming Model主要关注CUDA 5中新的动态并行性。该链接包含视频和幻灯片。仍然只是玩具的例子,但比上面的技术简介更详细。

5 个答案:

答案 0 :(得分:5)

这就是您所需要的,动态并行编程指南。完整的详细信息和示例:http://docs.nvidia.com/cuda/pdf/CUDA_Dynamic_Parallelism_Programming_Guide.pdf

答案 1 :(得分:5)

只是为了确认动态并行性仅支持GPU,计算能力为3.5以上。

我安装了cuda 5.0的3.0 GPU我编写了动态并行示例   nvcc -arch = sm_30 test.cu

并收到以下编译错误 test.cu(10):错误:只能在compute_35架构或更高版本上允许从全局函数(“parent_launch”)调用全局函数(“child_launch”)

GPU信息

设备0:“GeForce GT 640”   CUDA驱动程序版本/运行时版本5.0 / 5.0   CUDA能力主要/次要版本号:3.0

希望这会有所帮助

答案 2 :(得分:4)

我将问题标题编辑为“... CUDA 5 ...”,因为动态并行是CUDA 5中的新功能,而不是CUDA 4.我们还没有任何公开示例,因为我们没有可用于运行它们的公共硬件。 CUDA 5.0将支持动态并行性,但仅支持Compute Capability 3.5及更高版本(例如GK110)。这些将在今年晚些时候推出。

我们将在更接近硬件可用时间的情况下发布一些CUDA 5候选版本的示例。

答案 3 :(得分:0)

我认为计算能力3.0不包括动态的并行性。它将被包含在GK110架构(又名“Big Kepler”)中,我不知道将分配什么计算能力(3.1?可能)。这些卡在今年年底之前不可用(我等待的人太多了)。据我所知,3.0对应于GX104芯片,如GTX690或笔记本电脑的GT640M。

答案 4 :(得分:0)

考虑到最近发布的CUDA 5 RC,我想与您联系。我查看了SDK示例,但无法在那里找到任何动态并行性。如果我错了,有人会纠正我。我通过grepping“&lt;&lt;&lt;&lt;”来搜索内核中的内核启动一无所获。

相关问题