驱动程序对opengl的支持,很多网上的说法是完整性。这个自己没有做过opengl的开发,更不是显卡从业人员。在没看到可信来源的文章论证和说明之前,我个人保留意见。但很明显并且可验证的是几个常见的基于opengl的cad软件的性能差距[1]:从对比数据可以看出,同样基于gp104芯片,2048个cuda单元的geforce 1070(移动版)和quadro p5000,在specviewperf测试中的solidwords、creo、catia子项中,quadro性能提升314%、269%、208%,在西门子nx项目中,更是达到了2253%的夸张差距。作为对比,使用direct3d的maya子项目中,平均得分p5000的性能提升只有126%,如果看最高得分的话,只有79%——还不如geforce。
造成这个性能差距的原因,按照我看到的一些文章的解释,很多cad软件使用opengl里面的固定函数管线(fixed function pipeline)接口,这种接口主要用于早期顶点单元/像素单元是分离的显卡。显卡厂商提出统一渲染架构之后,opengl 从版本3.0开始废弃相关api,归类到legacy opengl里面[2],但cad软件大部分还在使用相关接口,而geforce不再对legacy opengl提供支持。这个说法和其它回答里面说的geforce对opengl支持不完整类似,但我看到的几篇文章都没有给出可信来源证明,说出来作为一个参考吧。除了这两个明显的差异以外,quadro侧重于稳定性和正确性,geforce则侧重于性能。稳定性方面,大体就是quadro的工作频率更低,原厂质量,采用ecc显存避免可能出现的显存数据错误。驱动方面,各大cad软件供应商都有认证驱动,也就是该版本驱动是经过严格而且全面测试的。说回来,稳定性是个很虚的东西,这些措施并不能保证100%不出问题,没有这些措施的geforce也不是经常出问题,只能说是概率大小不同而已。
正确性方面,因为gpu是并行处理,但实际情况并非所有运算都可以完全并行,总会有一些线程的计算会对其它线程的结果造成影响,但既然是并行处理,很难保证受影响的线程就一定先完成运算。举例来说,一个场景有一朵花,上面有一只蜜蜂。我们看到的应该是蜜蜂遮挡住后面的花,但如果渲染的时候渲染蜜蜂的线程先完成了工作,花的渲染是后完成的,就有可能在画面上看到蜜蜂躲在花的后面。quadro的驱动对类似这样的情况检查非常严格,会保证不出现这样的情况。而geforce为了游戏性能,会有很小概率的情况忽略掉这样的错误。和稳定性一样,正确性也是个出现概率大小的问题。graphics card comparison - head 2 head,需要说明的是notebookcheck单个配件的成绩由多个使用该配件的笔记本型号测试成绩平均得出,不同笔记本使用不同的cpu,散热能力不同可能导致某个项目成绩出现比较大的性能差异。可以点开显卡型号查看具体型号得分。区别在于显卡支持的驱动显示函数不同。
游戏卡是以directx标准进行渲染显示的。而专业卡则是支持并优化以opengl标准进行渲染显示的驱动。游戏卡也支持opengl标准,但是没有优化同时据说还有缺失某些函数支持的,也就是不完整的。
主要差别取决于你使用的软件界面的实时显示方式。像一些专业3d工程方向的制作软件里,是支持opengl模式进行实时渲染显示的。所以专业卡在这些软件里模型显示是可以顺畅的浏览和显示的。而游戏卡对这个显示标准没有优化和支持,在工程方向的3d软件里使用的时候。模型面数一旦比较多就会出现顿挫和显示精准度的问题(当然,非工程方向的cg制作软件早在几年前就已经开始优化支持游戏卡了,autodesk旗下的maya和3ds max都支持dx驱动进行界面实时显示,所以艺术cg方向的软件里专业卡的优势驱动优势已经没有了,补充:c4d是否有优化支持游戏卡还不是很清楚,因为c4d是以opengl方式显示的。而且c4d软件显示上,用gtx980游戏卡当模型面数达到100万就会很卡了。)。在以octane render这种gpu渲染器出现之前,专业卡的作用也就是3d软件操作界面里显示优化的优势而已,其他没有什么特别之处了。
除了驱动显示方式的差异外,还有一个最明显的差别是 专业显卡的显存一般会比同等级同核心架构的游戏卡要大一些,特别是高端显卡里。当游戏卡还在为自己是11gb显存而感到有优越感的时候,专业卡已经在16gb或者24gb或者更高的32gb显存的段位里进行使用了。
在以2010年左右octane render为代表的这种gpu渲染器出现之后。
大容量的显存对于3d渲染制作是有很大帮助的,更容易制作复杂场景,特别是显示gpu渲染的时候,数据会在显存里读取。显存容量低,对于渲染速度就会有影响,有的时候会特别卡,有的时候会出现渲染失败或错误的提示。当然,游戏卡的优势是主频率高,所以在显存和架构核心同等水平的时候,游戏卡进行gpu渲染的时候,速度会比专业卡快。经过对比,游戏卡一般比同核心架构级别的专业卡的3dmark跑分高20-25%左右。但是专业卡有显存容量优势和稳定性优势(废话,频率低当然稳定了。)
(补充一点,gpu渲染看的是单精度浮点计算,所以专业卡的双精度浮点计算优势没有什么用)
所以说,看你用专业显卡做干什么了。如果是工程应用3d软件,例如
solidworks,catia 这类工程应用方向的软件 那么你使用专业显卡是有意义的。
如果你是用gpu渲染的话,专业显卡只在高端版本有一定的显存容量和ecc纠错优势,但这个优势和价格相比,不是那么高,除非你特别重视时间成本(因为有的顶级专业卡1-1.5年后的性能就会被新一代的顶级游戏卡超过了),否则没必要上高端专业显卡来进行gpu计算。当然,专业卡的显存优势可制作更复杂场景的优势是游戏卡暂时无法超越的。只能靠优化场景的技术来实现。
估计今年发布的新一代12纳米工艺的1180或所谓2080游戏卡显存达到16gb后,应该是满足大多数的gpu渲染需求了(就算单精度浮点计算能力和1080ti差不多,依靠显存gddr6技术的带宽优势和容量优势,渲染速度和渲染跑分也会高不少。),只要不是电影级的超大场景就没太多问题。也许明年7nm工艺的 新一代的显卡会达到22或24gb?看老黄的刀法了。视频编码。
geforce系列的nvenc最大只允许 2 个 session 同时运行,而 quadro、tesla 则没有限制。
以 pascal 架构为例,单个 nvenc 单元的性能可以跑到 600fps,用来压片的话可以 1 秒压 600 帧,1 小时的视频 3 分钟就能压完,速度比软编快很多。但是如果是用于实时编码,比如直播类应用,一般帧率都是 30fps,但是可能需要同时编多路流,如果是 geforce 系列,不管是 1030 还是 1080ti,最多只能开两路同时编码,也就是最多利用 60fps 的性能,剩下的都浪费了。但是 quadro、tesla 系列就没有这个限制,最大性能只取决于 gpu 和 gddr 的频率。
quadro和geforce最明显的区别 是驱动程序 对opengl的支持和显存大小 —— 除了价格这个最明显的因素以外。
显存大小从显卡参数就能看出来,这个不详细说了。带来的影响,其实和内存对于cpu一样的:多了没用,少了卡成狗。然而多少算是够用呢?geforce面对的应用主要是游戏,在某个时期大部分的游戏使用的也就是几个特定的游戏引擎,面对流行显示分辨率,常用的贴图尺寸以及模型复杂度相近的情况下,只要能满足这几个游戏引擎的需要就可以了。
而quadro面对的专业应用则不然,也许只是一个几十万多边形的一般复杂度的零件,也许是上亿多边形组成的精密零件模型,例如航空发动机模型、汽车车身模型等,复杂度往往由现实需要决定,永远都存在显存不够的场景——当然显卡厂商也不可能无限制的提供显存容量,总要顾及成本问题,而且gpu本身的处理能力也是有限的。另外需要提一下的是gpu运算越来越普遍的今天,很多计算应用对显存的渴求也是随着计算内容的不同呈现很大的差异化,有相当一部分应用在处理一些特定运算的时候,当数据量少的时候,同核心的quadro比geforce性能还差一点(quadro的频率通常比geforce低),但数据量超过某个阈值之后,quadro的性能会比geforce有明显提高。文章出自:西部游星