【发布时间】:2019-06-02 15:59:00
【问题描述】:
假设我有两个任务要在 GPU 上运行,第二个任务基本上依赖第一个任务的所有工作。传统上,我基本上必须将这些任务编写为两个单独的内核,并安排第二个在第一个之后的某个时间运行。但是 - 使用 CUDA 9,我现在可以在整个网格上同步,完成第一个任务的工作 - using the cooperative groups feature,然后继续让网格完成第二个任务的工作。
我的问题是:
- 我们能否就编写两个内核的性能以及何时使用全网格同步提供一个经验法则?
- 如果是这样,会是什么?
- 如果不是 - 为什么很难确定在哪些情况下哪个更可取?
【问题讨论】:
标签: performance cuda gpu-cooperative-groups