cuda 究竟为 opengl 应用程序做了啥?
Posted
技术标签:
【中文标题】cuda 究竟为 opengl 应用程序做了啥?【英文标题】:what exactly cuda does for opengl applications?cuda 究竟为 opengl 应用程序做了什么? 【发布时间】:2015-06-12 20:33:18 【问题描述】:我猜想 opengl 应用程序的某些部分曾经在 CPU 上运行,现在人们可以通过 cuda 在 GPU 上运行它,并加速这些部分(opengl 应用程序或管道的一部分)。
有人可以解释一下 cuda 对 opengl 的作用吗?我的意思是哪些操作被卸载到 GPU 以供 cuda 处理?
【问题讨论】:
【参考方案1】:CUDA 是一个完全独立于 OpenGL 的 API;您可以同时使用它们,但 CUDA 不是获得 GPU 渲染加速所必需的。在 OpenGL 中,您使用在概念上类似于 CUDA 内核的着色器来实现 OpenGL 中许多任务的硬件加速。
CUDA 确实允许与 OpenGL(和 Direct3D)互操作,但这绝不是必要的;如果您都想在同一个应用程序中进行科学计算和渲染,您通常只想这样做。不过,现在有了 GL 和 D3D 中都可用的计算着色器,这变得不再那么必要了
【讨论】:
谢谢。你能不能给出更多解释“不过,现在在 GL 和 D3D 中都可以使用计算着色器” 计算着色器距离 CUDA 的表现力还很远。 @AfnanAbdullah 计算着色器允许您在 GPU 上运行任意东西,与渲染管道分开,同时仍直接与 OpenGL(或 Direct3D)集成,从而取代了 CUDA 的某些用途。 @MomotapaLimpopo 你当然是对的,但计算着色器值得一提;在某些情况下,它们可以代替 CUDA,尤其是当您已经在使用图形 API 时。此外,它们的表现力也越来越强。以上是关于cuda 究竟为 opengl 应用程序做了啥?的主要内容,如果未能解决你的问题,请参考以下文章
OpenGL Bindless Texture 函数 glMakeTextureHandleNonResident 究竟做了啥?
MissingSchemaAction.AddWithKey 究竟做了啥?