2

我正在尝试在 OpenCL 内核中使用递归。编译成功,但运行时出现编译错误,所以我想知道,由于 CUDA 现在支持动态并行,OpenCL 是否支持动态并行?

4

2 回答 2

5

OpenCL 不支持递归。请参阅标准 v1.2 的第 6.9 节中的第 i 点。

编辑: CUDA 的新动态并行功能与递归没有任何关系(CUDA 不久前已经支持它。请参阅这个问题。这项新功能允许在设备上运行的线程配置和启动新的网格以前只能由主机完成。有关概述,请参阅此文档。

第二次编辑:关于@Michael 的回答:这只是规范,您将不得不等待实现发布。此外,将来您还必须确保拥有合适的硬件(即使是动态并行,CUDA 也仅支持功能为 3.5 及更高版本的设备)。所以当你问你的问题时,直到今天:没有 OpenCL 实现支持动态并行。

于 2013-07-17T11:46:20.710 回答
1

OpenCL 2 现在支持动态并行。Khronos Group 在 Siggraph 2013 上宣布了它。

你可以在这里找到规格

于 2013-07-23T07:55:06.610 回答