CPU和面向GPU的代码之间有什么区别?

时间:2015-10-17 22:50:42

标签: game-engine

让我们假设游戏开发者开发了一个应用程序。那么,在编写应用程序时,开发人员会编写一些应该转到CPU的代码段,而某些代码段应该转到GPU,还是由调度程序在运行时决定?

3 个答案:

答案 0 :(得分:4)

CPU和GPU不同,经过优化可以执行不同的操作。 GPU不那么聪明,但是大规模地更加并行并且执行大量的专门处理,而不是传统的CPU更一般的处理。

GPU必须由GPU负责。没有调度程序运行时限,因为它们是不同的,能够有不同的指令。

答案 1 :(得分:3)

由于您已标记C,因此我告诉您,您使用GCC或任何编译器编写的任何程序都是针对您的CPU而编写的。

如果您编写代码并使用常规编译器进行编译,那么它不是GPU执行的目标,代码将始终在CPU上执行。

对图形库的调用由CPU“执行”,但是面向图形的调用(例如,绘制内容)由GPU操作。

此外,回答这个问题取决于您正在执行的语言和程序。 CUDA和OpenCL或OpenGL计算着色器在GPU上执行。

基本上,代码的所有程序执行,即在代码中为渲染调用设置编译器环境都是由CPU完成的。

答案 2 :(得分:2)

CPU和GPU非常不同,并且具有不同的编程模型和编程语言。您可以在CPU上使用C,并在GPU上使用OpenCL(或CUDA,如果您限制自己使用Nvidia产品)。

您通常无法在GPU上运行任意C代码。

GPU的编码很痛苦,您必须将代码调整到特定的硬件。

另见PIPS4u&等工具。 OpenACC