做深度学习,需要配置专门的GPU服务器吗?

做深度学习,需要配置专门的GPU服务器吗?,第1张

深度学习是需要配置专门的GPU服务器的:

深度学习的电脑配置要求:

1、数据存储要求

在一些深度学习案例中,数据存储会成为明显的瓶颈。做深度学习首先需要一个好的存储系统,将历史资料保存起来。

主要任务:历史数据存储,如:文字、图像、声音、视频、数据库等。

数据容量:提供足够高的存储能力。

读写带宽:多硬盘并行读写架构提高数据读写带宽。

接口:高带宽,同时延迟低。

传统解决方式:专门的存储服务器,借助万兆端口访问。

缺点:带宽不高,对深度学习的数据读取过程时间长(延迟大,两台机器之间数据交换),成本还巨高。

2、CPU要求

当你在GPU上跑深度网络时,CPU进行的计算很少,但是CPU仍然需要处理以下事情:

(1)数据从存储系统调入到内存的解压计算。

(2)GPU计算前的数据预处理。

(3)在代码中写入并读取变量,执行指令如函数调用,创建小批量数据,启动到GPU的数据传输。

(4)GPU多卡并行计算前,每个核负责一块卡的所需要的数据并行切分处理和控制。

(5)增值几个变量、评估几个布尔表达式、在GPU或在编程里面调用几个函数——所有这些会取决于CPU核的频率,此时唯有提升CPU频率。

传统解决方式:CPU规格很随意,核数和频率没有任何要求。

3、GPU要求

如果你正在构建或升级你的深度学习系统,你最关心的应该也是GPU。GPU正是深度学习应用的核心要素——计算性能提升上,收获巨大。

主要任务:承担深度学习的数据建模计算、运行复杂算法。

传统架构:提供1~8块GPU。

4、内存要求

至少要和你的GPU显存存大小相同的内存。当然你也能用更小的内存工作,但是,你或许需要一步步转移数据。总而言之,如果钱够而且需要做很多预处理,就不必在内存瓶颈上兜转,浪费时间。

主要任务:存放预处理的数据,待GPU读取处理,中间结果存放。

深度学习需要强大的电脑算力,因此对电脑的硬件配置自然是超高的,那么现在普通的高算力电脑需要高配置硬件。

服务端启remote fx调用连接电脑显卡,要求比较严苛服务器要求server版本windows 用hyperv 做虚拟机。

肯定是吃CPU,显卡此时并不处于高负荷状态,不过一般情况下远程对CPU的要求并不会很高,我怀疑问题出在其他地方,比如内存大小,系统优化的好坏。

在客户端应用:

在“开始”→“运行”,在运行框中键入“>

(否则远程桌面会显示在浏览器中),回车后即可看到登录窗口,键入用户名与密码即可进入远程桌面。其它就同使用本地机一样。若要退出,请选择“注销”,若一会儿后还要进入,请选择“断开”,再进入时方法同前。


关于GPU的并行计算,我们从三点进行简单的阐述。

一:什么是GPU

很久以前,大概2000年那时候,显卡还被叫做图形加速卡。一般叫做加速卡的都不是什么核心组件,和现在苹果使用的M7协处理器地位差不多。这种东西就是有了更好,没有也不是不行,只要有个基本的图形输出就可以接显示器了。在那之前,只有一些高端工作站和家用 游戏 机上才能见到这种单独的图形处理器。

后来随着PC的普及, 游戏 的发展和Windows这样的市场霸主出现,简化了图形硬件厂商的工作量,图形处理器,或者说显卡才逐渐普及起来。

GPU有非常多的厂商都生产,和CPU一样,生产的厂商比较多,但大家熟悉的却只有3个,以至于大家以为GPU只有AMD、NVIDIA、Intel3个生产厂商。

nVidia GPU

AMD GPU

Intel MIC协处理器

nVidia Tegra 4

AMD ARM服务器

CUDA C/C++

CUDA fortran

OpenCL

MIC OpenMP

CUDA



二:GPU与CPU的区别

想要理解GPU与CPU的区别,需要先明白GPU被设计用来做什么。现代的GPU功能涵盖了图形显示的方方面面,我们只取一个最简单的方向作为例子。

大家可能都见过上面这张图,这是老版本Direct X带的一项测试,就是一个旋转的立方体。显示出一个这样的立方体要经过好多步骤,我们先考虑简单的,想象一下他是个线框,没有侧面的“X”图像。再简化一点,连线都没有,就是八个点(立方体有八个顶点的)。那么问题就简化成如何让这八个点转起来。

