租界服务器跑深度学习(一)服务器租用
以恒源云为例。
本人科研小白,刚接触深度学习,自己的电脑跑费时费硬件,实验室又没有装服务器,所以选择租借服务器。
一、服务器价格对比
二、基本知识科普(主要是关于选卡,已经清楚的就可以完全跳过)
2.1 显卡公版和非公版
关于显卡的非公版和公版,NVIDIA和AMD自家显卡称之为公版,公版指的是NVIDIA或AMD在新品发布之初,原厂设计(或者授权设计)的PCB版型,包括电路、接口、用料、散热都方面都是有统一标准的,而且显卡的核心频率也都一致,并指定OEM厂商生产的显卡。
2.2 独立显卡型号命名规则知识
2.2.1 N卡的芯片型号含义:
N卡的型号主要是前缀+数字组成,目前N卡型号前缀分别为GT、GTX、RTX三种形式开头,其后面的数字型号则是越大性能越强!
GT开头定位低端入门,例如GT1030。
GTX开头定位中低端或者中端主流,例如GTX1650、GTX1660Super、GTX1660Ti。
RTX开头定位中端或者以上的型号,RTX开头说明是支持光线追踪技术,例如RTX3060、RTX3060Ti、RTX3090。
Ti结尾:加强版本。
Super结尾:Super跟Ti有点类似,你可以理解为超级版。
2.2.2、A卡的芯片型号含义:
A卡的型号主要是前缀+数字组成,目前的A卡型号前缀目前都是以RX开头,其后面的数字型号则是越高性能越强!
XT结尾:加强版本。
2.3 显示接口知识
常见的显卡显示接口有VGA、DVI、HDMI、DP,好坏排序是DP>HDMI>DVI>VGA。
具体对比显卡性能时可以看显卡天梯图,比如显卡天梯图-装机之家 (lotpc.com)
2.4 显存容量
显存就是祯缓存,主要用于显卡图形处理渲染数据临时存储,显存容量越大,缓存的数据越多图形渲染能力越强。我们在玩一款3D游戏的时候,整个地图以及各个元素在一开局就整个搬进显存里,如果再将画质调至最高,让地图上的草、树、房屋、车辆细节更多,数据量当然更加庞大,需要更大的显存支持。
当然显卡显存容量大小根本无法决定一款显卡性能高低,显存的重要性不及架构、流处理器、核心频率、显存带宽,很多小白买显卡只看几个G容量,这是选购显卡最大的误区之一,就拿RTX3060 12G和RTX3060Ti 8G来说,性能无疑是RTX3060Ti 8G更高,这也说明了显存大小并无法代表一款显卡的性能高低。如果我们将显存容量比喻成停车场,假设停车场的马路不够宽(位宽),而汽车速度也不够快(显存频率),那么停车场的吞吐量就会很小,这个停车场再大(显存)也完全属于浪费,这就好比,你将入门级的GT710搭配了8G显存,它还是GT710的入门级性能,不可能变成RTX3060Ti 。
2.5 显卡性能主要根据如下几个参数来判断:
- 显存: 显存即显卡内存,显存主要用于存放数据模型,决定了我们一次读入显卡进行运算的数据多少(
batch size
)和我们能够搭建的模型大小(网络层数、单元数),是对深度学习研究人员来说很重要的指标,简述来讲,显存越大越好。 - 架构:在显卡流处理器、核心频率等条件相同的情况下,不同款的GPU可能采用不同设计架构,不同的设计架构间的性能差距还是不小的,显卡架构性能排序为:Ampere > Turing > Volta > Pascal > Maxwell > Kepler > Fermi > Tesla
- CUDA核心数量:CUDA是NVIDIA推出的统一计算架构,NVIDIA几乎每款GPU都有CUDA核心,CUDA核心是每一个GPU始终执行一次值乘法运算,一般来说,同等计算架构下,CUDA核心数越高,计算能力会递增。
- Tensor(张量)核心数量:Tensor 核心是专为执行张量或矩阵运算而设计的专用执行单元,而这些运算正是深度学习所采用的核心计算函数,它能够大幅加速处于深度学习神经网络训练和推理运算核心的矩阵计算。Tensor Core使用的计算能力要比Cuda Core高得多,这就是为什么Tensor Core能加速处于深度学习神经网络训练和推理运算核心的矩阵计算,能够在维持超低精度损失的同时大幅加速推理吞吐效率。
- 半精度:如果对运算的精度要求不高,那么就可以尝试使用半精度浮点数进行运算。这个时候,Tensor核心就派上了用场。Tensor Core专门执行矩阵数学运算,适用于深度学习和某些类型的HPC。Tensor Core执行融合乘法加法,其中两个
4*4
FP16矩阵相乘,然后将结果添加到4*4
FP16或FP32矩阵中,最终输出新的4*4
FP16或FP32矩阵。NVIDIA将Tensor Core进行的这种运算称为混合精度数学,因为输入矩阵的精度为半精度,但乘积可以达到完全精度。Tensor Core所做的这种运算在深度学习训练和推理中很常见。 - 单精度: Float32 是在深度学习中最常用的数值类型,称为单精度浮点数,每一个单精度浮点数占用4Byte的显存。
- 双精度:双精度适合要求非常高的专业人士,例如医学图像,CAD。
具体的显卡使用需求,还要根据使用显卡处理的任务内容进行选择合适的卡,除了显卡性能外,还要考虑CPU、内存以及磁盘性能,关于GPU、CPU、内存、磁盘IO性能。
对于不同类型的神经网络,主要参考的指标是不太一样的。下面给出一种指标顺序的参考:
卷积网络和Transformer:Tensor核心数>单精度浮点性能>显存带宽>半精度浮点性能
循环神经网络:显存带宽>半精度浮点性能>Tensor核心数>单精度浮点性能
三、服务器租用(以恒源云为例)
恒源云提供的选卡资料:如何选卡 - 恒源云用户文档 (gpushare.com)
参考此文档选择用于深度学习的显卡:
NVIDIA常见的三大产品线如下:
Quadro类型: Quadro系列显卡一般用于特定行业,比如设计、建筑等,图像处理专业显卡,比如CAD、Maya等软件。
GeForce类型: 这个系列显卡官方定位是消费级,常用来打游戏。但是它在深度学习上的表现也非常不错,很多人用来做推理、训练,单张卡的性能跟深度学习专业卡Tesla系列比起来其实差不太多,但是性价比却高很多。
Tesla类型: Tesla系列显卡定位并行计算,一般用于数据中心,具体点,比如用于深度学习,做训练、推理等。Tesla系列显卡针对GPU集群做了优化,像那种4卡、8卡、甚至16卡服务器,Tesla多块显卡合起来的性能不会受很大影响,但是Geforce这种游戏卡性能损失严重,这也是Tesla主推并行计算的优势之一。
总体来说需要多卡则选Tesla类型,单卡则GeForece性价比更高。
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
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 RTX 3090Ti
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
注意!!!3060、3060Ti,3090、3090Ti、3080Ti、A5000等Ampere(安培)架构的GPU需要cuda11.x版本才能使用,请使用较高版本的框架。 如果代码需要使用 cuda9、cuda10 等版本,请使用RTX5000,V100S,V100,P100,T4,2080Ti等非Ampere(安培)架构的GPU。