我一直在谷歌搜索,只能在他们的一个技术简报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中新的动态并行性。该链接包含视频和幻灯片。仍然只是玩具的例子,但比上面的技术简介更详细。
答案 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;”来搜索内核中的内核启动一无所获。