Q1
胡远武-城市生活(北京)资讯有限公司-架构师
1、OpenGL和OpenCL能否集成,如果能集成,他的主要优势是什么?
2、GPU取代CPU的前景如何?
3、提升GPU利用率的关键点是哪些?
A1
罗华平(英伟达中国首席解决方案架构师):
1、关于第一个问题,在很多年之前Open CL可以去调用Open GL的API,就是说Open CL可以直接使用Open GL的库函数来对OpenGL图形信息进行处理计算,这个技术在Cuda里也早已实现。那么它到底有哪些优势呢?我觉得现在用Open CL的人并不太多,虽然说Open CL是一个跨平台的软件,但是Open CL目前面临的最大问题就是它虽然是跨平台的,但是针对不同的平台,可能需要进行不同的性能优化,所以OpenCL目前并没有得到一个很好的推广!另外一个方面就是Open CL是由一个联盟组织来规范能够加入哪些新的功能,因此OpenCL的发展就会受制于各个厂家对性能的一些要求等,因而发展比较慢。现在在异构计算里Cuda已经是使用最普遍的一个并行编程平台,也可以说Cuda已经是业界的一个事实标准。使用Cuda,特别是在NVIDIA GPU上,可以获得一个最高的性能。虽然Open CL可以跨平台,但是目前确实没有Cuda使用的那么快,因此它有什么优势,我现在确实也说不上来。在并行计算领域,我们还是推荐Cuda或者加OpenGL,来处理计算和图形的任务。
2、可以说GPU的出现不是取代CPU的,GPU是对CPU的一个补充。GPU离开CPU是不能单独工作的,所以GPU需要一个x86的CPU或者是IBM的Power CPU来做运行操作系统,运行整个程序只是把需要并行计算的部分我放到GPU上来加速进行,所以GPU不会取代CPU,同时GPU离开CPU也是不能工作的。
吴磊:3、实际上对于GPU利用率的提升,我们可以分两方面来讲:第一个方面,我们刚才在介绍MPS的时候也介绍到了,如果我们现在发射的Kernel的计算量不大,那么这时候我们可以采用多Kernel并行发射的方式,比如利用MPS技术,使得多个Kernel同时发射到GPU中去,提升GPU的利用率;另一方面,如果单一的Kernel计算量就很大,可以把GPU的资源几乎占满,对于这种情况下我们就需要去考虑基于GPU以及基于Cuda的一些优化方法。比如我们知道常用的一些优化方法有:基于存储的优化、基于指令的优化以及基于延迟的优化。具体的要去利用一些工具,比如Visual Profiler 以及其它的工具进行性能的剖析,然后在我们知道性能受限的因素之后,再进行一个具体的优化。
Q2
管伟-千丁互联-自然语言处理工程师
做深度学习的最低配置方面,最小能出效果的数据量是多少?
A2
罗华平:这个问题说实话不是特别好的回答,现在做深度学习主要是让训练速度快,训练时间越短越好。从我们训练的GPU平台上来讲,现在已经从标准的四卡服务器发展到八卡服务器,且八卡服务器目前也受到了大家普遍的接受,可以说在明年将成为训练平台的一个主要配置。至于多少数据量才能出效果,要根据用户的神经网络模型来决定的,说实话,我们现在也不好确切回答,可以看到,做图像和做语言处理需要的数据量也是不一样的,还是需要根据具体的神经网络的模型来看待,这是我的一点点看法!
Q3
董瑞宾-北京瑞远机器人-视觉工程师
NVIDIA有没有较低功耗的嵌入式平台,可以快速部署本地化处理深度学习的成熟的解决方案?
A3
罗华平:NVIDIA专门有一条产品线叫Tegra,这是NVIDIA嵌入式的一个解决方案。目前我们NVIDIA的嵌入式平台有Jetson TX1和TX2两个产品,这两个产品的功耗非常低,大概是10W左右的功耗,但是计算力非常强,它实际上是一个SoC,是ARM + GPU这样一个架构,能够自己独立运行操作系统,独立做很多计算。目前如果你在大的GPU上训练好的神经网络,可以直接部署在我们的TX1和TX2去做线上的推理,像无人机、机器人甚至一些自动驾驶的方案都在采用我们TX1和TX2的解决方案。
Q4
王武峰-七彩虹科技-技术经理
目前DL各种框架(framework)比较繁多,NV是否会认为这种情况会持续下去?
A4
吴磊:我们都知道现在做Deep Learning有非常多的framework和非常多的方法。不同的framework实际上是针对一些不同的应用场景,比如caffe,它主要是针对CNN网络做图像方面的一些应用。对于“这种情况是否会持续下去”的问题,我觉得从NVIDIA角度来说,没有办法去回答这个问题。但是我们知道现在GPU是支持所有主流的framework的加速,而且还在进一步扩大这个名单,同时NVIDIA的工程师会和这些framework的工程师一起去优化这些规模,去实现更好的加速效果。
Q5
snow-AMD-高级软件工程师
对于DL 的各种frameworks caffe/tensorflow/mxNet/torch, cuda 版本,cudnn, cublas,是否只有采用一个版本就能做到所有framework 都适用,可以达到兼容性。
A5
罗华平:确实是这样,NVIDIA的目的是通过同一个版本的cuDNN、cuBLAS和Cuda来支持所有的framework框架,这是NVIDIA的目标。可能每个框架的适配时间会略微有点差别。比如说我们现在最新的cuDNN版本是7.1,再过上一段时间,所有的框架都会引入7.1,这是我们的目标,当然时间上确实还会有点差异,比如TensorFlow会快一点,Caffe会慢一点等这些情况也会出现。但是总体来讲,我们一个版本的这些库都会支持所有的框架。
Q6
刘博-北京思普科股份有限公司-AI工程师
深度学习平台的模型部署一般具体如何实施,还有就是都需要注意哪些?
A6
罗华平:这个问题可以这么来看,NVIDIA刚才也介绍了,可以提供一个端到端的解决方案,从训练到线上的推理,特别是在训练平台上,我们有自己的一体机。DGX系列有DGX-1的服务器以及DGX Station工作站系列,这个系列最大好处就是已经预装了操作系统,预装了针对GPU优化好的各种框架,Caffe、TensorFlow等等。这样用户部署起来就会非常简单,只需要简单的开启设施就可以选择你使用的深度学习框架,比如Caffe、TensorFlow等等,通过DOC的方式,只需把这个框架拉下来,就可以进行深度学习。
在训练的时候选择什么样的网络模型,要根据自己的实际情况来看,可以选择Google Net、AlexNet等网络模型上进行一些修改来适应你的深度学习目标。同时需要准备相应的数据才能够去进行训练。
除此之外,我们还提供一个叫做DIGITS,基于web UI的图形训练平台,它也可以在DGX服务器上运行。它可以通过图形界面的方式来选择你的神经网络模型,选择你的数据,你可以采用几个GPU来做训练,非常方便,训练的过程也可以通过图形化的方式显示出来。对于在训练这一端,如果用户对于这些框架的部署不是特别熟悉,建议你采用DGX一体机来做深度学习的训练。对于训练好的模型,可以用我们的TensorRT来进行优化以及部署到不同的GPU平台上去,我们可以支持嵌入式的平台DIGITS、TSPACTS2,也可以支持低功耗的GPU P4或者是其他的大功耗GPU等等。