1

我正在开发一个应用程序,我在我的 GPU 上实时处理视频源,除此之外,我偶尔还需要在我的 GPU 上进行一些资源广泛的计算。我现在的问题是,我想保持我的视频处理实时速度,同时在它出现后并行执行额外的工作。

我认为应该这样做的方式是使用两个命令队列,一个用于实时视频处理,一个用于大量计算。但是,我不知道 GPU 的计算资源会如何结果:在并行执行期间是否会有同样多的工作人员分配给命令队列?(所以我可以预期我的实时计算会减慢约 50%?)还是取决于设备?

4

2 回答 2

3

OpenCL 规范让供应商决定如何平衡多个命令队列之间的执行资源。因此,供应商可以以一种使 GPU 一次只能在一个内核上工作的方式来实现 OpenCL。在我看来,这将是一个合法的实施。

如果您真的想以独立于设备的方式解决您的问题,我认为您需要弄清楚如何将大型非实时计算分解为较小的计算。

于 2013-01-10T18:55:42.223 回答
1

AMD 为设备裂变提供了一些扩展(我认为其中一些已在 OpenCL 1.2 中采用),这意味着您可以为一个上下文保留设备的某些部分,并将其余部分用于其他上下文。

于 2013-01-19T19:46:11.030 回答