首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否正确地认为,现代消费图形卡使用完全相同的GPU结构,用于实际图形绘制和裸计算?

我是否正确地认为,现代消费图形卡使用完全相同的GPU结构,用于实际图形绘制和裸计算?
EN

Stack Overflow用户
提问于 2013-04-26 20:09:46
回答 2查看 213关注 0票数 2

我认为现代消费图形卡(比如那些传统的nVidia和ATi模型)使用完全相同的GPU结构和操作(通过DirectX、OpenGL等)进行实际的图形绘制,这是正确的吗?光计算(通过OpenCL、数据自动化系统等)?实际上,这是一个软件(firmware+drivers)部分,它可以使所有DirectX/OpenGL功能都支持,而不以纯硬件的方式执行任何特定于图形的操作?让它成为一个图形加速卡(而不是一个纯粹的通用计算加速单元)是一个软件逻辑抽象层吗?仅仅是在硬件上运行的应用程序吗?

我真正感兴趣的是,是否有可能(不管需要多少工作和技能)使用CUDA/OpenCL编写一个完整的软件(用户空间) 3D渲染(比如3D游戏)引擎,该引擎实现所有DirectX/OpenGL功能的效率(或接近它)与卡本身(有固件和驱动程序)一样高,并且当这个引擎工作时,任何卡硬件部件都会被闲置。

我之所以提出这个问题,是因为我从经验中了解到以下事实:

  1. 硬件图形加速驱动程序过去有许多可见的bug。
  2. 软件渲染(我以前玩3D游戏的时候,它是一个选项)几乎总是更稳定(不太容易挂起和视觉制品)。
  3. 通用的CUDA/OpenCL操作似乎是相对稳定和确定的,比“硬件”图形加速工作更可靠。

因此,这似乎是一个奇怪的想法,实现3D渲染的“软件”方式,但使用GPU,而不是CPU的计算尽可能。例如,这似乎几乎可以解决Linux驱动程序的混乱问题。

EN

回答 2

Stack Overflow用户

发布于 2013-05-24 08:15:17

不,您不能使用OpenCL/Cuda实现全速OpenGL/Direct3D。

三维绘制过程中的一些关键部分,如镶嵌和栅格化,以及整个可编程图形管道( Programmable )管道等,都是硬连线的。来自AMD公司GCN白皮书第12页

三维流水线由几种类型的可编程着色器(例如顶点、外壳、域、几何图形和像素着色器)和各种操纵三角形和像素的固定功能硬件组成。

在AMD的GCN体系结构中,有一个出口单元(第8页),它是"the Compute Unit's window to the fixed function graphics hardware",您无法用上一个OpenCL标准访问它。

您很可能在NVidia GPU中发现一些类似的东西。

要更务实地回答上一个问题:您需要一个驱动程序来执行GPGPU,这意味着无论如何您都无法解决"Linux驱动程序混乱“的问题。

票数 2
EN

Stack Overflow用户

发布于 2013-04-26 20:37:51

图形卡的物理设计与通用计算单元不同。

一个通用的计算加速单元会有更少、更快的核心。例如,英特尔有一个有80个x86内核,而Nvidia的卡上有1千到两个核心。

然而,除此之外,它们基本上是一样的。同样的延迟问题,同样的吞吐量目标,因为延迟问题。

为了回答另一个问题,DirectX和OpenGL都是在软件中完成的,这样就可以从GPU的体系结构中获得巨大的好处。

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

https://stackoverflow.com/questions/16244428

复制
相关文章

相似问题

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