首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GPU编程新手:学什么?

GPU编程新手:学什么?
EN

Stack Overflow用户
提问于 2008-12-15 19:18:35
回答 3查看 2.9K关注 0票数 2

我正在渲染一个特定的场景到屏幕外的帧缓冲区(FBO),然后我使用glReadPixels()读取渲染的图像,以便在CPU上处理。处理包括一些非常简单的扫描例程和数据提取。

在分析之后,我意识到我的应用程序所做的大部分时间都花在了glReadPixels()上--超过50%的时间。因此,自然的一步是将处理转移到GPU,这样就不必复制数据。

所以我的问题是-在GPU上编程的最好方法是什么?

GLSL?

库达?

还有什么我现在不知道的吗?

主要要求是它可以访问渲染的屏幕外帧缓冲区(或者纹理数据,因为它可以渲染到纹理),并且能够向CPU输出一些信息,比如每帧1-2Kb的顺序。

EN

回答 3

Stack Overflow用户

发布于 2008-12-15 19:23:25

您可能会发现"Intro to GPU programming“问题中的答案很有用。

-Adam

票数 3
EN

Stack Overflow用户

发布于 2008-12-27 20:19:38

在其他问题中,有许多指向GPU编程入门的指针,但如果您有一个已经使用OpenGL构建的应用程序,那么您的问题可能真的是“哪个应用程序将与OpenGL互操作”?

毕竟,您要做的就是避免使用glReadPixels()将FBO从GPU读回CPU的开销。例如,如果您无论如何都要读回数据,然后将数据复制到CUDA缓冲区,然后使用CUDA API将其传输回gpu,那么就没有太多意义了。

因此,您需要一个GPGPU包,它将直接接受您的OpenGL FBO对象作为输入,而不需要任何额外的复制。

这可能会排除除GLSL之外的所有内容。

我不能100%确定CUDA是否有任何方法可以直接操作OpenGL buffer对象,但我不认为它有那个特性。

我确信ATI的Stream SDK不能做到这一点。(尽管它将与DirectX互操作。)

我怀疑带有计算着色器的DirectX 11“技术预览版”也有这个功能。

CUDA:后续:看起来,至少是最新的版本,有一些对OpenGL互操作性的支持。如果是这样的话,这可能是你最好的选择。

票数 1
EN

Stack Overflow用户

发布于 2013-05-22 03:54:33

我最近找到了这个Modern GPU

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

https://stackoverflow.com/questions/369411

复制
相关文章

相似问题

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