前言
随着互联网的飞速发展,云计算,云渲染,云服务等平台兴起,各种算力平台也开始崭露头角,深度学习似乎不再遥不可及,对于刚刚入门深度学习的小白,在高性价比的基础上挑选一个合适的云服务器是非常重要的,本文就从CPU与GPU的区别以及如何去选择GPU服务器的角度展开。
一、什么是CPU?什么是GPU?
虽然大部分看到这篇文章的小伙伴都对这两个基础概念非常清楚了,但是本文还是选择赘述一下
1、所谓CPU即中央处理器(CPU,central processing unit,缩写:CPU),是作为整个计算机系统的运算和控制的核心,是信息处理、程序运行的最终执行单元。CPU是最核心的部件,也是整个数据处理的最根本的部件。
2、所谓GPU即图形处理器(GPU,Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
当然,上面是百度给出的解释,非常的不“人性化”
GPU 与 与 CPU区别:
从 GPU 与 CPU 架构对比图可以看出,
- CPU 的逻辑运算单元较少,控制器占比较大;GPU 的逻辑运算单元小而多,控制器功能简单,缓存也较少。
- GPU 的众多逻辑运算单元呈矩阵排列,可以并行处理数量众多但较为简单的处理任务,图像运算处理就可以进行这样的拆解。
- GPU 单个运算单元处理能力弱于 CPU,但是数量众多的运算单元可以同时工作,当面对高强度并行计算时,其性能要优于 CPU。
- GPU擅长对大数据进行简单重复的运算,特别是对浮点数的运算以及矩阵的运算(图像在内存中以矩阵的形式存储)
架构对比图(图源:百度)
二、CPU服务器和GPU服务器之间的区别
1、指令集不同
家用或者工作用电脑配备的普通CPU,通常为CISC复杂指令集,追求指令集的大而全,尽量把各种常用的功能集成到一块,但是调用速度和命中率相比服务器CPU较低一些。服务器CPU的指令一般是采用的RISC(精简指令集)。这种设计的好处就是针对性更强,可以根据不同的需求进行专门的优化,能效更高。
2、缓存不同
缓存也决定着CPU的性能,由于服务器CPU对运算性能要求高,所以服务器CPU往往应用了最先进的工艺和技术,并且配备了一二三级缓存,运行能力更强。服务器CPU很早就用上了3级缓存。普通cpu是近几年才用上了缓存技术。
3、接口不同
服务器cpu和普通cpu接口往往不同,目前服务器CPU接口大多为Socket 771、Socket 775、LGA 2011、LGA 1150相比普通通CPU接口尽管不少相同,但实际上搭配的主板并不相同。服务器cpu配备的主板通常没有显卡卡槽,因为CPU自带的核心显卡即可满足需求,并且其CPU总线带宽比家用CPU高。
4、稳定性要求不同
服务器CPU是为了长时间稳定工作而存在的,基本都是设计为能常年连续工作的。服务器CPU相比家用CPU在稳定性和可靠性方面有着天壤之别,一般服务器都是365天开机运行,只有偶尔停机维护,对稳定性要求极高。普通CPU则是按72个小时连续工作而设计的,家用电脑在不使用时,我们还是习惯让他保持关机状态,一般每天都会关机。
5、多路互联支持不同
多路互联是服务器上的一项技术,比如服务器主板可以同时拥有多个CPU插槽,可以同时安装多个CPU,这个就是CPU多路互联技术,这项技术目前只有服务器CPU才支持,普通家用电脑,一块主板只可以安装一个CPU,不支持多路互联。
三、如何选择GPU服务器
首先,我们需要了解下,GPU主要分三种接口,目前市面上可以进行交付的主要是传统总线接口、PCIe接口和NV-Link接口的。
- NV-Link接口类型的GPU典型代表是NVIDIA V100,采用 SXM2接口。在DGX-2上有SXM3的接口。NV-Link总线标准的GPU服务器可以分为两类,一类是NVIDIA公司设计的DGX超级计算机,另一类是合作伙伴设计的NV-Link接口的服务器。DGX超级计算机不仅仅提供硬件,还有相关的软件和服务。
- 传统总线接口的GPU,目前主流的有这几款产品,比如 PCI-e接口的V100、 P40(P开头指的是上一代PASCAL架构)和P4,以及最新的图灵架构T4等。其中比较薄和只占一个槽位的P4和T4,通常用于Inference,目前也已经有成熟的模型进行推理和识别。
- 传统PCI-e总线的GPU服务器也分为两类,一类是OEM服务器,比如曙光、浪潮、华为等其他国际品牌;另一类是非OEM的服务器,也包括很多种类。选择服务器时除了分类,还要考虑性能指标,比如精度、显存类型、显存容量以及功耗等,同时也会有一些服务器是需要水冷、降噪或者对温度、移动性等等方面有特殊的要求,就需要特殊的服务器。
其次选择GPU服务器时首先要考虑业务需求来选择适合的GPU型号。
- 在HPC高性能计算中还需要根据精度来选择,比如有的高性能计算需要双精度,这时如果使用P40或者P4就不合适,只能使用V100或者P100;
- 同时也会对显存容量有要求,比如石油或石化勘探类的计算应用对显存要求比较高;
- 还有些对总线标准有要求,因此选择GPU型号要先看业务需求。
GPU服务器人工智能领域的应用也比较多。
在教学场景中,对GPU虚拟化的要求比较高。根据课堂人数,一个老师可能需要将GPU服务器虚拟出30甚至60个虚拟GPU,因此批量Training对GPU要求比较高,通常用V100做GPU的训练。模型训练完之后需要进行推理,因此推理一般会使用P4或者T4,少部分情况也会用V100。
当GPU型号选定后,再考虑用什么样GPU的服务器。这时我们需要考虑以下几种情况:
- 在边缘服务器上需要根据量来选择T4或者P4等相应的服务器,同时也要考虑服务器的使用场景,比如火车站卡口、机场卡口或者公安卡口等;在中心端做Inference时可能需要V100的服务器,需要考虑吞吐量以及使用场景、数量等。
- 需要考虑客户本身使用人群和IT运维能力,对于BAT这类大公司来说,他们自己的运营能力比较强,这时会选择通用的PCI-e服务器;而对于一些IT运维能力不那么强的客户,他们更关注数字以及数据标注等,我们称这类人为数据科学家,选择GPU服务器的标准也会有所不同。
- 需要考虑配套软件和服务的价值。
- 要考虑整体GPU集群系统的成熟程度以及工程效率,比如像DGX这种GPU一体化的超级计算机,它有非常成熟的从底端的操作系统驱动Docker到其他部分都是固定且优化过的,这时效率就比较高。