文章來源 | 恒源云社區(qū)
原文地址 | 【新手指北】
一童芹、NVIDIA顯卡產(chǎn)品線
【主要類型】
GeForce類型:
這個(gè)系列顯卡官方定位是消費(fèi)級(jí),常用來打游戲鲤拿。但是它在深度學(xué)習(xí)上的表現(xiàn)也非常不錯(cuò)假褪,很多人用來做推理、訓(xùn)練近顷,單張卡的性能跟深度學(xué)習(xí)專業(yè)卡Tesla系列比起來其實(shí)差不太多生音,但是性價(jià)比卻高很多。
Quadro類型:
Quadro系列顯卡一般用于特定行業(yè)窒升,比如設(shè)計(jì)缀遍、建筑等,圖像處理專業(yè)顯卡饱须,比如CAD瑟由、Maya等軟件。
Tesla類型:
Tesla系列顯卡定位并行計(jì)算,一般用于數(shù)據(jù)中心歹苦,具體點(diǎn),比如用于深度學(xué)習(xí)督怜,做訓(xùn)練殴瘦、推理等。Tesla系列顯卡針對(duì)GPU集群做了優(yōu)化号杠,像那種4卡蚪腋、8卡、甚至16卡服務(wù)器姨蟋,Tesla多塊顯卡合起來的性能不會(huì)受很大影響屉凯,但是Geforce這種游戲卡性能損失嚴(yán)重,這也是Tesla主推并行計(jì)算的優(yōu)勢(shì)之一眼溶。
【常見系列】
Geforce類型-常見系列
Geforce 10系列:
GTX 1050悠砚、GTX 1050Ti、GTX 1060堂飞、GTX 1070灌旧、GTX 1070Ti、GTX 1080绰筛、GTX 1080Ti
Geforce 16系列:
GTX 1650枢泰、GTX 1650 Super、GTX 1660铝噩、GTX 1660 Super衡蚂、GTX 1660Ti
Geforce 20系列:
RTX 2060、RTX 2060 Super骏庸、RTX 2070毛甲、RTX 2070 Super、RTX 2080敞恋、RTX 2080 Super丽啡、RTX 2080Ti
Geforce 30系列:
RTX 3050、RTX 3060硬猫、RTX 3060Ti补箍、RTX 3070、RTX 3070Ti啸蜜、RTX 3080坑雅、RTX 3080Ti、RTX 3090
Quadro類型-常見系列
NVIDIA RTX Series系列:
RTX A2000衬横、RTX A4000裹粤、RTX A4500、RTX A5000蜂林、RTX A6000
Quadro RTX Series系列:
RTX 3000拇泣、RTX 4000、RTX 5000矮锈、RTX 6000霉翔、RTX 8000
Tesla類型-常見系列
A-Series系列: A10、A16苞笨、A30债朵、A40、A100
T-Series系列: T4
V-Series系列: V100
P-Series系列: P4瀑凝、P6序芦、P40、P100
K-Series系列: K8粤咪、K10谚中、K20c、K20s射窒、K20m藏杖、K20Xm、K40t脉顿、K40st蝌麸、K40s、K40m艾疟、K40c来吩、K520、K80
二蔽莱、GPU信息
三弟疆、性能選卡
【選擇GPU】
顯卡性能主要根據(jù)如下幾個(gè)參數(shù)來判斷:
顯存:
顯存即顯卡內(nèi)存,顯存主要用于存放數(shù)據(jù)模型盗冷,決定了我們一次讀入顯卡進(jìn)行運(yùn)算的數(shù)據(jù)多少(batch size)和我們能夠搭建的模型大小(網(wǎng)絡(luò)層數(shù)怠苔、單元數(shù)),是對(duì)深度學(xué)習(xí)研究人員來說很重要的指標(biāo)仪糖,簡述來講柑司,顯存越大越好。
架構(gòu):
在顯卡流處理器锅劝、核心頻率等條件相同的情況下攒驰,不同款的GPU可能采用不同設(shè)計(jì)架構(gòu),不同的設(shè)計(jì)架構(gòu)間的性能差距還是不小的故爵,顯卡架構(gòu)性能排序?yàn)椋篈mpere > Turing > Volta > Pascal > Maxwell > Kepler > Fermi > Tesla
CUDA核心數(shù)量:
CUDA是NVIDIA推出的統(tǒng)一計(jì)算架構(gòu)玻粪,NVIDIA幾乎每款GPU都有CUDA核心,CUDA核心是每一個(gè)GPU始終執(zhí)行一次值乘法運(yùn)算,一般來說劲室,同等計(jì)算架構(gòu)下伦仍,CUDA核心數(shù)越高,計(jì)算能力會(huì)遞增痹籍。
Tensor(張量)核心數(shù)量:
Tensor 核心是專為執(zhí)行張量或矩陣運(yùn)算而設(shè)計(jì)的專用執(zhí)行單元呢铆,而這些運(yùn)算正是深度學(xué)習(xí)所采用的核心計(jì)算函數(shù),它能夠大幅加速處于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)訓(xùn)練和推理運(yùn)算核心的矩陣計(jì)算蹲缠。Tensor Core使用的計(jì)算能力要比Cuda Core高得多,這就是為什么Tensor Core能加速處于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)訓(xùn)練和推理運(yùn)算核心的矩陣計(jì)算悠垛,能夠在維持超低精度損失的同時(shí)大幅加速推理吞吐效率线定。
半精度:
如果對(duì)運(yùn)算的精度要求不高,那么就可以嘗試使用半精度浮點(diǎn)數(shù)進(jìn)行運(yùn)算确买。這個(gè)時(shí)候斤讥,Tensor核心就派上了用場(chǎng)。Tensor Core專門執(zhí)行矩陣數(shù)學(xué)運(yùn)算湾趾,適用于深度學(xué)習(xí)和某些類型的HPC芭商。Tensor Core執(zhí)行融合乘法加法,其中兩個(gè)44 FP16矩陣相乘搀缠,然后將結(jié)果添加到44 FP16或FP32矩陣中铛楣,最終輸出新的4*4 FP16或FP32矩陣。NVIDIA將Tensor Core進(jìn)行的這種運(yùn)算稱為混合精度數(shù)學(xué)艺普,因?yàn)檩斎刖仃嚨木葹榘刖若ぶ荩朔e可以達(dá)到完全精度。Tensor Core所做的這種運(yùn)算在深度學(xué)習(xí)訓(xùn)練和推理中很常見歧譬。
單精度:
Float32 是在深度學(xué)習(xí)中最常用的數(shù)值類型岸浑,稱為單精度浮點(diǎn)數(shù),每一個(gè)單精度浮點(diǎn)數(shù)占用4Byte的顯存瑰步。
雙精度:
雙精度適合要求非常高的專業(yè)人士矢洲,例如醫(yī)學(xué)圖像,CAD缩焦。
具體的顯卡使用需求读虏,還要根據(jù)使用顯卡處理的任務(wù)內(nèi)容進(jìn)行選擇合適的卡,除了顯卡性能外舌界,還要考慮CPU掘譬、內(nèi)存以及磁盤性能,關(guān)于GPU呻拌、CPU葱轩、內(nèi)存、磁盤IO性能。
對(duì)于不同類型的神經(jīng)網(wǎng)絡(luò)靴拱,主要參考的指標(biāo)是不太一樣的垃喊。下面給出一種指標(biāo)順序的參考:
卷積網(wǎng)絡(luò)和Transformer:Tensor核心數(shù)>單精度浮點(diǎn)性能>顯存帶寬>半精度浮點(diǎn)性能
循環(huán)神經(jīng)網(wǎng)絡(luò):顯存帶寬>半精度浮點(diǎn)性能>Tensor核心數(shù)>單精度浮點(diǎn)性能
【選擇內(nèi)存】
內(nèi)存應(yīng)當(dāng)選擇采用時(shí)序頻率高以及容量大的內(nèi)存,雖然機(jī)器學(xué)習(xí)的性能和內(nèi)存大小無關(guān)袜炕,但是為了避免GPU執(zhí)行代碼在執(zhí)行時(shí)被交換到磁盤本谜,需要配置足夠的RAM,也就是GPU顯存對(duì)等大小內(nèi)存偎窘。
例如使用24G內(nèi)存的Titan RTX乌助,至少需要配置24G內(nèi)存,不過陌知,如果使用更多GPU并不需要更多內(nèi)存他托。如果內(nèi)存大小已經(jīng)匹配上GPU卡的顯存大小,仍然可能在處理極大的數(shù)據(jù)集出現(xiàn)內(nèi)存不足的情況仆葡,這個(gè)時(shí)候應(yīng)該升配GPU來獲得比當(dāng) 前雙倍的內(nèi)存或者更換內(nèi)存更大實(shí)例赏参。
因?yàn)閮?nèi)存在充足的情況下不會(huì)影響性能,如果內(nèi)存使用超載則會(huì)導(dǎo)致進(jìn)程被Killd或者程序運(yùn)行緩慢情況沿盅。
【選擇CPU】
在load數(shù)據(jù)過程中把篓,就需要用到大量的CPU和內(nèi)存,如果CPU主頻較低或者CPU核心較少的情況下腰涧,會(huì)限制數(shù)據(jù)的讀取速度韧掩,從而拉低整體訓(xùn)練速度,成為訓(xùn)練中的瓶頸南窗。
建議選擇核心較多且主頻較高的的機(jī)器揍很,每臺(tái)機(jī)器中所分配的CPU核心數(shù)量可以通過創(chuàng)建頁面查看,也可以通過CPU型號(hào)去搜索該CPU的主頻和睿頻的大小万伤。
CPU的核心數(shù)量也關(guān)系到num_workers參數(shù)設(shè)置的數(shù)值窒悔,num_worker設(shè)置得大,好處是尋batch速度快敌买,因?yàn)橄乱惠喌腷atch很可能在上一輪/上上一輪…迭代時(shí)已經(jīng)加載好了简珠。壞處是內(nèi)存開銷大,也加重了CPU負(fù)擔(dān)(worker加載數(shù)據(jù)到RAM的進(jìn)程是CPU進(jìn)行復(fù)制)虹钮。num_workers的經(jīng)驗(yàn)設(shè)置值是 <= 服務(wù)器的CPU核心數(shù)聋庵。
【選擇磁盤】
在進(jìn)行訓(xùn)練或者推理的過程中需要不斷的與磁盤進(jìn)行交互,如果磁盤IO性能較差芙粱,則同樣會(huì)成為整個(gè)訓(xùn)練速度的瓶頸祭玉;恒源云一直推薦用戶使用 /hy-tmp目錄進(jìn)行數(shù)據(jù)集存儲(chǔ)和訓(xùn)練,因?yàn)樵撃夸洖闄C(jī)器本地磁盤春畔,訓(xùn)練速度最快脱货,IO效率最高岛都。
平臺(tái)的所有機(jī)器中,目前大多數(shù)機(jī)器都采用SSD高效磁盤振峻,比傳統(tǒng)機(jī)械磁盤速度要高幾倍臼疫,還有速度更快的NVME磁盤,在進(jìn)行機(jī)器選擇的時(shí)可根據(jù)需要選擇磁盤IO較好的磁盤扣孟。
平臺(tái)中各種類型磁盤讀寫效率如下:
以下內(nèi)容均測(cè)試為隨機(jī)讀/寫性能烫堤,這也是磁盤在日常的使用場(chǎng)景,磁盤廠商所描述的3000MB+凤价、5000MB+這種磁盤讀寫效率均為順序讀寫鸽斟,并不符合我們?nèi)粘J褂脠?chǎng)景。
NVME類型磁盤: 每秒隨機(jī)寫 >= 1700MB 每秒隨機(jī)讀 >= 2400MB
SSD類型磁盤: 每秒隨機(jī)寫 >= 460MB 每秒隨機(jī)讀 >= 500MB
HDD類型磁盤: 每秒隨機(jī)寫 ~= 200MB 每秒隨機(jī)讀 ~= 200MB
四利诺、價(jià)格選卡
可通過云市場(chǎng)中的活動(dòng)專區(qū)進(jìn)行購卡湾盗,活動(dòng)專區(qū)為當(dāng)前正在進(jìn)行折扣的機(jī)器,與其它同型號(hào)GPU并無差異立轧。
五葛躏、穩(wěn)定性選卡
對(duì)于穩(wěn)定性要求較高的用戶可在云市場(chǎng)中的高可用專區(qū)進(jìn)行購卡。