我是否认为现代消费类显卡(比如那些传统的 nVidia 和 ATi 型号)使用完全相同的 GPU 结构和操作进行实际图形渲染(通过 DirectX、OpenGL 等)和裸计算(通过 OpenCL、CUDA 等)。 )? 这实际上是所有 DirectX/OpenGL 功能都支持的软件(固件+驱动程序)部分,而无需以纯硬件方式执行任何特定于图形的操作吗?所有这一切都使它成为图形加速卡(而不是纯粹的通用计算加速单元)软件逻辑抽象层 - 仅仅是在硬件上运行的应用程序吗?
我真正感兴趣的是是否有可能(无论需要多少工作和技术)使用 CUDA 编写一个完整的软件(用户空间)3D 渲染(比如 3D 游戏)引擎/ OpenCL 将像卡本身(及其固件和驱动程序)一样高效(或接近)实现所有 DirectX/OpenGL 功能,并且在该引擎工作时是否有任何卡硬件部件将被闲置。
导致我提出这个问题的原因包括我从经验中了解到的以下事实:
硬件图形加速驱动程序曾经有许多可见的错误。
软件渲染(我过去常常玩 3D 游戏,因为它是一个选项)几乎总是更稳定(不太容易出现挂起和视觉伪影)。
通用 CUDA/OpenCL 操作似乎相对稳定且具有确定性,比“硬件”图形加速更可靠。
因此,以“软件”方式实现 3D 渲染但尽可能使用 GPU 而不是 CPU 进行计算似乎是一个奇怪的想法。例如,这似乎几乎可以解决 Linux 驱动程序的混乱。