opencl - 多个命令队列的资源

时间:2013-01-10 14:50:40

标签: parallel-processing task opencl

我正在开发一个应用程序,我在GPU上实时处理视频输入,偶尔我需要在GPU上进行一些资源扩展计算。我现在的问题是,我希望保持视频处理的实时速度,同时在出现额外的并行工作时。

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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