搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > CUDATEK酷达智能 > 如何升级GPU深度学习系统

如何升级GPU深度学习系统

CUDATEK酷达智能 2017-10-30

CUDATEK是深度学习软硬件解决方案专家,提供GPU硬件解决方案;CUDA解决方案专家; 面向制造业,影视动漫娱乐硬件解决方案;专业计算金融GPU解决方案;IVA GPU软硬件解决方案。

GPU 成为在构建深度学习系统时必不可少的需要关注的方向,但是诸如如何选择一款 GPU 来搭建深度学习平台,如何升级自己的 GPU 之类的问题一直困扰着开发者。现在,这些问题都将由来自英伟达的深度学习专家路川为你解答。

GPU 成为每一家企业在构建深度学习系统时必不可少的需要关注的方向,与此同时英伟达每一年在推出新的 GPU 架构和依托于此的新的产品,其最推先推出的 Volta 架构,比起当前 Pascal 的性能提升了 5 倍,优于两年前推出的 Maxwell 架构 15 倍,远远超过摩尔定理的预测,在此背景下许多开发者也充满了各种疑问:例如如何搭建自己的深度学习平台,要不要升级自己的 GPU,深度学习系统,该如何选择和适合自己的 GPU 与 SDK,哪些方法或技巧能够帮助自己进行更好的升级?

硬件方面

从 06 年开始,就有人拿 GPU 做计算使用,从 06 年到 12 年,大部分的 GPU 的应用场景都是在传统的 HPC 领域去应用的,比如用作动力学,还有计算物理、计算化学等方面。


2012 年开始,就有人采用 GPU 来去构建深度神经网络,用 GPU 来加速深度神经网络计算,使用 GPU 来加速,在图像分类上面取得了非常好的成果。从 2012 年开始 GPU 在人工智能领域的开始应用的很广,2012 年到 2016 年各个互联网公司,各个行业都在应用 GPU。应用 AI 的技术去服务于客户的公司是越来越多,应用也是越来越多。

目前主流的 AI 研究里,用的主流的或者是性价比最高的 GPU 平台是 Pascal 架构的平台。Pascal 架构是目前主要针对于深度学习,针对于 GPU 计算的一个平台,它主要有以下 5 个特征:

Pascal 架构支持 GPU 计算,让 GPU 计算更加高效快速;


Pascal 的架构设计可以更好的让 GPU 充分发挥它的性能;


Pascal 采用 16 纳米的工艺,使它的 Memory 容量会更高、更快;


Pascal 架构开始采用的新的技术,取代了原来 PCIe 的技术,GPU 跟 GPU 之间的数据交换是通过 NVlink 相连,这样可以快速的达到 GPU 虚拟交换的目的;

针对于深度学习的一些 SDK 库,在 Pascal 下会针对架构做很多的优化;另外就是 GDSY,针对于深度学习的领域,英伟达公司推出了一个硬件加软件整体的智能解决方案,GDSY,它内部采用了最新的 Pascal 架构的 GPU。

软件方面

英伟达公司内部也是对各个深度学习的 framework 做了一些优化,整合在 GPU 内部,这样客户可以不用关心底下是怎么去实现的,只用 GDSY 作为一个工具来去做深度学习训练就 OK 了。之后通过 GDSY 可以构建一个集群,来做一些深度学习分布式应用之类的计算任务,最后就是这三年内 GPU 的计算量增加到 60 倍,针对于 AI 技术,GPU 带来了非常大的计算性能的提升。

如何升级GPU深度学习系统

