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
在 GPU 而不是 Ubuntu 上的 CPU 上运行 Spyder 代码