浪潮张清:面向人工智能的计算解决方案

4.计算模式,对于训练平台,多个节点如果同时训练将采用分布式并行的方式,比如采用MPI+CUDA计算模式;对于线上采用Spark/Hadoop+CUDA计算模式。

针对平台层,浪潮提供全线AI计算产品支持,如2 GPU服务器NF5280M4,主要作为线上推理识别用。还有支持训练的4 GPU服务器NF5568M4, 8 GPU服务器AGX-2,还有我们跟百度联合研制的SR-AI Rack,单GPU BOX实现16 GPU并行,整机柜实现64块GPU并行。针对线上大规模部署,要求低功耗,我们也设计了FPGA板卡F10A,整个卡功耗可以做到35瓦,性能达到1.5TFlops。目前浪潮是领先的AI计算厂商,很多用户在采用浪潮的计算产品,在大型互联网市场AI产品市场占有率达到80%以上。

管理层面临的挑战及解决方案

整个系统部署好之后,既有CPU计算节点,也有GPU计算节点,对整个计算系统我们如何有效的管理起来,其面临的挑战有几个方面:

第一,针对不同的计算平台和计算设备,如CPU、GPU或者FPGA,如何进行有效的管理。

第二,针对不同的计算任务和计算框架,如何进行合理的调度。

第三,针对整个系统和不同的计算作业,如何进行监控。

应对上述三个方面的挑战,浪潮设计的深度学习管理系统AIStation可以实现五大功能:深度学习框架的快速部署、深度学习训练任务的管理、GPU 与CPU资源的调度、系统资源与健康状态的监控、应用特征分析。

框架层面临的挑战及解决方案

目前开源出来的深度学习框架非常多,如Caffe、TensorFlow、MXNet、Torch等等,框架众多,如何选择?选择一种框架还是选择多种?以及针对什么场景或者什么样的模型来选择什么样的框架,针对多大数据量,选择多机并行的框架。以上是我们针对深度学习框架所面临几个方面的挑战。

我们在选择框架的时候,实际上可以针对目前的一些主流框架做一个评测,之前我们跟美国某知名的互联网公司开展过联合测试,对他们所关心的深度学习框架做了一个测评。

我们把三个主流的框架Caffe、TensorFlow和MXNet部署到我们16 GPU BOX服务器平台上面,采用Imagenet数据集,测试Alexnet和GooLeNet两种典型网络。从测试结果来看当运行Alexnet网络时,Caffe性能最好,每秒可以训练图片张数达到4675张,16个GPU比单个GPU的加速比达到14倍,其次是MXNet,最后是TensorFlow。当运行GooLeNet时,MXNet性能最好,每秒可以训练的图片张数达到2462张,16个GPU比单个GPU的加速比达到12.7倍,其次是Caffe,最后是TensorFlow。从这个评测来看,基于不同的网络,所选择最优的框架是不一样的。

基本上可以有大致的一个原则来选择:我们会根据不同的场景和模型来选择至少一种深度学习框架,目前很难说一种框架能在所有的应用场景中表现最优,如果是图像方面的应用,主要采用Caffe、TensorFlow和MXNET这三种框架。如果是语音的话,可以选择CNTK,当然还有其他的框架。自然语言处理的话可以采用PaddlePaddle,针对大数据量的训练,采用单机训练的话时间会很长,有可能是几周或几个月训练出一个模型,需要采用分布式框架,如浪潮自研的Caffe-MPI,这个框架就实现了多机多GPU卡的并行训练。通过实际测试,Caffe-MPI采用16个GPU卡同时训练时,每秒可以处理的效率达到3061张,较单卡性能提升13倍,扩展效率达到81%,性能将近是TensorFlow的2倍,Caffe-MPI目前已经在Github上开源了,可以下载使用。

应用层面临的挑战及解决方案

应用层面临如下几个方面挑战:

一、如何利用深度学习的方法,提高识别的正确率,这里面会涉及到模型和算法的设计、数据预处理。

二、GPU编程,在训练程序的设计过程中会涉及到写部分的GPU的代码,比如我们会添加一些新的层,会写一些相对应的CUDA代码。

三、FPGA编程,在推理阶段,可能会采用FPGA平台,需要把应用从CPU迁移到FPGA上,采用OpenCL编程或者采用偏底层硬件编程语言Verilog,其编程的复杂度相对较高。

针对AI应用挑战,浪潮成立了两个联合实验室:Inspur-Intel中国并行计算联合实验室和Inspur-NVIDIA GPU 联合实验室,针对GPU、MIC、FPGA异构技术和AI应用进行研究,我们具备CPU+GPU,CPU+MIC,CPU+FPGA三大异构技术,可以帮助用户来设计深度学习的一些模型算法,进行GPU、MIC、FPGA应用的迁移和优化。

在AI方面,我们2014年就开始跟一些典型的互联网用户开展应用合作,如以图搜图应用,其核心算法是Kmeans,帮助用户实现从CPU到GPU上的迁移,核心算法性能提升35X,整体应用性能提升2.2倍。另外一个应用是关于语音方面的,主要是语音模型的训练,采用深度学习的方法,我们帮助用户从单机GPU版本实现16 GPU卡的多机并行版本,性能提升13倍,大大缩短整个深度学习训练的时间,实现支持万小时以上语音数据训练。