浪潮科大讯飞Altera用OpenCL实现深度学习加速

  11月17日,在正在举行的2015全球超级计算大会(SC15)上,浪潮联合全球可编程逻辑芯片巨头Altera,以及中国最大的智能语音技术提供商科大讯飞,共同发布了一套面向深度学习、基于AlteraArria 10 FPGA平台、采用OpenCL开发语言进行并行化设计和优化的深度学习DNN的语音识别方案。同时,此次发布也标志着浪潮成为全球领先的具备GPU、MIC和FPGA三项HPC异构计算应用能力的HPC系统厂商。

1

  深度学习,需要HPC“提速”

  让计算机拥有接近人类的智能水平是IT行业最伟大,也是最难实现的梦想,而深度学习则是通往人工智能的漫漫长路上一项重要的技术。深度学习的出发点是通过构建深层神经网络,模拟人脑神经元和神经突触的信息和数据传输及计算,在抽象出来的规则限定下,逐渐让机器像人一样理解真实的世界。

2

  不过,由于人脑每天能接触数以万计的信息并且在短短几秒内给出判断和反映,所以要实现让机器能真正像人类一样思考不仅依靠算法模型的精确,同时也需要媲美人脑计算效率的高性能计算技术。

  可以说,深度学习对计算力资源的需求如同“黑洞”一般永无止境,这使得近几年异构加速技术在该领域得到越加广泛的应用,协处理器运算速度的快速提升让深度学习技术得到了硬件层面的有力支持。

  FPGA,通用和专用之间的半定制化芯片

  FPGA(Field-ProgrammableGate Array,现场可编程门阵列)介于专用芯片和通用芯片之间,具有一定的可编程性,可同时进行数据并行和任务并行计算,在处理特定应用时有更加明显的效率。更重要的是,FPGA具有明显的性能功耗比优势,其能耗比是CPU的10倍以上、GPU的3倍。此外,可定制化也是FPGA的一大重要特性。

3

  正是因为具备极强的性能功耗比优势和定制化特点,FPGA在诸多领域得到应用,如逻辑控制,信号处理,图像处理等方面,最近更是在深度学习中的在线识别系统中开始尝试使用。

  不过,传统FPGA开发采用Verilog、VHDL等硬件描述语言,对开发者要求较高,开发周期也较长,因此在高性能计算应用受到限制。而采用OpenCL,利用软件高级语言和模型编程,开发周期可大幅缩短,对于一些应用可以实现几个人月完成,为FPGA的应用发展提供了更为广阔的平台。

4

  利用OpenCL实现基于FPGA平台的语音识别系统

  科大讯飞拥有中国最大的语音识别系统,在常用场景下准确率已达到98%,在业内领先。。为了进一步提升DNN算法的效率和性能,科大讯飞计划在语音识别业务中启用FPGA平台,而若性能符合要求,则将在未来建造一个上万规模的FPGA语音识别系统。科大讯飞技术总监于振华表示,深度学习模型的软件算法需要不断地微调和优化,随着时间的推移,固定功能的服务器加速器效率会变得越来越低,浪费空间和电力。相比之下,FPGA可以更加灵活的定制化,并且功耗更低。这也是科大讯飞决定将DNN算法移植到FPGA平台的重要原因。

5

  于是一项由浪潮、科大讯飞和Altera公司共同发起的合作诞生了——由Altera公司提供Altera Arria 10 FPGA平台,科大讯飞提供DNN识别算法,浪潮则负责完成基于FPGA 平台,采用OpenCL进行DNN的并行设计、迁移与优化。经过努力,三方最终完成了基于OpenCL的FPGA线上深度学习语音识别加速方案。该方案硬件平台采用CPU+AlteraArria 10 FPGA异构架构,软件完全采用高级编程模式OpenCL实现从CPU到FPGA的迁移,具备四大特点:

  高性能:处理100 bound数据,基于IntelXeon E5-2650 V2 双路CPU(启动16个线程),DNN运行时间为242.027s,而基于Altera ARRIA 10 FPGA,DNN运行时间为84.312s,性能加速2.871倍;

  低功耗:Altera Arria 10FPGA功耗为30W,Intel Xeon E5-2650 V2 双路CPU功耗为190W,FPGA功耗只有CPU的15.7%,在DNN 实际运行测试中,FPGA可实现30GFlops/W的高性能功耗比,能大大节省应用功耗成本;