opengl 代码是不是在 GPU 上运行?

Posted

技术标签:

【中文标题】opengl 代码是不是在 GPU 上运行?【英文标题】:Is the opengl code running on GPU?opengl 代码是否在 GPU 上运行? 【发布时间】:2011-12-29 02:15:28 【问题描述】:

当有一个程序时,它由普通的c++代码和opengl代码组成。 因此,c++ 和 opengl 都被编译并链接到 ELF。 而且,似乎它们都在 CPU 上运行。

为什么opengl代码比c++代码更有能力在屏幕上绘画?

【问题讨论】:

【参考方案1】:

为什么opengl代码比c++代码更有能力在屏幕上绘画?

因为 OpenGL 只是向 GPU 发送绘图命令,然后 GPU 会做大量工作。请注意,还有一些 OpenGL 实现不是 GPU 加速的,因此并不比在 CPU 上运行的其他软件光栅化器快。

【讨论】:

【参考方案2】:

除非您在谈论 GLSL,否则“C++ 代码”和“OpenGL 代码”之间没有区别。这一切都只是 C 或 C++,这取决于您正在构建的内容。 OpenGL 是一个 API,一个包含执行某些功能的函数的库。

您的代码调用 OpenGL 函数,这些函数在功能上与您可能调用的任何其他 C++ 函数没有什么不同。 C++ 中的函数会根据它们的实现方式做一些事情。

OpenGL 函数使用 GPU 特定的结构告诉 GPU 做什么。这就是 OpenGL 的用途:抽象出硬件的细节,以便您可以编写不依赖于硬件的代码。您调用 OpenGL 函数的代码应该适用于任何支持最低 GL 版本(和扩展,如果您正在使用)的 OpenGL 实现。

同样,std::fstream 抽象出 Windows 和 Linux 文件访问命令之间的差异。用户使用相同的 API,但在不同的操作系统上有不同的实现。

【讨论】:

我想对于两个极小的值。

以上是关于opengl 代码是不是在 GPU 上运行?的主要内容,如果未能解决你的问题,请参考以下文章

使用 CentOS 在 AWS GPU 实例上运行 OpenGL

是否可以在AMD GPU上运行CUDA?

TI J6:如何确定我的应用程序是不是正在使用 GPU

在 GPU 而不是 Ubuntu 上的 CPU 上运行 Spyder 代码

如何在 Visual Studio / OpenGL 中设置 GPU [重复]

Quad Texture 奇怪的行为 OpenGL 旧 GPU