恒源云 (GpuShare)_ 租卡怎么选?看这一篇就够了!
一、NVIDIA 显卡产品线
【主要类型】
GeForce 类型:
这个系列显卡官方定位是消费级,常用来打游戏。但是它在深度学习上的表现也非常不错,很多人用来做推理、训练,单张卡的性能跟深度学习专业卡 Tesla 系列比起来其实差不太多,但是性价比却高很多。
Quadro 类型:
Quadro 系列显卡一般用于特定行业,比如设计、建筑等,图像处理专业显卡,比如 CAD、Maya 等软件。
Tesla 类型:
Tesla 系列显卡定位并行计算,一般用于数据中心,具体点,比如用于深度学习,做训练、推理等。Tesla 系列显卡针对 GPU 集群做了优化,像那种 4 卡、8 卡、甚至 16 卡服务器,Tesla 多块显卡合起来的性能不会受很大影响,但是 Geforce 这种游戏卡性能损失严重,这也是 Tesla 主推并行计算的优势之一。
【常见系列】
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】
显卡性能主要根据如下几个参数来判断:
显存:
显存即显卡内存,显存主要用于存放数据模型,决定了我们一次读入显卡进行运算的数据多少(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 执行融合乘法加法,其中两个 44 FP16 矩阵相乘,然后将结果添加到 44 FP16 或 FP32 矩阵中,最终输出新的 4*4 FP16 或 FP32 矩阵。NVIDIA 将 Tensor Core 进行的这种运算称为混合精度数学,因为输入矩阵的精度为半精度,但乘积可以达到完全精度。Tensor Core 所做的这种运算在深度学习训练和推理中很常见。
单精度:
Float32 是在深度学习中最常用的数值类型,称为单精度浮点数,每一个单精度浮点数占用 4Byte 的显存。
双精度:
双精度适合要求非常高的专业人士,例如医学图像,CAD。
具体的显卡使用需求,还要根据使用显卡处理的任务内容进行选择合适的卡,除了显卡性能外,还要考虑 CPU、内存以及磁盘性能,关于 GPU、CPU、内存、磁盘 IO 性能。
对于不同类型的神经网络,主要参考的指标是不太一样的。下面给出一种指标顺序的参考:
卷积网络和 Transformer:Tensor 核心数>单精度浮点性能>显存带宽>半精度浮点性能
循环神经网络:显存带宽>半精度浮点性能>Tensor 核心数>单精度浮点性能
【选择内存】
内存应当选择采用时序频率高以及容量大的内存,虽然机器学习的性能和内存大小无关,但是为了避免 GPU 执行代码在执行时被交换到磁盘,需要配置足够的 RAM,也就是 GPU 显存对等大小内存。
例如使用 24G 内存的 Titan RTX,至少需要配置 24G 内存,不过,如果使用更多 GPU 并不需要更多内存。如果内存大小已经匹配上 GPU 卡的显存大小,仍然可能在处理极大的数据集出现内存不足的情况,这个时候应该升配 GPU 来获得比当 前双倍的内存或者更换内存更大实例。
因为内存在充足的情况下不会影响性能,如果内存使用超载则会导致进程被 Killd 或者程序运行缓慢情况。
【选择 CPU】
在 load 数据过程中,就需要用到大量的 CPU 和内存,如果 CPU 主频较低或者 CPU 核心较少的情况下,会限制数据的读取速度,从而拉低整体训练速度,成为训练中的瓶颈。
建议选择核心较多且主频较高的的机器,每台机器中所分配的 CPU 核心数量可以通过创建页面查看,也可以通过 CPU 型号去搜索该 CPU 的主频和睿频的大小。
CPU 的核心数量也关系到 num_workers 参数设置的数值,num_worker 设置得大,好处是寻 batch 速度快,因为下一轮迭代的 batch 很可能在上一轮/上上一轮…迭代时已经加载好了。坏处是内存开销大,也加重了 CPU 负担(worker 加载数据到 RAM 的进程是 CPU 进行复制)。num_workers 的经验设置值是 <= 服务器的 CPU 核心数。
【选择磁盘】
在进行训练或者推理的过程中需要不断的与磁盘进行交互,如果磁盘 IO 性能较差,则同样会成为整个训练速度的瓶颈;恒源云一直推荐用户使用 /hy-tmp 目录进行数据集存储和训练,因为该目录为机器本地磁盘,训练速度最快,IO 效率最高。
平台的所有机器中,目前大多数机器都采用 SSD 高效磁盘,比传统机械磁盘速度要高几倍,还有速度更快的 NVME 磁盘,在进行机器选择的时可根据需要选择磁盘 IO 较好的磁盘。
平台中各种类型磁盘读写效率如下:
以下内容均测试为随机读/写性能,这也是磁盘在日常的使用场景,磁盘厂商所描述的 3000MB+、5000MB+这种磁盘读写效率均为顺序读写,并不符合我们日常使用场景。
NVME 类型磁盘: 每秒随机写 >= 1700MB 每秒随机读 >= 2400MB
SSD 类型磁盘: 每秒随机写 >= 460MB 每秒随机读 >= 500MB
HDD 类型磁盘: 每秒随机写 ~= 200MB 每秒随机读 ~= 200MB
四、价格选卡
可通过云市场中的活动专区进行购卡,活动专区为当前正在进行折扣的机器,与其它同型号 GPU 并无差异。
可通过云市场中的代金券专区进行购卡,代金券专区中的多数机器也同样可以使用优惠券,通过完成平台给予的任务获得代金券和优惠券,以此来进行购卡。
同样可以通过云市场中的包天/周/月/年进行购卡,这种属于预付费模式,该模式适用于提前预估设备需求量的场景,价格相较于按量计费模式更低廉。
五、稳定性选卡
对于稳定性要求较高的用户可在云市场中的高可用专区进行购卡。
评论