首页
学习
活动
专区
圈层
工具
发布

GPGPU功能
EN

Stack Overflow用户
提问于 2013-03-07 03:08:01
回答 4查看 339关注 0票数 0

GPGPU是一整套独立的平台,在GPU上执行不同的进程,还是使用OpenGL库来实现相同的功能?换句话说,GPGPU有自己的一组库吗?它依赖于硬件吗?或者它可以在任何硬件上运行,只要硬件支持OpenGL?我想我不确定GPGPU和OpenGL有什么不同?我知道OpenGL的一个副产品就是做一些繁重的并行计算,所以你实际上不必只使用它的图形功能。但是GPGPU呢?

EN

回答 4

Stack Overflow用户

发布于 2013-03-07 03:23:55

OpenCL GPGPU是独立于硬件的(更确切地说,是在Nvidia和AMD之间)。CUDA是一种仅适用于Nvidia的GPGPU语言。

GPGPU与OpenGL的不同之处在于,它可以执行超出OpenGL应用编程接口范围的任意操作。想要通过并行过程进行稀疏矩阵乘法吗?如果使用OpenCL或CUDA,OpenGL将不会提供构建它的能力(或者,如果它可以,它将会困难得多)。

GPGPU与OpenGL和DirecX是分开的。

票数 2
EN

Stack Overflow用户

发布于 2013-03-07 03:40:54

GPGU是一个概念,指的是使用GPGU进行任意计算的能力,而不仅仅是绘图。

目前,GPGPU有两种机制。最简单的方法是使用为GPGPU设计的API。OpenCL是跨平台的方法。CUDA是为那些愿意将自己限制在NVIDIA生态系统中的人而存在的。这些API定义了C/C++ API和特殊语言,用于在GPU上执行代码,以及与GPU内存接口(发送要处理的数据和读回结果)。

另一种方法是使用常规的渲染API简单地绘制“图片”并读取结果。要使用它,您必须格式化您的输入和输出数据,使其与呈现系统想要做的事情相匹配。

后一种方法通常会被避免,但有两个例外。首先,如果所讨论的硬件不支持OpenCL/CUDA/等,您显然别无选择,只能使用渲染API。或者两个,如果GPGPU操作用于提供呈现操作。类似于实例、粒子系统计算等的截锥剔除。如果您正在做的事情只会被以后的渲染操作直接使用,那么最好使用渲染API本身。在OpenCL/CUDA和渲染API(如OpenGL )之间的互操作可能会带来性能损失。

票数 2
EN

Stack Overflow用户

发布于 2013-03-07 03:24:03

虽然你可以使用直接的OpenGL来做一些GPGPU的事情(通过编写自定义着色器和使用纹理来传递数据),但通常更常见的是使用一个专门的库来做GPGPU,比如nVidia的CUDA。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15255868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档