机器推理在深度学习的影响下,准确性越来越高、速度越来越快。深度学习对人工智能行业发展的贡献巨大,这得益于现阶段硬件计算能力的提升、互联网海量训练数据的出现。本篇文章主要介绍深度学习过程中如何选择合适的GPU显卡,如果你是深度学习新手,希望这篇文章对你有帮助。
推理用到的硬件分两种,一种是专业AI硬件公司出的AI芯片,一种就是我们平时熟知的GPU显卡了,前者不太适合入门学习,而后者无论从入门难度还是性价比上讲,对于新手来说都是优先的选择。而GPU显卡主流厂商大概两家,一个Nvidia,一个AMD,前者出的卡我们一般称之为N卡,后者称之为A卡。目前不管是普通消费市场(比如玩游戏)还是做机器推理的,N卡都占主流,生态也更好一些,因此,如果没有特殊原因,建议新手优先选择N卡入手。我个人不太推荐使用非主流的产品、技术,因为他们大多数不太成熟,使用过程中困难重重,甚至最终官方夭折。本篇文章所有内容全部基于Nvidia显卡。
==Update==
经过实际经验证明,Geforce还是用来调试开发比较好,真正上线的卡还是选择官方推荐的Tesla等,具体原因谁用谁知道。。
Nvidia显卡分类
Nvidia显卡主要分3大类:
1)Geforce系列
这个系列是销量最多、大众最为熟悉的显卡,一般用来打游戏。价格便宜,最新出来的旗舰卡RTX 2080Ti京东售价大概1w左右,根据不同的品牌,价格有所波动。低配置的便宜的一千就能买到。游戏发烧友花1w买这种显卡还是很常见的。这个系列显卡官方定位是消费级,就是让你用来打游戏的。但是它在深度学习上的表现也非常不错,很多人用来做推理、训练,单张卡的性能跟深度学习专业卡Tesla系列比起来其实差不太多,但是性价比却高很多。比如已经停产的GTX 1080显卡的参数基本和深度学习入门级显卡Tesla P4一样,用来做训练和推理的效果比Tesla P4还要好,可是GTX 1080一张卡才卖5000~6000左右,而Tesla P4要卖到1.4w。英伟达官方禁止使用GTX系列显卡用于深度学习等用途,一经使用,自动过保。那么,既然性能差不多,为什么价格差这么远呢?原因后面讲到。
2)Quadro系列
Quadro系列显卡一般用于特定行业,比如设计、建筑等,图像处理专业显卡,比如CAD、Maya等软件,一般人很少用到,价格相对来讲也稍微贵一些,这里不多说了。
3)Tesla系列
Tesla系列显卡定位并行计算,一般用于数据中心,具体点,比如用于深度学习,做训练、推理等。阿里云、Amazon云有非常多的GPU服务器,基本都采用Tesla系列显卡。这个系列显卡有个特别明显的特征,那就是贵。Tesla系列入门级显卡 Tesla P4,前面提到过,用来做深度学习的效果比GTX 1080还差,但是价格是后者的3倍多。像其他更高级别的Tesla V100、Tesla P100 价格高达8w、4w,这种价位的显卡虽然性能强劲,但是一般人是买不起的,只有企业数据中心才会部署这种显卡。那么前面提到过,既然对于搞深度学习而言,Tesla系列显卡相比GeForce而言性价比并不高,那为什么英伟达还会推出Tesla这个系列呢? 主要原因有以下4个:
(1)我们前面讨论的性能对比全部都是基于单块显卡而言的,而Tesla系列显卡针对GPU集群做了优化,像那种4卡、8卡、甚至16卡服务器,Tesla多块显卡合起来的性能不会受很大影响,但是Geforce这种游戏卡性能损失严重。这也是Tesla主推并行计算的优势之一。
(2)数据中心的GPU显卡都是大批量部署的,有多台服务器,每台服务器有多块GPU显卡,而Tesla系列显卡功耗优化非常明显,Tesla P4单块卡的最大功耗只有75W,而与它参数配置差不多的GTX 1080的功耗高达175W。可以想象,Tesla系列显卡更适合大规模部署,长远来看,成本小得多。功耗低其中的一个原因是,Tesla系列显卡基本都是被动散热,不提供风扇,这个更适合数据中心机房工作环境:服务器设备统一散热,机房恒温条件。这本身跟它的定位一致。
(3)再一个,类似Geforce这种消费级的显卡更新换代太快,GTX 1080显卡生命周期不到2年就停产了,类似手机这种电子设备,你产品都还没做出来,拟采购的GPU可能就买不到货了。
(4)消费级显卡毕竟用于个人用途,性能方面不可能无限提升,用于并行计算的Tesla显卡高配版在性能(参数配置)上可能比消费级显卡高配版要高得多。
注意国内能买到的显卡一般由第三方代理商销售,比如七彩虹、华硕、丽台等等显卡厂商,这些厂商会在Nvidia的核心显卡芯片之上做一些改造,比如散热模式、外观或者其他修改,因此同一型号的同一款卡的价格可能会因不同厂家而不同。
GPU几个比较重要的参数
GPU有非常多的参数,在做深度学习挑选显卡的时候,主要看以下几个:
GPU架构:不同款的GPU可能采用不同设计架构,比如Geforce 10系列的 GTX 1080/1080Ti采用的是Pascal架构,而Geforce 20系列的 RTX 2080/2080Ti采用的是Turing架构。不同架构的GPU,即使其他参数差不多,性能差别可能非常大。
CUDA核心数量:这是一个非常重要的参数,一般你在搜索显卡参数时,这个参数一般写在前面。CUDA核心数量越大越好,前面提到的消费级显卡Geforce GTX 1080和Tesla入门级显卡 P4的CUDA核心数量一样,都是2560个。而Geforce RTX 2080Ti的CUDA核心数高达4352个。
显存位宽:代表GPU芯片每个时钟周期内能从GPU显存中读取的数据大小,这个值越大代表GPU芯片和显存之间数据交换的速度越快,性能越好。Geforce GTX 1080的显存位宽为256bit,Geforce RTX 2080Ti显存位宽为352bit。
GPU工作频率:这个很好理解,代表GPU每秒钟工作次数,单位为MHz,跟CPU的频率类似。该值越大代表性能越好。
显存带宽:代表GPU芯片每秒与显存交换的数据大小,这个值等于 显存位宽*工作频率,单位为GB/秒,该值越大,代表GPU性能越好。Geforce GTX 1080的显存带宽为320GB/秒,而它的升级版Geforce RTX 2080的带宽为448GB/秒。
显存容量:这个东西跟内存一样,不是越大越好,够用就行。Geforce GTX 1080的显存为8GB,而该系列的旗舰版Geforce GTX 1080Ti的显存为11GB。Tesla系列显卡由于特殊的应用场景,有些型号的卡显存高达16G/24G不等。
功耗:GPU能耗,像Geforce这种消费级的显卡一般功耗非常高,Geforce GTX 1080的最大功耗为175W,Tesla P4的最大功耗为75W。像那种数据中心大规模级别的GPU部署,低功耗的显卡一年电费能省很多。
注意上面提到的显卡名称后面加Ti和不加Ti完全是两款不同的卡,加Ti的性能比不加Ti的参数配置高很多。比如 Geforce GTX 1080Ti 比 Geforce GTX 1080性能更强劲。
如何选择合适你的显卡?
如果是个人学习使用,推荐购买Geforce系列的显卡,然后根据个人预算,如果在1W左右,可以选择最新出来的Geforce RTX 2080Ti,如果费用不够,可以购买Geforce RTX 2080/2070,价格在5000/3000左右。千万不要买入门级的Tesla P4,价格在1.4W左右。RTX 2080Ti经过实际测试,YoloV3目标检测模型能跑20路1080P高清实时流。