NVIDIA Tesla/Quadro和GeForce GPU比较

英伟达gtx不仅可以用来玩游戏,就深度学习任务而言,gtx具备的算力并不亚于tesla专业显卡。并且,游戏卡的价格相比专业卡要便宜不少。那么二者之间的差异是什么呢?
首先,gtx的单卡计算性能和tesla差别不大。虽然英伟达大幅削减了gtx的FP16性能,使其聊胜于无。但gtx的INT8性能并未受到影响。
然而,由于互联特性的缺失,gtx在多卡计算时会有性能损失,集群组网方面更是难堪重任。

以下内容节选自Comparison of NVIDIA Tesla/Quadro and NVIDIA GeForce GPUs,完整内容可查看原文。

FP16 16位(半精度)浮点计算

英伟达Pascal架构GPU引入了对FP16操作的支持。虽然所有Pascal以及之后架构的GPU产品都支持FP16,但消费级GeForce GPU的性能要低得多。以下是GeForce和Tesla/Quadro GPU之间的半精度浮点计算性能比较:

NVIDIA GPU Model Half-precision (16-bit) Floating Point Performance
GeForce GTX Titan X Maxwell N/A
GeForce GTX 1080 Ti less than 0.177 TFLOPS
GeForce Titan Xp less than 0.190 TFLOPS
Tesla K80 N/A
Tesla P100* 18.7 ~ 21.2 TFLOPS
Quadro GP100 20.7 TFLOPS
Tesla V100* 112 ~ 125 TFLOPS

* 具体值取决于PCI-Express或SXM2 SKU

GPU显存性能

计算密集型应用程序需要高性能计算单元,但快速访问数据也非常重要。对于许多HPC应用程序来说,除非内存性能得到改善,否则计算性能的提高将无济于事。出于这个原因,Tesla GPU比GeForce GPU具有更好的实际性能:

NVIDIA GPU Model GPU Memory Bandwidth
GeForce GTX Titan X Maxwell 336 GB/s
GeForce GTX 1080 Ti 484 GB/s
GeForce Titan Xp 548 GB/s
Tesla K80 480 GB/s
Tesla P40 346 GB/s
Tesla P100 12GB 549 GB/s
Tesla P100 16GB 732 GB/s
Quadro GP100 717 GB/s
Tesla V100 16GB 900 GB/s

这种性能差距的主要原因是,GeForce GPU使用GDDR5内存,而最新的Tesla GPU使用HBM2内存。

GPU显存大小

一般来说,内存越多,系统运行速度越快。一些HPC应用程序需要足够的内存才能运行起来。Tesla GPU提供了两倍于GeForce GPU的内存:

NVIDIA GPU Model GPU Memory Quantity
GeForce GTX 1080 Ti 11GB
GeForce Titan Xp 12GB
Tesla K80 24GB
Tesla P40 24GB
Tesla P100 12GB or 16GB*
Quadro GP100 16GB*
Tesla V100 16GB*

* 请注意,Tesla/Quadro Pascal Unified Memory允许GPU共享彼此的内存来加载更大的数据集

PCI-E vs NVLink - Device-to-Host和Device-to-Device的吞吐量

程序运行中最大的潜在瓶颈之一是等待数据传输到GPU。当多个GPU并行工作时,会出现更多的瓶颈。加速数据传输可以直接提升应用程序的性能。

GeForce GPU通过PCI-Express连接,理论峰值吞吐量为16GB/s。带有NVLink的NVIDIA Tesla/Quadro GPU可以实现更快的连接。NVIDIA Pascal架构中的NVLink允许每个GPU以高达80GB/s(双向160GB/s)的速度进行通信。NVIDIA Volta中的NVLink 2.0允许每个GPU以150GB/s(300GB/s双向)进行通信。 GPU之间以及支持OpenPOWER平台上的CPU和GPU之间支持NVLink连接。只有Tesla和Quadro系列的GPU支持NVLink。

DMA引擎

GPU的直接内存访问(DMA)引擎允许在系统内存和GPU内存之间快速传输数据。由于这种传输是实际应用程序的一部分,因此其性能对于GPU加速非常重要。慢速传输会导致GPU内核空闲,直至数据到达GPU内存。同样,返回缓慢也会导致CPU等待GPU返回结果。

*GeForce产品具有1个DMA引擎,可以单向传输数据。**如果数据正在上传到GPU,则在上传完成之前无法返回由GPU计算的任何结果。同样,从GPU返回结果将阻止任何新数据上传到GPU。
* 一个GeForce GPU型号,GeForce GTX Titan X,具有双DMA引擎

Tesla GPU产品采用双DMA引擎来缓解这一瓶颈。数据可以同时传入和传出GPU。

GPU Direct RDMA

NVIDIA的GPU-Direct技术可以显着改善GPU之间的数据传输速度。很多功能都属于GPU-Direct的范畴,但是RDMA能力保证了最大的性能提升。

传统上,在集群的GPU之间发送数据需要3个内存拷贝(一次到GPU的系统内存,一次到CPU的系统内存,一次到InfiniBand驱动程序的内存)。GPU Direct RDMA消除系统内存拷贝,允许GPU通过InfiniBand直接将数据发送到远端系统。实际上,对于小的MPI消息,这将导致延迟降低67%,带宽增加430%1.

在CUDA 8.0版本中,NVIDIA推出了GPU Direct RDMA ASYNC,它允许GPU在不与CPU进行任何交互的情况下启动RDMA传输。

