虽然我现在已经编写了一段时间的CUDA内核,但我还没有使用动态并行(DP)。我遇到了一个我认为可能适合的任务;但是,我希望能够使用DP的方式是:
如果阻止它需要更多线程来完成它的工作,它会产生它们;它赋予它产生的线程“它知道什么” - 本质上,它的共享内存的内容,每个生成的线程块都在它自己的共享内存中获得副本;线程使用他们的父线程“知道”来确定他们需要继续做什么,然后去做。
但是,AFAICT不会发生共享内存的这种“继承”。全局内存(以及通过内核参数的常量内存)是“父”DP内核块可以将信息传递给其“子”块的唯一方法吗?答案 0 :(得分:2)
您没有想到的类型机制。父线程不能与通过动态并行性启动的子内核共享其本地内存或其块的共享内存。当父线程需要将临时数据传递给子内核时,唯一的选择是使用全局或动态分配的堆内存。