首先,你在创造这个立方体的时候,肯定有八个顶点的坐标,坐标都是用向量表示的,因而至少也是个三维向量。然后“旋转”这个变换,在线性代数里面是用一个矩阵来表示的。向量旋转,是用向量乘以这个矩阵。把这八个点转一下,就是进行八次向量与矩阵的乘法而已。

这种计算并不复杂,拆开来看无非就是几次乘积加一起,就是计算量比较大。八个点就要算八次,2000个点就要算2000次。这就是GPU工作的一部分,顶点变换,这也是最简单的一部分。剩下还有一大堆比这更麻烦的就不说了。

总而言之,CPU和GPU因为最初用来处理的任务就不同,所以设计上有不小的区别。它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

于是CPU和GPU就呈现出非常不同的架构(示意图):

CPU与GPU区别大揭秘

GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分。

而GPU的工作大部分就是这样,计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。

而CPU就像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生A和小学生B的工作没有什么依赖性,是互相独立的。

很多涉及到大量计算的问题基本都有这种特性,比如你说的破解密码,挖矿和很多图形学的计算。这些计算可以分解为多个相同的简单小任务,每个任务就可以分给一个小学生去做。

但还有一些任务涉及到“流”的问题。比如你去相亲,双方看着顺眼才能继续发展。总不能你这边还没见面呢,那边找人把证都给领了。这种比较复杂的问题都是CPU来做的。

而某些任务和GPU最初用来解决的问题比较相似,所以用GPU来算了。GPU的运算速度取决于雇了多少小学生,CPU的运算速度取决于请了多么厉害的教授。教授处理复杂任务的能力是碾压小学生的,但是对于没那么复杂的任务,还是顶不住人多。当然现在的GPU也能做一些稍微复杂的工作了,相当于升级成初中生高中生的水平。但还需要CPU来把数据喂到嘴边才能开始干活,究竟还是靠CPU来管的。

三:并行计算

首先我们说一下并行计算的概念,它是一种类型的计算,它的许多计算或执行过程是同时进行的。将大问题可以分成较小的问题,然后可以同时解决。可以同CPU或主机进行协同处理,拥有自己的内存,甚至可以同时开启1000个线程。

采用GPU进行计算时与CPU主要进行以下交互:

先说明一下,一般来说同一时刻一个CPU或GPU计算核心上(就是我们通常所说的“核”)只能够进行一个运算,在超线程技术中,一个计算核心在同一时刻可能进行多个计算(比如对于双核四线程的CPU,在不发生资源冲突的情况下,每个计算核心可能同时进行两个计算),但超线程通常只是使逻辑计算核心翻倍。

我们平时看到自己使用的CPU可以同时运行几十个程序,实际上,从微观角度来说,这几十个程序在一定程度上仍然是串行的,比如在四核四线程CPU上,同一时刻只能够进行4个运算,这几十个程序便只能在四个计算核心上轮换执行,只是由于切换速度很快,在宏观上表现出的就是这些程序在“同时”运行。

GPU最突出的特点就是:计算核心多。

CPU的计算核心一般只有四个、八个,一般不超过两位数,而用于科学计算的GPU的计算核心可能上千个。正由于计算核心数量的巨大优势,GPU在同一时刻能够进行的计算的数量远远地把CPU比了下去。

这时候,对于那些可以并行进行的计算,利用GPU的优势就能够极大地提高效率。这里解释一下任务的串行计算和并行计算。串行计算通俗来说就是先计算完一个之后再计算下一个,并行计算则是同时并行的计算若干个。比如计算实数a与向量B=[1 2 3 4]的乘积,串行计算就是先计算aB[1],再计算aB[2],然后计算aB[3],最后计算aB[4],从而得到aB的结果,并行计算就是同时计算aB[1]、aB[2]、aB[3]和aB[4],得到aB的结果。

如果只有一个计算核心,四个计算任务是不可能并行执行的,只能够一个一个地串行计算,但如果有四个计算核心,则可以把四个独立的计算任务分到四个核上并行执行,这便是并行计算的优势所在。正因如此,GPU的计算核心多,能够进行并行计算的规模便非常大,对于一些能够通过并行计算解决的计算问题便表现出了优于CPU的性能。