在深度学习里面用的比较多的是 SDK,像 cuDNN 网络,都可以去构建深度学习的网络。另外,就是 NCCL,指的是快速的去加速 CPU 跟 GPU 之间的数据交换,通过优化来提升 GPU 之间交换性能的一个 SDK 工具,还有 cuBLAS 函数,线性库,跟其他的一些 Blas 库是一样的,都是基于 CUDA 平台,基于 GPU 的库;还有 cuSPARSE 库、TensorRT,可以做一些线上的优化;通过调用 cuDNN 等等可以构建一个训练平台,用来加速训练,基于 Caffe、TensorFlow,训练完成以后,再布到线上去,在云端,或者嵌入式设备端,通过进一步的优化,可以快速的给客户去提供 AI 线上的 inference 服务。

如何升级GPU深度学习系统

英伟达有很多的 SDK 供大家使用,SDK 对于客户来说是非常重要的一个工具。举个小例子:一些视频处理的客户,在视频处理的过程中,需要用到视频的编解码,同时要用到深度学习的这些工具,来加速相关的一些视频分析。编解码的方案有非常多种,但是经过对比,客户采用了英伟达的 Video SDK 里面的硬编程解码方式,效率会更高。如果要更高效的使用 GPU,当然是利用现有的英伟达 SDK 做加速。


在做一些 inference 应用场景下,可能要用到 CUDA 平台,英伟达提供了基于 GPU 的编程平台,供大家使用、编写自己的 GPU 应用程序,整个应用程序的计算部分占的很少,但是计算时间可能占了程序的 95%,只需要把这部分放到 GPU 端去处理,这样整个编程模式,蓝颜色的交给 CPU 去处理,到了绿颜色部分拷贝到 GPU 端,通过 GPU 来去做加速,加速完成,把相应的结果再拷贝到 CPU 端做处理。如果说你有一些算例,适合于刚才所说的计算模式,又想放到 GPU 上来去做,可以通过 CUDA 平台来去实现,如果没有现有的 SDK 的话,这种实现方式是个很高效的方式;如果是说你有一些像现有的这种 SDK,还是用 SDK 会更加方便一些。

Q&A 环节

1.GPU、CPU、TPU 三者之间的区别

CPU 主要做一些通用计算的应用。而 GPU 最早做计算的过程中,就是通用计算的 GPU 平台,我们想把 GPU 也像 CPU 一样做通用计算的平台,但是 GPU 它受限于架构和它的并行的方式,并不是所有的 CPU 的应用都适合于 GPU 做。在实际的应用过程中是 CPU 跟 GPU 搭配去做的,我们把适合 CPU 端的放在 CPU 端去做,而适合 GPU 做的复杂指令计算给 GPU 去做。


关于 TPU,是谷歌专门针对于他们的计算模式,或者是 AI 的模式设计的架构,然后专门去做这样的应用,相当于是一个专用的芯片。

现在也有很多的加速计算卡,之所以说 GPU 它的应用非常广,或者是说这么受大家欢迎,不仅仅因为 GPU 它有很大的计算性能,同时跟 GPU 构建的整个生态是有很强的关系,从 2006 年开始,我们就开始构建基于 GPU 的 CUDA 平台,包括现在基于深度学习,我们不仅仅提供了硬件,还提供了一整套的 SDK 库,供大家使用,这样可以让客户更加方便的去使用到 GPU 开发去做加速。

2. 是不是目前的显卡都能做深度学习呢?

A:现在的 GPU 它分为多种用途,比如说渲染、嵌入式等等。英伟达的 GPU 都是带有 CUDA 核心的,所以这些都可以去做,可以去跑 CUDA 的应用计算。但是在做深度学习的过程中,我们不仅仅要关注于这种 CUDA 核,同时也要去关注其他的功能:比如说 GPU 的 Memory,或者 GPU 卡之间的数据交换。所以现在所有的卡都可以跑 CUDA,而且所有的卡都可以去运行深度学习的训练,这个是没有问题的,如果运行的好的话,肯定是要选择更专业做深度学习训练的显卡,或者是专业做计算的显卡使用。

3. 有人问到过这样的问题:当这最新型号的 GPU 投放到市场之后,上一代,甚至更早一代会不会被过早的淘汰掉,现在再用之前的型号,会不会影响到自己进行深度学习训练?

