图形处理单元(GPU)是PC中仅次于CPU的重要芯片,价格和复杂性也不亚于CPU。
当然对于这样昂贵且重要的芯片,得到的用户关注也不弱于CPU,好在我们也有与CPU-Z类似的GPU规格检查工具——GPU-Z,它当然也就成为了很多媒体和消费者了解GPU及显卡信息时常用的软件。不过大家对GPU-Z中繁杂的项目真的了解吗,它究竟反映了GPU及其周边、显卡的那些信息呢?下面我们就以这款软件的信息为例,让大家更深入的了解一下GPU吧。○ 显示卡页面
● Name(名称)
当然这一栏中的规格就是GPU的具体名称了(图1),如果同名GPU有不同的规格,例如NVIDIA GeForce GTX 1060有配置6GB和3GB不同的产品,其频率等规格并不相同,那么也会在这一栏中显示(图2)。
如果希望进一步了解GPU,那么点击旁边的Lookup键,即可直接跳转至TechPowerUp的网页(图3),其中不仅包括了这款GPU、公版显卡的照片、具体信息等,还包括它与其他类似水平GPU的对比,以及一些比较典型的显卡型号及参数。
● GPU
笔者认为这一栏的名称应该改成核心编号,是厂商对显示器核心的开发代号或编号。AMD GPU的代号和其CPU一样,一般采用地名,但CPU多为大河名,而GPU则为岛屿/群岛名称,例如目前比较受关注的Radeon RX480的核心代号为“Ellesmere”(图4),即为利斯摩尔岛。
目前最流行的NVIDIA GPU,如图1,2中所示,一般采用字母加编号的开发代号,第一位“G”表示GPU,第二位则表示了GPU世代,例如目前的Pascal核心世代,即为“P”,之前的“Maxwell”核心世代为“M”,“Kapler”核心世代则为“K”,“Fermi”核心世代当然就是“F”。数字编号则是表示这一GPU的定位,一般来讲从低到高是定位从高端到低端的产品,这主要是因为GPU的发布顺序一般是从旗舰到低端,例如图1,2中的编号。
先发布旗舰型号,之后由高到低推出GPU的方式,也许和现在GPU的结构有关,现在的GPU的大量流水线可以看作是大量独立的核心,而且采用了非常灵活的集群化设计(图5),在推出低端产品时可以采用屏蔽N个核心集群的方式实现(图6)。而在早期产品中,我们怀疑一些较低端的型号有可能就是有疵瑕的核心,通过屏蔽有疵瑕的核心群组或者降低频率来实现稳定运行,所以会有先发布拥有较多核心集群的旗舰产品,后推出较少集群和较低频率的低端型号的现象。
其实目前最大的GPU供应商是英特尔,GPU-Z对其内置核芯显卡给出的核心代号实际上是其定位,与独立显卡GPU的核心代号意义不同。英特尔核芯显卡以性能和配置从低到高分为GT1、GT2、GT3、GT4等,而在各代CPU中,相同定位的核芯显卡配置是不同的,例如Haswell核心处理器集成的GT2核芯显卡带有20个EU,而Skylake核心处理器集成的GT2核芯显卡拥有24个EU。
● Revision(修订版)
这里显示的是GPU的修订版本,理论上讲,任何小的修改都会影响到这里的数据。作为非常复杂的半导体芯片,GPU设计存在一些bug是在所难免的,厂商一般会通过软硬件两方面进行弥补,硬件方面当然就是进行设计的步进,如图1,2中的芯片修订次数较少,而图4中的修订次数显然较多。当然上市芯片的修订版本数不一定就是A0,所以图4不一定说明这款芯片上市后有过大量的改动,很可能是测试过程中进行了大量修订。
● Technology(工艺)
当然这里指的就是GPU的制造工艺,在上篇中我们已经提到,目前主要的芯片代工厂工艺长期落后于英特尔,所以NVIDIA和AMD的GPU长期被限制在28nm,直到2016年的新一代GPU才终于使用14/16nm工艺,也因此使芯片的功耗得以大幅降低,同时可以获得更大的集成度。
● Die Size(核心面积)
核心面积是硅片的实际面积(图7),晶体管数量越多当然硅片核心面积就越大,而制造工艺约精细,则硅片面积就越小,这一点在上篇中已经提及。尽管最外层的芯片封装和硅片核心面积不一致,甚至不一定反应硅片的实际大小,例如AMD和英特尔的各代CPU,从外形上看,金属封盖的大小就很类似。好在近期的GPU并没有在封装上安装顶盖,我们可以直接看到最紧密的封装(图8),它与硅片结合紧密,基本可以反映出硅片的实际尺寸,例如比较NVIDIA GeForce GTX 980/1080的芯片,就可以看出采用更精细制造工艺的GTX 1080面积更小(图9)。
● Release Date(推出日期)
尽管英文写法相同,但从我们的测试看,这一栏中的数据应该不是芯片出厂日期,而是这一GPU型号的正式发布或上市日期。
● Transistors(晶体管)
此栏是芯片的晶体管数量,其中M是百万(million)的缩写,我们可以看到图1,2,4中的GPU晶体管数量都非常庞大,均达到了数亿个的量级。
● BIOS Version(BIOS版本)
此栏应该是显卡的BIOS版本,从图1,2,4可以看出,与主板的BIOS版本不同,显卡版本号与GPU世代有关,但很难直接看出其推出日期等信息。
● Device ID(设备识别码)
此栏显示的是显卡的设备识别码,很多软件其实就是通过这一代码来识别硬件设备的,它对普通消费者来说意义不大,甚至可以通过BIOS进行欺骗。
● Subvendor(次级供货商)
所谓的次级供货商就是提供显卡的厂商,与提供GPU的厂商有一定区别,不过在早期的公版旗舰卡上,我们可能会直接看到NVIDIA或AMD的“大名”,如图1显示的那样。另外一些大型集团之下的子品牌会同时显示,例如图2中的Zotec(索泰)就是PC Partner(柏能)旗下的品牌。
●ROPs/TMUs(光栅化处理单元/纹理单元)
此栏中的数字分别是GPU中ROP和TMU的数目,ROPs的全称为Raster Operations Units,中文即光栅化处理单元;TMUs的全称是 Texture Mapping Units,即纹理单元。这两个单元均位于GPU的核心集群中(图10),可将GPU处理的数据转换为用于显示的图像,光栅化处理单元将计算的顶点数据等转换为符合分辨率的点,同时删除不用显示的部分,这样才能进行输出显示,不过此时的输出图像只是一个框架,纹理单元的责任就是将纹理填充到架构中,形成可在平面显示的,3D造型的外壳或皮肤。
虽然理论上讲ROPs/TMUs的数目越多越好,但由于GPU架构的不同,各个厂商和各个世代的GPU设置有一定区别,会根据核心能力和最普遍的需求,并不存在必然的关系。
● Bus Interface(总线界面)
此栏说明的是显卡接口的标准和实际插槽的标准,前一部分表示显卡接口标准,近期显卡基本都支持PCI-E 3.0标准,采用16通道接口。作为现在最流行的PC总线,PCI-E的最新规范为版本3.0,传输率达到8GHz|8GT/s,单通道的数据传输速度接近1GB/s,我们这里提到的显卡使用16通道接口,说明其外部传输速度达到了16GB/s。
当然绝大多数PC显卡也可以安装到其他标准的PCI-E ×16插槽上,甚至只要电气结构相同,PCI-E ×8插槽也可正常使用,例如图1中的显卡就插在一个PCI-E 1.1标准的×16插槽上(@×16 1.1),而很多支持双显卡系统的主板(图11)也是采用了一个PCI-E ×16插槽和PCI-E ×8插槽,或者在使用单显卡时在单插槽中使用16通道,插上双显卡后自动为两个插槽各分配8个PCI-E通道。
在这一栏后的“?”是一个3D测试功能(图12,13),因为很多显卡有自动节能,在空闲时不会全速运行,因此检测出来的PCI-E链接速度可能较低,通过一个小的3D测试使显卡进入全速工作模式,以此来测得真实的PCI-E速度。
● Shader(渲染器)
虽然名字叫着色器,但实际上这一栏中是目前的GPU所含流处理器核心数量,这些流处理器已经远不是最初的GPU着色器,而是具有一定的通用数据处理能力。我们在上一篇中提到的异构计算,就是利用了目前GPU的这种架构。
因为流处理器是GPU的主要运算单元,所以在同架构产品中,其数量的多寡也就意味着性能的高低,如果不是架构差别太大,临近几代同厂商GPU的性能也可以这样衡量。当然由于流处理器的结构不同,AMD、NVIDIA和英特尔之间是不能通过这一数量来衡量性能高低的,例如图1中的NVIDIA GeForce GTX 1070流处理器数量比图4中的AMD Radeon RX480还要少一些,但前者性能显然全面超越后者,而英特尔核芯显卡的类似单元为EU(Execution Unit ,执行单元),单位性能要比AMD和NVIDIA的流处理器强得多,有人估算以数据吞吐能力等计算,一个EU可以相当于十多个,甚至更多独显GPU中的流处理器,所以一般产品只配置10~24个EU单元。
● DirectX Support(对DirectX支持)
DirectX的全称为Direct eXtension,也有一些更简化的称呼是DX,它是由微软公司创建的多媒体编程接口,被广泛使用于Microsoft Windows和XBOX系列平台上的游戏开发。其最新版本为DirectX 12。
对于显卡来说,对DirectX版本的支持能力也是划代的一个重要依据,不过由于最近几代GPU的架构类似,所以很多针对DirectX 11的GPU也可以支持DirectX 12,不过效率一般。在针对性设计上,各家的表现也不一样,例如最新一代GPU中,NVIDIA更偏向于针对传统应用的效率,而AMD则偏向于对DirectX 12的优化,所以在同时支持DirectX 11/12的游戏中,N卡在DirectX 11模式下帧速更高,而A卡在DirectX 12模式下帧速更高。
● Pixel Fillrate/Texture Fillrate(像素填充率/纹理着色器)
和Shader这一指标一样,所谓的Pixel Fillrate/Texture Fillrate也保持了很早以前GPU中还分为像素着色器(Pixel Shader)、纹理着色器(Texture Shader)时的称呼,但在目前,它实际指的是能够输出到屏幕的像素/纹理数量,目前这一指标已经与所谓的Shader无关了,只考虑ROPs/TMUs(光栅化处理单元/纹理单元)和运行频率,显示的数据其实分别为光栅化处理单元和纹理单元与运行频率的乘积。
● Memory Type(显存类型)
显存虽然与内存颗粒类似,但采用不同的运行模式,等效频率、带宽等远高于PC内存,且在名称方面并不是严格对应的,例如昙花一现的GDDR4和目前的主流GDDR5技术都更接近DDR3。
在显存类型后标注的是显存颗粒的厂商,从图1,2,4显然可以看出,在GDDR5颗粒(图14)领域,三星显然是个中翘楚,这三款典型显卡的GDDR5颗粒都由三星提供。
● Bus Width(总线位宽)
这里的数据指的是显卡上显存的位宽,这一数据表示显存与GPU之间交换数据时,可以一次性交换的数据量。在同代GPU中,这一指标同样反映着GPU的档次,越高端的GPU显存位宽越高,配合显存的高运行频率,可以与显存进行高速数据交换,配合GPU的高速运行。
● Memory Size(显存容量)
与PC内存类似,显存的作用就是在GPU高速运行和数据处理时作为数据暂存的空间。当然强大的GPU也就需要大容量的显存进行配合,因为高分辨率或特别复杂的图形数据也是非常占空间的。从目前的游戏实际需求来看,4K分辨率时,游戏需要的显存已经达到3.5GB以上(图15),因此中高端显卡至少需要4GB的显存才能满足要求,考虑到未来的需求,最好配置6GB甚至更高容量的显存。
● Bandwidth(带宽)
所谓的显存带宽就是理论上每秒钟GPU和显存交换的数据量,这一数据就是总线位宽和显存有效速度的乘积。注意显存位宽采用了Bit(字节)作为单位,而带宽采用Byte(字符),所以其数值还需要进行换算,即1Byte=8Bit。
● Driver Version(驱动程序版本)
在这一栏中除了驱动程序的版本,也显示了用户目前所使用的操作系统版本,当然在目前,针对的操作系统版本也确实是显示卡驱动的一个重要参数,可以说确实属于驱动程序版本的一部分。
● GPU Clock/Memory/Boost(GPU/显存/突发时钟)
GPU Clock和Memory是GPU和显存在目前设置下的默认频率而不是真正的实时运行速度,如果进行了超频,或在某些厂商的驱动程序中选择了不同频率的场景模式(图16),都会引起这3栏中数据的变化。
Boost频率是GPU在安全温度下自行超频的频率,可以应付一些突发的高端图形需求,但无法长时间持续。
● Default Clock/Memory/Boost(默认GPU/显存/突发频率时钟)
这一行中的3个数据是显卡的默认运行频率,与显卡本身的设置有关,并不一定是GPU厂商的标准设置。
● AMD CrossFire/NVIDIA SLI(AMD/NVIDIA双卡互联)
这一栏中显示的是显卡是否采用了双卡互联模式,并非是显卡是否能支持这一模式。
● Computing(处理能力)
GPU-Z提供了4种GPU可以参与的非图形计算功能,在支持的功能前方框内带有“√”,即表示支持这一功能,其中“OpenCL”全称为Open Computing Language(开放运算语言),就是我们前面提到多次的异构计算功能。“CUDA”全称为Compute Unified Device Architecture(统一计算设备架构),是NVIDIA推出的通用并行计算架构,包括软件和相应的硬件架构,让GPU能够参与解决复杂的计算而不是只能处理图形。使用C++和FORTRAN语言都能编写CUDA架构程序,相应程序在支持CUDA架构的NVIDIA GPU上可以获得很高的运行效率和性能。
“PhysX”的读音和“Physics(物理)”一样,可以看做是后者的变体写法,它是AGEIA公司开发的物理运算引擎,可以让3D场景中的物体运动、碰撞效果更自然。NVIDIA收购AGEIA公司后,PhysX引擎也就成为NVIDIA GPU支持的物理引擎。从图4的测试结果可以看到,AMD目前并不支持这一引擎,其GPU支持的是Havok物理引擎,不过这一能力并未被归入GPU-Z的检测中。
从名称就可以看出,DirectCompute是包含在DirectX中的功能,它也是一种用于GPU通用计算的应用程序接口。在图1,2,4中我们看到的DirectCompute 5.0,是集成在DirectX 11内的版本。
● 显卡选择栏
如果在电脑中存在多个显卡(在目前的电脑中非常常见),那么点击GPU-Z的最下方的显卡栏,就会出现一个下拉菜单。GPU-Z的默认显卡一般是独立显卡,我们可以通过这一功能选择处理器内置显示单元。
○ Sensors(传感器)页面
在这一页面中,我们可以看到显卡、GPU等部分集成的多个传感器的实时数据(图17),我们可以选择希望看到的传感器数据和刷新速度(图18),也可以选择希望看到的数据类型(图19)。另外我们如果点击页面下部Log to file前的选择框,就会生成一个GPU-Z Sensor Log.txt的文件,其存储目录和文件名均可选。
○ 总结
通过GPU-Z,我们可以比较全面地了解显卡的信息,为选购、比较显卡提供参考。另外比较有趣的是,GPU-Z还自带抓图功能,大概是喜欢晒显卡的用户比较多吧。但需要注意的是,GPU-Z取得的很多信息是来自显卡BIOS以及识别BIOS信息后从信息库获得的标准信息,所以如果显卡BIOS被刷入其他信息的话,就会出现显卡信息错误的情况,如果希望了解显卡准确信息,还需要使用其他软件,从多个方面对显卡进行考察。