OpenACC是否会脱离正常的GPU渲染?

时间:2014-05-24 03:52:00

标签: performance cpu openacc

我试图找出是否可以使用OpenACC代替正常的CPU串行执行调用。通常我的编程都是关于3D编程的,或者通常以某种方式使用GPU。 I.E.图像处理或需要使用着色器的某种其他类型的渲染。我试图弄清楚这个图书馆是否会让我受益。

我之所以这么说是因为如果我能够尽可能快地渲染3D图形,那会不会让这个过程变慢?或者是否能够维持它(理论上)"高帧速率"或不。

如果是这样,那么权衡是什么,以及多少?我不愿意放弃3D图形(显示)性能来增强可以在CPU上连续完成的操作。

编辑: 这是一个C ++上下文。

1 个答案:

答案 0 :(得分:0)

在我熟悉的AMD和NVIDIA GPU上,OpenACC程序将利用计算资源,这些资源在某种程度上也可以通过着色器程序使用。 GPU中还有许多其他图形硬件不在计算和图形之间共享,但有一些共享资源。同样,GPU可以通过PCIE连接到系统,因此这也可以提供共享资源或争用点(然而,这是罕见的计算或图形程序,甚至可能接近使用现代Gen3 x16 PCIE的带宽连接。)

因此,如果您同时使用图形(或计算)着色器以及OpenACC加速,则会在某种程度上争用资源。争论的程度或权衡,不是我可以概括的。它将在很大程度上取决于程序的细节,以及计算功能和图形功能的范围和详细顺序。

GPU设计人员在考虑这些类型的用例时,因此GPU通常非常擅长在可能竞争资源的各种任务之间快速上下文切换。