GeForce GPU不支持GPU-Direct RDMA。虽然MPI调用会返回成功,但传输将通过标准的内存复制路径执行。GPU Direct-to-Peer(P2P)是唯一支持GeForce显卡的GPU-Direct。这允许在单个计算机内进行快速传输,但对于跨多个服务器/计算节点运行的应用程序没有任何作用。

Tesla GPU完全支持GPU Direct RDMA和各种其他GPU Direct功能。它们是这些能力的主要目标,因此在该领域测试和使用最多。

Hyper-Q

用于MPI和CUDA流的Hyper-Q代理允许多个CPU线程或进程在单个GPU上启动工作。这对于使用MPI编写的现有并行应用程序尤为重要,因为这些代码旨在利用多个CPU核心。允许GPU接受来自系统上运行的每个MPI线程的工作,可以显着提升性能。它还可以减少将GPU加速添加到现有应用程序所需重构源代码的数量。

但是,GeForce GPU上支持的Hyper-Q的唯一形式是针对CUDA Streams的Hyper-Q。这使GeForce能够有效地接受和运行来自不同CPU核心的并行计算,但在多台计算机上运行的应用程序将无法在GPU上高效地开展工作

GPU健康监控和管理功能

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

  • NVML/nvidia-smi 用于监视和管理每个GPU的状态和功能。这使得Ganglia等许多第三方应用程序和工具能够支持GPU。Perl和Python绑定也是可用的。
  • OOB (通过IPMI进行带外监控),系统可监控GPU运行状况,调节风扇速度以适当冷却设备,并在出现问题时发出警报
  • InfoROM (持久性配置和状态数据)为系统提供有关每个GPU的附加数据
  • NVHealthmon 实用程序为集群管理员提供了一个随时可用的GPU运行状况工具
  • TCC 允许将GPU专门设置为仅显示模式或仅计算模式
  • ECC (内存错误检测和纠正)

集群工具依赖NVIDIA NVML所提供的功能。大约60%的功能在GeForce上不可用——这张表更详细地比较了Tesla和GeForce GPU中支持的NVML功能:

Feature Tesla Geforce
Product Name yes yes
Show GPU Count yes yes
PCI-Express Generation (e.g., 2.0 vs 3.0) yes
PCI-Express Link Width (e.g., x4, x8, x16) yes
Current Fan Speed yes yes
Current Temperature yes yes*
Current Performance State yes
Clock Throttle Status yes
Current GPU Usage (percentage) yes
Current Memory Usage (percentage) yes yes
GPU Boost Capability yes yes^
ECC Error Detection/Correction Support yes
List Retired Pages yes
Current Power Draw yes
Set Power Draw Limit yes
Current GPU Clock Speed yes
Current Memory Clock Speed yes
Show Available Clock Speeds yes
Show Available Memory Speeds yes
Set GPU Boost Speed (core clock and memory clock) yes
Show Current Compute Processes yes
Card Serial Number yes
InfoROM image and objects yes
Accounting Capability (resource usage per process) yes
PCI-Express IDs yes yes
NVIDIA Driver Version yes yes
NVIDIA VBIOS Version yes yes

* 系统平台没有温度读数,这意味着风扇速度无法调整。
^ 在双精度计算中,GPU Boost被禁用。此外,在某些情况下,GeForce时钟速率将自动降低。

错误检测和纠正

Titan X GPU不包括纠错或错误检测功能。如果发生错误,GPU和系统都不能提醒用户。用户可以检测错误(无论是导致应用程序崩溃、显然数据不正确还是数据错误)。这样的问题并不罕见——我们的技术人员经常在消费类游戏GPU上遇到内存错误。

英伟达Tesla GPU能够纠正单比特错误,并检测并警示双位错误。在最新的Tesla P100和Quadro GP100 GPU上,最主要的HBM2内存、寄存器文件、共享内存、L1缓存和L2缓存中都包含ECC支持。

GPU Boost

对于Geforce,显卡将根据GPU的温度自动确定时钟速率和电压。温度是合适的自变量,因为发热影响风扇速度。

而对于Tesla,GPU boost等级可由系统管理员或计算用户指定——将时钟速率设置为特定的频率。除非达到功耗阈值(TDP),可以静态地维持期望的时钟速率,而不是在各级别间浮动。这是一个重要的考虑因素,因为HPC环境中的加速器通常需要彼此同步。Tesla GPU boost的确定性允许系统管理员确定最佳时钟速率并将其锁定在所有GPU中。

对于需要额外性能的应用,最新的Tesla GPU包括同步增强组内的自动增强。启用Auto Boost功能后,每个GPU组在有余量时都会提高时钟速率。该组将保持时钟同步,以确保整个组的性能匹配。

能效

GeForce GPU旨在用于消费类游戏,并且通常没有节能考量。相比之下,Tesla GPU则是专为大规模部署而设计的,其能效非常重要。这使得Tesla GPU更适合大量部署。

操作系统支持

GeForce驱动程序不适用于Windows Server操作系统;不过,Linux驱动程序支持所有NVIDIA GPU。

保修

NVIDIA对GeForce GPU产品的保修条款明确规定,GeForce产品不适用于安装在服务器上。在服务器系统中运行GeForce GPU将使保修失效。


  1. Support for GPUs with GPUDirect RDMA in MVAPICH2 by D.K. Panda (The Ohio State University) ↩︎

你可能感兴趣的:(GPU,DeepLearning)