cuda 对于 opengl 应用程序到底做了什么?

问题描述 投票:0回答:2

我猜opengl应用程序的某些部分过去是在CPU上运行的,现在通过cuda人们可以在GPU上运行它,并加速这些部分(opengl应用程序或管道的一部分)。

有人可以解释一下 cuda 对 opengl 到底做了什么吗?我的意思到底是哪些操作被卸载到 GPU 以便由 cuda 处理?

opengl cuda
2个回答
3
投票

CUDA 是一个与 OpenGL 完全独立的 API;您可以同时使用它们,但 CUDA 并不是获得 GPU 渲染加速所必需的。在 OpenGL 中,您使用着色器(其概念上与 CUDA 内核有些相似)来实现 OpenGL 中许多任务的硬件加速。

CUDA 确实允许与 OpenGL(和 Direct3D)进行互操作,但这绝不是必要的;通常,只有当您都想在同一个应用程序中进行科学计算和渲染时,您才需要这样做。不过,现在 GL 和 D3D 中都提供了计算着色器,这变得更加没有必要了


0
投票

CUDA 和 OpenGL 是独立的事物,根据用例,它们可能会或可能不会相互作用。

以下是一些主要差异的非常简短的列表:

CUDA

  • Nvidia 的财产
  • 并行计算平台,允许在 GPU 上执行任意代码
  • 编程模型/语言
  • API
  • 并行计算
  • 需要 Nvidia CUDA 兼容设备

OpenGL

  • 开源,由非营利组织 Khronos Group 管理
  • API
  • 渲染
  • 并行计算(通过新引入的计算着色器,允许在 GPU 上执行任意代码)
  • OpenGL 代码可以在 GPU 和 CPU 上运行(软件渲染)

如前所述,两者可以相互作用。这是通过 OpenGL 互操作性 API 完成的(还有一个用于 Direct3D 的 API)。 CUDA 能够访问可以修改的 OpenGL 纹理和缓冲区,从而允许两者相互协作(例如,可视化使用 CUDA 计算的内容)。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.