Cuda 持久线程与设备端排队/嵌套并行
如果可以应用的话,在GPGPU中使用持久性线程与使用设备端排队/嵌套并行相比是否还有优势 我读过一些旧的论文,其中旧硬件上需要持久线程来获得最佳性能,我不确定使用设备端排队/嵌套并行是否使该技术变得无关紧要Cuda 持久线程与设备端排队/嵌套并行,cuda,opencl,gpgpu,Cuda,Opencl,Gpgpu,如果可以应用的话,在GPGPU中使用持久性线程与使用设备端排队/嵌套并行相比是否还有优势 我读过一些旧的论文,其中旧硬件上需要持久线程来获得最佳性能,我不确定使用设备端排队/嵌套并行是否使该技术变得无关紧要 我认为,如果子任务在从父任务启动后完全独立,那么持久化线程可能仍然是值得的?持久化线程作为一种编程方法可能会在一段时间内继续引起人们的兴趣。与嵌套并行性相比,持久性线程可能具有几个优点。这里有两个: 消除启动延迟:虽然启动延迟很小(可能低至几微秒),但至少在CUDA动态并行(CDP)的情况下
我认为,如果子任务在从父任务启动后完全独立,那么持久化线程可能仍然是值得的?持久化线程作为一种编程方法可能会在一段时间内继续引起人们的兴趣。与嵌套并行性相比,持久性线程可能具有几个优点。这里有两个:
简言之,持久化内核并不是替代其他类型GPU处理范式的一般策略,但在特定情况下,它可以提供比反复启动内核的方法更大的好处。因此,对持久性内核的兴趣可能会持续一段时间。持久性线程作为一种编程方法可能会持续一段时间。与嵌套并行性相比,持久性线程可能具有几个优点。这里有两个:
简言之,持久化内核并不是替代其他类型GPU处理范式的一般策略,但在特定情况下,它可以提供比反复启动内核的方法更大的好处。因此,人们对持久内核的兴趣可能会持续一段时间。这是我对stackoverflow一个问题所做的最翔实的回答!奇怪的是,最快的人居然回答了!帮助优化数据缓存的要点和示例非常有用。您是否知道,如果nVidia的Pascal CUDA 8多块coop组能够以某种方式在执行之间保留注册/共享mem状态,情况是否会发生变化?非常感谢。我不知道Pascal/CUDA8能够在一次内核启动到下一次内核启动之间保持片上寄存器或共享内存的状态。据我所知,不存在此类设施。你能为这一说法引证一下吗?在谷歌随机搜索中,我发现在本文末尾提到了这一点:。但我不清楚它到底是如何工作的。在幻灯片23和25中,该演示肯定了任何多内核方法都会丢失状态(寄存器、共享内存)。多块协作方法是解决这一问题的一种方法,但它不涉及多个内核启动,也不“保留…执行之间的状态”(内核)。那里的“执行阶段”是概念性的,其思想是它们不再需要被expl分解