NVIDIA的GPU产品主要有GeForce、Tesla和Quadro三大系列,虽然从硬件角度来看它们都采用同样的架构设计,也都支持用作通用计算(GPGPU),但因为它们分别面向的目标市场以及产品定位的不同,这三个系列的GPU在软硬件的设计和支持上都存在许多差异。其中Quadro的定位是专业用途显卡而Tesla的定位是专业的GPGPU,单价相对较高,也都很少会被用作其他用途。但面向消费者的GeForce显卡却因为出货量大,价格较低的缘故经常被当作另外两个专业产品的替代品来使用。 本文主要探讨Tesla和GeForce系列显卡在各方面的差异。



生产厂商


Tesla系列产品全部由NVIDIA原厂设计和生产,产品品质和服务都更有保障。GeForce显卡则主要由第三方厂商生产,而且还区分为采用原厂设计的公版型号和厂商自行设计的非公版型号,其产品的稳定性可能也因不同厂商的设计和工艺水平存在差异。


芯片及启用核心数量的差异


虽然同一代的GPU产品都采用相同的核心架构,但不同型号的GPU采用的是不同等级的GPU核心,比如作为Tesla系列旗舰的P100采用的是GP100核心,而P40和P4则分别采用的是GP102和GP104核心,在GeForce系列产品里,则还有采用更低的GP106/107/108等型号核心的产品。


GPU架构 核心芯片 GPU型号 CUDA(SP)核心数量
Pascal GP100 Tesla P100 3584
GP102 Tesla P40 3840
Titan XP 3840
Titan X Pascal 3584
GTX1080Ti 3584
GP104 Tesla P4 2560
GTX1080 2560
GTX1070 1920
GP106 GTX1060Ti 1280
GTX1060 1152
GP107 GTX1050Ti 768
GTX1050 640
GP108 GTX1030 384



双精度浮点(FP64)计算性能的差异

在采用Pascal架构的GPU核心里,只有GP100采用了单精度计算单元和双精度计算单元为2:1的比例设计,其他核心采用的都是32:1的设计,这也就造成采用GP100核心的GPU比如Tesla P100和在双精度计算能力方面远远超过其他型号。

ECC内存的错误检测和纠正 

在运行3D游戏的GeForce显卡上,即使出现一些内存错误通常也不会造成什么严重的问题,对于个人用户来说,显示的画面偶尔出现些许的错误完全可以容忍甚至会被忽视。但对于计算领域来说,就非常依赖于GPU返回数据的准确性,即使内存出现单比特错误也可能导致最终计算结果的极大误差。 

GeForce系列显卡不具备错误检测和纠正的功能 但Tesla系列GPU因为GPU核心内部的寄存器、L1/L2缓存和显存都支持ECC校验功能,所以Tesla不仅能检测并纠正单比特错误也可以发现并警告双比特错误,这对保证计算结果的准确性来说非常重要

保修政策

NVIDIA对GeForce GPU产品的保修政策说明明确指出,GeForce产品并非设计用于在服务器上安装,在服务器中安装和允许GeForce GPU会使保修失效

GPU内存性能

计算密集型应用程序不仅需要GPU提供高性能计算单元,也需要GPU提供快速访问数据的能力,否则再好的GPU核心也将成为巧妇难为无米之炊。 对于许多HPC应用程序,GPU内存性能的差异对最终结果的影响甚至比计算能力更明显,Tesla GPU可以提供比GeForce GPU更好的内存带宽

型号 GPU内存带宽
GTX Titan X Pascal 480GB/s
GTX1080 Ti 484GB/s
Tesla P40 346GB/s
Tesla P100 12GB 549GB/s
Tesla P100 16GB 743GB/s

造成这种性能差异的主要原因是GeForce GPU使用GDDR5或GDDR5x内存,而Tesla P100 GPU则使用性能更好的HBM2内

GPU内存(显存)容量

一般来说,系统的内存越多,运行速度越快。尤其是对于某些HPC应用程序来说,内存不够时甚至不能执行单次运行。GeForce 显卡最大只能提供12GB的显存,而Tesla P40 GPU则最大可以提供2倍的显存——24GB,这对GPU执行深度学习运算时使用更大的框架提供了支持。

型号 GPU内存容量
GTX Titan X Pascal 12GB
GTX1080 Ti 11GB
Tesla P40 24GB
Tesla P100 12GB 12GB
Tesla P100 16GB 16GB


*Pascal核心的Tesla的统一内存技术还允许GPU共享彼此的内存以加载更大的数据集

GPU的接口带宽差异:PCI-E与NVLink - 设备到主机和设备到设备的吞吐量

影响GPU最终性能的瓶颈之一是GPU总是在等待数据传输,尤其是当多个GPU并行工作时,它们就需要更大的数据传输带宽。GeForce GPU通过PCI-Express连接,理论峰值吞吐量为16GB/s,而NVLink则允许每个GPU以高达5倍的性能也就是80GB/s进行通信, 只有Tesla和Quadro系列GPU才支持NVLink