A:因为现在市场上,不同架构的 GPU 卡同时存在,同时它的使用场景不同。用户既然原来购买了 GPU 显卡,也可以继续去用,因为我们去构建这种深度学习平台,可以通过调度的方式,把不同架构的 GPU 卡去充分的利用起来,并不是说新的 GPU 卡到了以后,原来的卡就不会去用了。构建不同的平台,或者不同的应用场景使用,可以充分发挥到 GPU 卡的优势。

4.GPU 在 Docker 下的使用状况?

A:很多的这种公司也基于 Docker 来去构建他们的平台,GPU 也是支持 Docker 的,而且在 GitHub 英伟达的站点上可以看到,我们有一个 NVIDIA Docker,这个是基于原来的 Docker 上,后来我们基于 GPU 做了很多的优化,这样让 GPU 对 Docker 会支持的更好,而且现在我所支持的客户里面有很大一部分人都是采用 NVIDIA Docker 来管理与使用 GPU 的。


5.Tesla P4 上有一个 Incoding 加速器,同时可以处理多少视频流?

A:因为做视频编码要有很多条件,比如说分辨率、码流,包括压缩的质量,差别都是比较大的。在 P4 上是有两个 Incoding,它是一个做这种视频编解码性价比非常高的一个产品。关于同时处理多少路视频,因为它的涉及的场景是比较多的,我们跟 CPU 做过对比,大概是 CPU 的 7 倍,所以说它相比一些 CPU 平台它是非常好的加速平台。

6.cuDNN 是简单升级软件就可以得到这么高的加速吗?

A:因为 cuDNN 要提升原有程序的性能,同时要对新的架构做支撑,另外一点,需要去支撑更多软件层的加速,综合这三个层面,软件加硬件,它会有一个比较高的性能提升。如果是简简单单的升级一个 cuDNN,知识对原有的层也会有加速,但是效果要根据具体的情况来去定。


7. 非公版的显卡 SDK 支持会不同吗?

A:一般做计算的话都是基于 Tesla 平台做的,所以有一些客户他们可能在 GeForce 上做,可能会遇到一些问题。这些问题有可能是由于 GeForce 显卡在出厂时,筛选流程、本身硬件上关于计算的部分是有问题的,这样的问题是很难去定位的,一般出现这种问题我们都是建议客户在 Tesla 平台上去运行一下,如果还有问题,可以把问题反馈给我们,我们可以帮你去做一些分析;如果是在 GeForce 显卡上来做的话,是由于硬件问题,还是由于其他问题引起的,不是很好判断。

8.TensorFlow 使用 GPU 时,使用 Spark,和 k8s 平台的兼容性?k8s 平台在兼容性和性能上有没有差别?

A:因为 TensorFlow 跟 Spark 是两个功能的平台,这种对比是不太好比较的。TensorFlow 肯定是可以去支持 GPU 的,如果你原来想用 Spark 也去支持 GPU 平台,这两个 GPU 平台搭建的过程中是没有任何影响的。用 Docker 去做一个隔离,同时去使用 GPU 平台是没有问题的。


9.CUDA 8 只能在 3.7 级以上计算能力的显卡上才能被安装,所以新旧款 GPU 是否不能同时在一起工作?

A:因为 CUDA 的升级是跟软件、硬件的升级有关系的,一般它会向下两代产品做兼容。另外要做深度学习的训练,搭建一个训练的集群的话,也不可能把不同架构的 GPU 卡插在一个 GPU Server 内使用,这样本身它的计算能力都不是对等的,在分配的任务中,没有办法去做到一个 GPU 卡分的少,一个 GPU 卡分的多。但是我们可以新的卡跟老的卡一块去用,我指的是一个 GPU Server 内部,插的 GPU 卡性能是一样的,多个 GPU,可以把相同的 GPU 归为一类,作为一个队列来使用。其他的 GPU 卡,作为另外一个队列来去使用,这样可以充分发挥原有 GPU 的卡的效率。

