我想CUDA编程模型和编程一般都很新。我试图并行化一个期望最大化算法。我正在研究具有计算能力2.0的gtx 480。起初,我认为设备没有理由启动自己的线程,但当然,我很遗憾错误。我遇到这个pdf。CUDA动态并行的替代方案
http://docs.nvidia.com/cuda/pdf/CUDA_Dynamic_Parallelism_Programming_Guide.pdf
不幸的是,动态并行只适用于最新和最伟大的GPU,计算能力3.5。没有深入研究太多的细节,动态平行的另一种选择是什么? CPU EM算法中的循环具有很多依赖性并且高度嵌套,这似乎使动态并行性成为一种有吸引力的能力。我不确定我的问题是否有意义,所以请询问是否需要澄清。
谢谢!
在动态并行机制中,内核中有内核调用。如果你规定内核调用可以用'for'循环交换,那么粗略地说你应该用'for'循环交换嵌套的内核调用。 – JackOLantern
@RobertCrovella你们应该真的对GPU的命名做些事情。一个GT 640来作为2.1,3.0和3.5?https://developer.nvidia.com/cuda-gpus –
@RobertCrovella GT 640不再显示为计算3.5。也许你想收回那条评论。 –