比如破译密码,将任务分解成可以独立执行的若干份,每一份分配在一个GPU核心上,便可以同时执行多份破译任务,从而加快破译速度。

但并行计算不是万能的,它需要一个前提:问题可以分解为能够并行执行的若干个部分。很多问题不满足这个条件,比如一个问题有两步,而第二步的计算依赖于第一步的结果,此时,这两部分便不能并行的执行,只能够串行地依次执行。实际上,我们平时的计算任务常常有复杂的依赖关系,很多重要的计算任务并不能够并行化。这是GPU的一个劣势。

关于GPU编程方面主要有以下方法:

由于不是编程科班出身,这里就不多加介绍了,有兴趣的朋友可以自行找资料。关于GPU的并行计算,就说这么多,有更深了解的朋友欢迎来沟通。

作者 | 赵广立

近年来摩尔定律“失速”,使得中央处理器(CPU)的性能增长边际成本急剧上升。有研究数据表明,现在CPU的性能年化增长率(面积归一化之后)仅有3%左右。然而,人们对计算的需求依然爆发性增长。

在此背景下,包括人工智能(AI)芯片在内的专用计算芯片陆续登上 历史 舞台,绽放光芒。眼下,以数据为中心的专用处理器“DPU”正成为专用计算芯片的“新贵”。美国芯片巨头英伟达公司甚至将其定位为数据中心继CPU和图形处理器(GPU)之后的“第三颗主力芯片”,掀起了行业热潮。

和CPU、GPU“三足鼎立”,DPU真有如此大的潜力吗?它的应用场景有哪些?我国能抓住DPU发展机遇吗?近日,由中国科学院计算技术研究所(以下简称中科院计算所)主编,中科驭数(北京) 科技 有限公司、中国计算机学会集成电路设计专业组、计算机体系结构国家重点实验室联合编写的行业首部《专用数据处理器(DPU)技术白皮书》(以下简称《DPU技术白皮书》)发布。结合上述问题,《中国科学报》联系采访了主要编写人员一探究竟。
“DPU最直接的作用是作为CPU的卸载(offload)引擎,其效果是给CPU‘减负’。”《DPU技术白皮书》主编、中科院计算所研究员鄢贵海告诉《中国科学报》,作一形象比喻,DPU提供了数据中心一把“杀鸡”的工具,节省的是CPU这把“牛刀”,以释放CPU算力,留给更需要它的业务负载。

接管CPU的网络协议处理任务,就是一个很好的例子。鄢贵海说,比如在数据中心仅线速处理10G的网络,大概就需要一个8核高端CPU一半的的算力,而如果是40G、100G甚至更高速的网络,性能开销更大。

云计算巨头亚马逊云服务(AWS)形象地称之为“数据中心税”——还未运行业务程序,接入网络数据就要占去许多计算资源。

“DPU诞生的使命就是承载网络虚拟化、硬件资源池化等基础设施层服务,以释放CPU的算力到上层应用。”《DPU技术白皮书》编委会成员、中科驭数高级副总裁张宇解释说,将“CPU处理效率低下、GPU处理不了”的负载卸载到专用的DPU,就能实现对“数据中心税”的抵消,从而有助于提升整个计算系统的效率、降低整体系统的总体拥有成本。

张宇介绍称,DPU主要处理网络数据和输入输出(IO)数据,并提供带宽压缩、安全加密、网络功能虚拟化等功能。“这些可以说是离我们普通用户每天感知到的各种应用最远的功能了。而这些基础功能是实现日常应用更高效、更安全、更实时的保障。”

业界对DPU中的“D”有三种说法,因此DPU就有三个中文名。

一种是“Data”,DPU被称为“数据处理器”;一种是“Datacenter”,DPU译作“数据中心处理器”;一种是“Data-centric”,相应的,DPU可叫作“以数据为中心的处理器”。

“以上三种关于DPU的说法,从不同角度反映DPU的特征,都有一定的可取之处,我们认为可以作为不同的三个维度来理解DPU的内涵。”李晓维说。

“随着‘软件硬件化’成为常态,异构计算的潜能将因各种DPU的普及而彻底发挥出来。”《DPU技术白皮书》编委会成员、中科驭数联合创始人兼CTO卢文岩认为,新一代的DPU不仅可以作为运算的加速引擎,还具备“控制平面”(即追求数据处理功能的覆盖面)的功能,能更高效地完成网络虚拟化、IO虚拟化、存储虚拟化等任务,彻底将CPU的算力释放给应用程序。