10.GTX 1080Ti 做深度学习效果好吗?

A:这个就涉及到了 GeForce 卡跟 Tesla 卡的一个区别,GeForce 卡主要是做游戏渲染的,包括 GTX 1080Ti 都是做游戏卡去用的。游戏卡的应用场景,一般就是短时间内要求这个 GPU 的计算能力非常高,因为在玩儿游戏的过程中,某一时刻的这个渲染的计算量要求的非常高。但是在做深度学习的应用时,持续要求的这种计算量是非常大的,所以说它的应用场景是不一样的。如果是说,你用 GTX 1080Ti 去做深度学习的训练,它的持续性,对 GPU 持续的压力非常大。一段时间以后,它老化的程度,或者它的稳定性就会有很大的问题。在这种情况下,如果再做深度学习,有可能得到的训练的效果是不准确的,这样就可能会影响到整个这种研发的进度。我建议大家,做开发、做一些功能性的验证、做简单的测试,你可以用 GeForce 卡,但是要构建一个专业的深度学习训练平台,达到企业级的效果的话,还是推荐用 Tesla 相关的卡来做。

12.GPU 现在工业生产领域有哪些应用?

A:主要有两个应用场景,一个是在 HPC 这种应用场景下,像在石油勘探方面做一些碟片迁移方面的计算,还有一些在模拟方面做的 CAE 的计算模式,主要是用它们的双精度来进行。另外一个重要的应用单元就是在深度学习,主要的应用领域的方向,比如做一些视频处理,做一些图片处理,另外做一些语音的识别、翻译,还有对 ARP 的翻译,做一些推荐系统等等,所以 GPU 在各个行业领域内都会去用。在工业制造上,可以通过视频处理的方式,可以检测商品是不是有残次;在金融行业,可以通过这个语音识别的应用,去提供智能的服务,提供用机器来做客服的问答;在这个电商行业,可以通过深度学习去提供商品推荐的系统,所以说现在很多工业领域只要跟 AI 相关,都可以在 GPU 上运用。


13. 对于 TensorFlow 参数服务器跟参数同步更新,跟异步更新,哪一个方式在 GPU 上性能会好一些?

A:从算法方面来讲,采用同步的方式还是采用异步的方式?采用同步的方式,要等待其他结点的计算结果,或者其他进程的计算的结果;采用异步的方式,虽然计算的比较快,但是它需要很多的计算,来做一个收揽,它的收揽的性能没有同步方式收揽快。如果专门从计算速度上来看,肯定是异步方式的计算速度要更快一些,但是我们要考虑到,因为用 TensorFlow 做计算,它的最终的目的是要去训练 Model,同时要考虑它的收揽情况,这个要根据你的具体的应用来做,包括现在同步方式跟异步方式都会有的。


14. 对于 GIS 领域的用户推荐用哪款 GPU?

A:GIS 地理信息系统要看你要做哪方面的处理。同时要看应用的计算需求,比如说对 GPU 双精度的计算性能需求比较大,还是对单精度的计算需求比较大,还是对定点的,或者 Int8 的方式的需求比较大,另外要考虑到这个 GPU Memory 的情况。根据你的应用情况,看一下到底是需要单精度,双精度,然后再我跟 GPU 表对应来选择你的 GPU 卡。

业务咨询与购买:karena@cudatek.com



上海酷达计算机科技有限公司

TEL 021-54181199




版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《如何升级GPU深度学习系统》的版权归原作者「CUDATEK酷达智能」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注CUDATEK酷达智能微信公众号

CUDATEK酷达智能微信公众号:cudatek

CUDATEK酷达智能

手机扫描上方二维码即可关注CUDATEK酷达智能微信公众号

CUDATEK酷达智能最新文章

精品公众号随机推荐