5

我一直在谷歌搜索,并且只能在从此处链接的技术简报之一中找到 Compute Capability 3.0 中新动态并行性的一个简单示例。我知道 HPC 专用卡可能要到明年这个时候才可用(在 nat'l 实验室得到他们的之后)。是的,我意识到他们给出的简单示例足以让您继续前进,但越多越好

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

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

__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 谈论CUDA 编程模型中的新功能主要关注 CUDA 5 中的新动态并行。该链接包含视频和幻灯片。仍然只是玩具示例,但比上面的技术简介要详细得多。

4

5 回答 5

6

这是您需要的动态并行编程指南。充满细节和例子:http ://docs.nvidia.com/cuda/pdf/CUDA_Dynamic_Parallelism_Programming_Guide.pdf

于 2012-11-02T04:05:50.510 回答
5

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

我有一个安装了 cuda 5.0 的 3.0 GPU 我已经编译了动态并行示例 nvcc -arch=sm_30 test.cu

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

显卡信息

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

希望这可以帮助

于 2012-12-02T12:11:02.057 回答
4

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

我们将在硬件可用时发布一些带有 CUDA 5 候选版本的示例。

于 2012-06-03T23:36:10.723 回答
0

我认为计算能力 3.0 不包括动态并行性。它将包含在 GK110 架构(又名“Big Kepler”)中,我不知道将分配什么计算能力编号(3.1?也许)。这些卡要到今年年底才能上市(我等得太久了)。据我所知,3.0 对应于 GK104 芯片,例如用于笔记本电脑的 GTX690 或 GT640M。

于 2012-06-02T14:04:10.413 回答
0

鉴于最近发布了 CUDA 5 RC,我只是想与大家一起检查一下。我查看了 SDK 示例,但在那里找不到任何动态并行性。如果我错了,有人纠正我。我通过搜索“<<<”在内核中搜索内核启动,但一无所获。

于 2012-10-10T23:32:30.747 回答