“可以说,DPU的出现将让各行各业的业务层数字化应用更全面、更流畅、更绿色。”卢文岩说。

从市场规模角度来看,根据Fungible公司和英伟达公司的预测,用于数据中心的DPU量级将达到和数据中心服务器等量的级别。

“服务器每年新增大约千万量级,一台服务器可能没有GPU,但一定会有一颗或者多颗DPU,好比每台服务器都必须配网卡一样。”鄢贵海说,服务器每年新增大约1500万台,每颗DPU以1万元计算,这将是千亿量级的市场规模。

在这个千亿量级市场中,国际传统芯片巨头如英伟达、英特尔、Marwell、博通等厂商,都在积极布局DPU产品研发。

这些芯片巨头的布局并不意外,他们或有智能网卡研发基础(如博通)继续延伸技术触角,或通过并购专用加速芯片公司(如英伟达、英特尔)补充其在DPU领域的技术能力。相比它们,更值得一提的是,亚马逊旗下的AWS和阿里云两大云计算巨头,早已注意到数据中心开销问题,并已有了良好实践。

据《DPU技术白皮书》显示,2013年,AWS研发了Nitro产品,将为虚拟机提供远程资源、加密解密、故障跟踪、安全策略等服务程序的资源开销,全部放到专用加速上执行,“轻量化管理程序+定制化硬件”的上场一举节省30%CPU资源。几乎在同期,阿里云也着手研发“神龙架构”(X-Dragon系统),以硬件化的MOC卡统一支持网络、IO、存储和外设的虚拟化,如今“神龙架构”已经更迭到了第4代。

“可见,DPU其实在行业内已经孕育已久,从早期的网络协议处理卸载,到后续的网络、存储、虚拟化卸载,其带来的作用非常显著,只不过在此之前DPU‘有实无名’,现在是时候迈上一个新的台阶了。”鄢贵海表示。

可喜的是,国内一些围绕DPU技术的创业公司也逐渐崭露头角。除了参与编写《DPU技术白皮书》的中科驭数之外,还有云豹智能、星云智联、芯启源、云脉芯联等新近成立的 科技 创业公司,展现出良好势头。

以中科驭数为例,这家创始团队来自中科院计算所的初创企业,在DPU理论基础、数据中心架构方面有着深刻理解,工程实现经验也因一些来自亚马逊、赛灵思、华为等核心骨干的加入,得到了很好的积累。2019年,中科驭数完成第一代DPU芯片的流片,预计将于2022年推出第二代DPU芯片“K2”。

“我们认为DPU的潜力确实是巨大的。”在鄢贵海看来,从技术发展的角度来看,DPU的出现有一定的必然性——上层应用对于算力的需求在过去5年急剧增长,使得DPU的应用场景很多,它将广泛分布在5G、云计算、大数据、数据中心和边缘计算等领域。

而从工业和信息化部今年发布的《新型数据中心发展三年行动计划(2021—2023年)》中,鄢贵海更是看到了新型算力芯片难得的 历史 发展机遇。

该计划明确提出要加快提升算力算效水平,“推动CPU、GPU等异构算力提升,逐步提高自主研发算力的部署比例”“加强专用服务器等核心技术研发”“树立基于5G和工业互联网等重点应用场景的边缘数据中心应用标杆”等要求和措施。

“虽然国内厂商在芯片产品化的环节相比国外一线厂商还有差距,但是在DPU架构的理解上是有独到的见解的,而且我国目前在数据中心这个领域,无论是市场规模、增速还是用户数量,相较于国外都有巨大的优势。”鄢贵海认为,国内厂商有望充分利用这一“应用势能”,加快发展步伐,在DPU这个赛道与国外厂商“逐鹿中原”。

不过,挑战与机遇并存。

“目前要解决DPU标准化应用,还存在一定挑战。”鄢贵海解释道,由于数据中心本身的复杂性,各大厂商一方面采用商用现货组件(即COTS)来构建系统,追求低成本,一方面又设法分层服务化,打造面向不用类型客户的标准化产品,但除此之外的所有技术实现几乎都是“八仙过海,各显神通”——如AWS有Nitro,阿里云有MOC。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13420347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-01
下一篇 2023-08-01

发表评论

登录后才能评论

评论列表(0条)

保存