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等型號核心的產品。ide
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不只能檢測並糾正單比特錯誤也能夠發現並警告雙比特錯誤,這對保證計算結果的準確性來講很是重要。spa
NVIDIA對GeForce GPU產品的保修政策說明明確指出,GeForce產品並不是設計用於在服務器上安裝,在服務器中安裝和容許GeForce 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內存。
通常來講,系統的內存越多,運行速度越快。尤爲是對於某些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最終性能的瓶頸之一是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更適合用做大規模部署使用。
GPU的DMA引擎容許在系統內存和GPU內存之間的快速傳輸數據傳輸,這個傳輸性能對GPU加速相當重要,緩慢的傳輸將會致使CPU或GPU閒置並等待,形成系統性能的無謂浪費。
GeForce產品通常只有單個DMA引擎,同時只能在一個方向上傳輸數據。 若是數據正在上傳到GPU,則在上傳完成以前,沒法返回由GPU計算的任何結果。一樣,從GPU返回的結果將阻止任何須要上傳到GPU的新數據。
Tesla GPU產品採用雙DMA引擎 , 數據能夠在CPU和GPU之間同時輸入和輸出,無需等待,效率更高。
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代理容許多個CPU線程或進程在單個GPU上啓動工做。 這對於使用MPI編寫的現有並行應用尤爲重要,然而,GeForce GPU僅僅支持CUDA Streams的Hyper-Q,也就是說GeForce只能從單獨的CPU內核有效地接受並運行並行計算,但跨多臺計算機運行的應用程序將沒法有效地啓動GPU上的工做。Tesla則具有完整的Hpyer-Q支持能力,更適合多個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%的功能不可用。
全部最新的NVIDIA GPU產品都支持GPU Boost,但其實現因使用場景不一樣而異。 Geforce顯卡只能根據工做負載和GPU的溫度自動肯定時鐘速度和電壓,用戶沒辦法控制GPU Boost的運行頻率,可是Tesla GPU則能夠用戶指定的時鐘頻率運行,由於HPC環境中的加速器一般須要彼此同步。Tesla GPU還支持同步增壓組內的自動升壓 ,當啓用自動升壓功能後,每組GPU會增長時鐘速度。 該組將保持時鐘彼此同步,以確保整個組中的匹配性能。