1. 程式人生 > >NVIDIA之Tesla、GeForce和Quadro系列GPU對比

NVIDIA之Tesla、GeForce和Quadro系列GPU對比


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等型號核心的產品。

雙精度浮點(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更好的記憶體頻寬


造成這種效能差異的主要原因是GeForce GPU使用GDDR5或GDDR5x記憶體,而Tesla P100 GPU則使用效能更好的HBM2內

GPU記憶體(視訊記憶體)容量

一般來說,系統的記憶體越多,執行速度越快。尤其是對於某些HPC應用程式來說,記憶體不夠時甚至不能執行單次執行。GeForce 顯示卡最大隻能提供12GB的視訊記憶體,而Tesla P40 GPU則最大可以提供2倍的視訊記憶體——24GB,這對GPU執行深度學習運算時使用更大的框架提供了支援。


*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會增加時鐘速度。 該組將保持時鐘同步,以確保整個組中的匹配效能。

文章來自“小麥雜記”微信公眾號

相關推薦

NVIDIATeslaGeForceQuadro系列GPU對比

NVIDIA的GPU產品主要有GeForce、Tesla和Quadro三大系列,雖然從硬體角度來看它們都採用同樣的架構設計,也都支援用作通用計算(GPGPU),但因為它們分別面向的目標市場以及產品定位的不同,這三個系列的GPU在軟硬體的設計和支援上都存在許多差異。 其中Quadro的定位是專業用途

MySQL基礎系列 DDLDMLDCL的區別與理解

此文章主要介紹SQL資料庫的DDL、DML和DCL的區別與理解 一、DDL(data definition language) 資料定義語言,用於操作物件和物件的屬性 DDL用於操作物件和物件的屬性,這種物件包括資料庫本身,以及資料庫物件,像:表、檢視等等,DDL對這些物件和屬性的管理和

MapReduce系列MapperCombinerReducer

Mapper類 MapReduce的Mapper類中共有四個父類的方法:setup()、map()、run()、cleanup() setup()方法:在一個任務中,此方法只在開始執行一次,適用於對相關變數和資源的初始化操作。 map()方法:任務實現的主要過程在此方法中執行,

Redis系列(八):資料結構List雙向連結串列中阻塞版本BLPOPBRPOPLINDEXLINSERTLRANGE命令詳解

1.BRPOP、BLPOP BLPOP: BLPOP 是阻塞式列表的彈出原語。 它是命令 LPOP 的阻塞版本,這是因為當給定列表內沒有任何元素可供彈出的時候, 連線將被 BLPOP 命令阻塞。 當給定多個 key 引數時,按引數 key 的先後順序依次檢查

C/C++ 文件操作CreateFileReadFileWriteFile

amp 列表 invalid bsp 功能 空間 out 系統 file 通常使用下列函數來通過Win系統來對外圍設備進行通信處理: ------------------------------- 1. CreateFile   這個函數的功能是創建或者打開一個文件或者I/

C++知識回顧__stdcall__cdcel__fastcall三者的區別

進行 pan span number 適用於 編譯器 api num 處理 __stdcall、__cdecl和__fastcall是三種函數調用協議,函數調用協議會影響函數參數的入棧方式、棧內數據的清除方式、編譯器函數名的修飾規則等。 調用協議常用場合 __stdca

djangocookiesessionajax

length clean 投票 console 默認值 設置 什麽 save pre 1 Cookie cookie是什麽? 保存在客戶端瀏覽器上的鍵值對 {k:v} cookie依附在請求頭或響應頭中出現 發

JavabytecharString類型相互轉換

rac static rgs div body valueof () print byte[] 1 package basictype; 2 3 /** 4 * byte、char和String類型相互轉換 5 */ 6 public class C

(轉)MySQLcharvarchartext的設計

SQ 數值 abc dep 添加 pos sage character AC from: http://www.cnblogs.com/billyxp/p/3548540.html 最近有表結構設計中出現了varchar(10000)的設計引起了大家的討論,我們下面就

社會網絡分析”組成部分”小圈子聚類

直接 cli 引入 網絡 網絡圖 其他 社交網絡 個人 直觀 組成部分(Components) “組成部分“這個翻譯有點不太直觀,如果哪位朋友有更好的翻譯方式,請告知我。組成部分是一個在網絡圖中的子圖,該子圖與外界沒有聯系。比如生活在某個太平洋小島上的居民們,他們與外界可能

CSS的positionabsolutefixedrelative區別

abs 當前 splay body left position borde ati aud 首先,我們應了解position的默認值——static static 默認值,沒有定位,元素出現在正常的流中,即忽略 top, bottom, left, right 或者 z-

Python學習筆記字典keys()values() items()方法

com png inf keys 學習筆記 修改 分享圖片 clas 沒有 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線--------------------------

webpack 3hashchunkhashcontenthash三者的區別

就是 區別 生成 用法 pac put 覆蓋 一個 失效 在使用webpack 3中,文件名的hash值可以有三種hash生成方式,那具體使用哪一種呢? 1.hash 如果都使用hash的話,所有文件的hash都是一樣的,而且每次修改任何一個文件,所有文件名的hash至都將

Python學習筆記字符串操作rjust()ljust()icenter()方法對齊文本

字符串操作 int 圖片 方法 spa -c enter ice 第一個 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線--------------------------

Java容器深入淺出PriorityQueueArrayDequeLinkedList

Queue用於模擬一種FIFO(first in first out)的佇列結構。一般來說,典型的佇列結構不允許隨機訪問佇列中的元素。佇列包含的方法為: 1. 入隊 void add(Object o): 指定元素加入佇列尾部 boolean offer(Object o):同上,在有限容量佇列中,此方

.NET基礎字串集合

轉自:http://www.cnblogs.com/edisonchou/p/4805206.html   字串、集合和流 Index: (1)型別語法、記憶體管理和垃圾回收基礎 (2)面向物件的實現和異常的處理 (3)字串、集合與流 (4)委託

pythonxlwtxlrdopenpyxl

實現對excel檔案的讀寫功能 1.xlwt:對xls等excel檔案的寫入 2.xlrd:對xls等excel檔案的讀取 3.openpyxl:對xlsm、xlsx等excel檔案的讀寫 一、讀excel表(xlrd) 讀excel要用到xlrd模組,官網安裝(http://p

python3lxmlcssxpath

文章目錄 頁面解析lxml 處理非標準的html css 常用的選擇器示例 栗子 xpath 常用規則 謂語 運算子 常用函

JavaStringStringBufferStringBuilder的區別

近期看到StringBuffer,便搜尋整理了一些關於String、StringBuffer和StringBuilder的東西,僅供分享參考。 1、String String:字串常量,字串長度不可變的。Java中String是immutable(不可變)的。先看原始碼: public

js原生scrollTopoffsetHeightoffsetTop等屬性用法詳解

本文轉載自:https://www.cnblogs.com/koleyang/p/4939853.html **scrollTop、offsetHeight和offsetTop等屬性用法詳解:** 標題中的幾個相關相關屬性在網頁中有這大量的應用,尤其是在運動框架中,但是由於有些屬性相互之間的