应用软件支持

虽然一些软件程序能够在支持CUDA的任何GPU上运行,但某些软件程序可以针对专业GPU系列进行设计和优化。 大多数专业软件包仅正式支持Tesla和Quadro GPU,使用GeForce GPU也许是可能的,但软件供应商不会提供支持。

操作系统支持

GeForce的驱动仅在个人操作系统也就是Windows 7,Windows 8和Windows 10中受支持,使用Windows Server操作系统应该考虑使用NVIDIA的Tesla和Quadro GPU产品。

Linux驱动程序则支持所有型号的NVIDIA GPU。

产品生命周期

由于消费者市场的特点,GeForce产品的生命周期相对较短(通常在产品发布和生产终止之间通常不超过一年)。 需要更长产品寿命的项目(如购买后3年以上可能需要更换部件的产品)应使用专业GPU。

电力效率

GeForce GPU旨在用于消费者游戏使用,通常不会设计节能特性。 相比之下,Tesla GPU专为数据中心而设计,电源效率很重要,这使得Tesla GPU更适合用作大规模部署使用。

DMA引擎

GPU的DMA引擎允许在系统内存和GPU内存之间的快速传输数据传输,这个传输性能对GPU加速至关重要,缓慢的传输将会导致CPU或GPU闲置并等待,造成系统性能的无谓浪费。

GeForce产品一般只有单个DMA引擎,同时只能在一个方向上传输数据。 如果数据正在上传到GPU,则在上传完成之前,无法返回由GPU计算的任何结果。同样,从GPU返回的结果将阻止任何需要上传到GPU的新数据。 

Tesla GPU产品采用双DMA引擎 , 数据可以在CPU和GPU之间同时输入和输出,无需等待,效率更高。

GPU Direct RDMA

NVIDIA的GPU-Direct技术可大大提高GPU之间的数据传输速度,RDMA功能则可以对多台机器之间的数据传输提供最大的性能提升。

传统上,在集群的GPU之间发送数据需要3个内存副本(一次到GPU的系统内存,一次到CPU的系统内存,一次到InfiniBand驱动程序的内存)。GPU Direct RDMA去除了拷贝到系统内存,允许GPU通过InfiniBand直接发送数据到远程系统,新版本的CUDA甚至允许GPU不与GPU进行任何交互的情况下启动RDMA传输,这可以极大的增加GPU之间数据传输的实际性能

GeForce GPU只能支持单台机器内部的P2P GPU Direct,不支持跨主机的GPU-Direct RDMA 。Tesla GPU则完全支持GPU Direct RDMA和各种其他GPU Direct功能 ,这对GPU机器的集群部署非常有帮助

Hyper-Q的支持

Hyper-Q代理允许多个CPU线程或进程在单个GPU上启动工作。 这对于使用MPI编写的现有并行应用尤其重要,然而,GeForce GPU仅仅支持CUDA Streams的Hyper-Q,也就是说GeForce只能从单独的CPU内核有效地接受并运行并行计算,但跨多台计算机运行的应用程序将无法有效地启动GPU上的工作。Tesla则具备完整的Hpyer-Q支持能力,更适合多个GPU集群的并行计算

GPU健康监测和管理能力

许多健康监测和GPU管理功能(对于维护多个GPU系统至关重要)仅在专业的Tesla GPU上得到支持 GeForce GPU不支持的健康检测功能包括:

  • NVML / nvidia-smi用于监控和管理每个GPU的状态和功能。 这使得GPU支持来自许多第三方应用程序和工具,如Ganglia。 Perl和Python绑定也可用。

  • OOB (通过IPMI进行带外监视)允许系统监视GPU的健康状况,调整风扇速度以适当地冷却设备,并在出现问题时发送警报

  • InfoROM (持久配置和状态数据)为系统提供有关每个GPU的附加数据

  • NVHealthmon实用程序为集群管理员提供即时使用的GPU健康状态工具

  • TCC允许将GPU专门设置为仅显示或仅计算模式

  • ECC (存储器错误检测和校正)

集群工具依靠NVIDIA NVML提供的功能,GeForce中大约有60%的功能不可用。 

GPU Boost

所有最新的NVIDIA GPU产品都支持GPU Boost,但其实现因使用场景不同而异。 Geforce显卡只能根据工作负载和GPU的温度自动确定时钟速度和电压,用户没办法控制GPU Boost的运行频率,但是Tesla GPU则可以用户指定的时钟频率运行,因为HPC环境中的加速器通常需要彼此同步。Tesla GPU还支持同步增压组内的自动升压 ,当启用自动升压功能后,每组GPU会增加时钟速度。 该组将保持时钟彼此同步,以确保整个组中的匹配性能。