Frameworks CUDA和OpenCL之前的GPGPU

Frameworks CUDA和OpenCL之前的GPGPU,frameworks,cuda,opencl,gpgpu,Frameworks,Cuda,Opencl,Gpgpu,我一直在阅读有关CUDA和OpenCL的文章,并了解到在这些框架出现之前,开发人员只能使用像OPENGL和D3D这样的低级API。不幸的是,我没有找到太多关于它的信息 这是一种普遍的或商业性的做法,还是只是他们在研究和军事实验室中使用的东西?我相信这里有人会有早期GPGPU编程的经验。它主要用于研究。当然,一些GPGPU技术被应用于需要在屏幕上放置像素的软件和游戏,但大多数情况下这是一项研究工作。在CUDA和OpenCL出现之前,GPGPGPU有很多方法,例如,图形和编程语言。如果你对历史感兴趣

我一直在阅读有关CUDA和OpenCL的文章,并了解到在这些框架出现之前,开发人员只能使用像OPENGL和D3D这样的低级API。不幸的是,我没有找到太多关于它的信息


这是一种普遍的或商业性的做法,还是只是他们在研究和军事实验室中使用的东西?我相信这里有人会有早期GPGPU编程的经验。

它主要用于研究。当然,一些GPGPU技术被应用于需要在屏幕上放置像素的软件和游戏,但大多数情况下这是一项研究工作。

在CUDA和OpenCL出现之前,GPGPGPU有很多方法,例如,图形和编程语言。

如果你对历史感兴趣,我认为最早让人们意识到GPGPU是可能的论文之一是当时一些SGI的人写的SIGGRAPH 2000论文,“交互式多通道可编程着色”。他们的想法是,他们可以将任何RenderMan着色语言着色器转换为一系列OpenGL调用(加上一些扩展)。令人惊奇的是,它根本没有使用可编程着色器——它完全基于为混合方程设置正确的参数和使用多次过程。数字精度是可笑的(8或16位定点),但使用图形硬件进行计算的想法就在那里


从这一点上说,他们可以做更华丽的每像素的事情,这与硬件的改进很快导致了GPGPU流体流动求解器约在2003年。这正是所有人都为这一巨大的黑客行为而脸红的时候,这导致了CUDA和OpenCL。

这两种方法看起来都非常有用,尽管我可以看到大多数应用程序都在哪里玩游戏。但我仍然想知道,在其他通用计算中,它们为什么不像CUDA和OpenCL那样主流。也许这与语言本身无关,而是与人们没有看到其他类型应用的潜力有关。就我所读到的内容而言,并没有新方法带来的那么好的加速效果,所以可能还有一个技术原因(真的不值得吗?)。我想我必须继续阅读有关它们的文章。当时GPU的灵活性差得多,因此适用于比当前GPU小得多的应用程序子集。最近,GPU获得了更多的通用功能,CUDA和OpenCL的引入使得利用这一功能变得相对容易。我想CUDA真的是GPGPU应用的“转折点”。非常好!我来看看。人们仍然使用cg或GLSL来实现GPGPU的目的,例如在移动环境中,CUDA或OpenCL不可用。