前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >百度公开硬件基准 DeepBench,推动深度学习专用芯片研发竞争

百度公开硬件基准 DeepBench,推动深度学习专用芯片研发竞争

作者头像
新智元
发布2018-03-23 16:38:54
1.1K0
发布2018-03-23 16:38:54
举报
文章被收录于专栏:新智元新智元

2016年10月18日, 世界人工智能大会技术分论坛,特设“新智元智库院长圆桌会议”,重量级研究院院长 7 剑下天山,汇集了中国人工智能产学研三界最豪华院长阵容:美团技术学院院长刘江担任主持人,微软亚洲研究院常务副院长芮勇、360人工智能研究院院长颜水成、北京理工大学计算机学院副院长黄华、联想集团副总裁黄莹、Intel 中国研究院院长宋继强、新华网融媒体未来研究院院长杨溟联袂出席。

【新智元导读】百度开源 DeepBench 基准测试工具,AI研究者和芯片制造商可以用它测试不同的芯片运行软件时的性能,尤其是哪款硬件加速深度学习性能最好。从计算角度看,深度学习多样化而且演化迅速,就连微软也刚刚推出了针对深度学习的FPGA系统。百度的这次开源将推动深度学习专用芯片蓬勃发展。想了解深度学习硬件与技术发展?10 月 18日下午,来世界人工智能大会技术分论坛,向 Intel 中国研究院院长宋继强提问。

DeepBench 介绍以及测试结果

深度学习生态系统包括不同的模块,百度开源的DeepBench位置在哪里呢?

如下图,顶部是深度学习框架(Deep Learning Frameworks),例如百度的PaddlePaddle, Theano, TensorFlow, Torch等能用于建立深度学习模型。为了训练这些模型,框架需要利用基础神经网络库(Neural Network Libraries)例如NVIDIA的cuDNN和英特尔的MKL。最后,模型要在硬件平台例如NVIDIA CPU或英特尔的Xeon Phi处理器上训练。

DeepBench 使用神经网络库测量基础运算在不同硬件上的表现。它对深度学习框架和应用性的深度学习模型不起作用,也没法用于测量训练整个模型所需的时间。为不同任务建立的不同模型的性能特性彼此间差别很大。因此,DeepBench测试的是深度学习模型训练中的基础运算。测试这些运算有助于提高硬件供应商的意识,也有助于软件开发者了解深度学习训练的瓶颈。

DeepBench 包括一系列基础操作(稠密矩阵相乘、卷积和通信)以及一些循环层类型。在开源代码中有一个 Excel 表格描述了这些操作的大小。前向和后向的运算都会被测试。该基准的第一版将注重在 32 位浮点算法中的训练表现。未来的版本可能扩展到推理工作负载(inference workloads)和更低精度的算法。我们将使用供应商提供的库,即使存在更快的独立库或公开了更快的结果。因为大部分用户默认使用供应商提供的库,这种库更能代表用户体验。

百度发布在 4 个硬件平台上的结果:NVIDIA的 TitanX、M40、TitanX Pacal 和英特尔的 Knights Landing。硬件供应商或独立用户可运行大致的基准,并将结果输入到表格中。 我们在DeepBench库中提供了结果的概述以及所有的结果。

稠密矩阵相乘计算方法及测试结果

现在几乎所有深度学习网络都包含稠密矩阵相乘。它们被用于执行全连接层和 vanilla RNN,以及为其他类型的循环层建立基石。有时它们也被用于快速执行自定义代码缺失的新类层。当执行 GEMM 运算 A * B = C 时,A 和 B 中的一个或两个都可随意换位。描述一个矩阵问题的常用术语是 triple(M,N,K), 该术语描述了矩阵的大小。下图描述了triple(M,N,K)如何对应相乘的矩阵。

卷积计算方法及测试结果

卷积构成了网络中图像和视频操作的绝大多数的浮点计算,也是语音和自然语言模型网络的重要部分,从性能角度看,它可能也是唯一最重要的层。卷积有 4 或 5 维的输入和输出,这些维提供了大量可能的排序。在该基准的第一版,我们只考虑了在 NCHW format 中的表现,即数据在图像、特征映射、行和列中的性能。

不同大小的过滤器和图像可选择不同的卷积计算方法,例如,direct approaches、基于矩阵相乘的方法、基于 FFT 的方法以及基于 Winograd 的方法。在该基准的第一版,我们不考虑不同方法的准确率,因为普遍共识是 32 位浮点计算对它们每个方法而言都是足够准确的。

循环层计算方法及测试结果

循环层总是由之前的运算与一元(unary)或二元(binary)运算这样的简单计算结合而成的——这些简单运算不是计算密集型的,通常只需占据总体运算时间的一小部分。然而,在循环层中,GEMM 和卷积运算相对较小,所以这些更小运算的成本变得有极大影响。如果开始计算就有一个很高的固定成本,那上述内容就尤其准确。也可以为循环矩阵使用额外的存储格式,因为转换成一个新的存储格式的成本可被分摊到循环计算的许多步骤上。如果能做到这一点,那么从一个自定格式转换或转换成一个自定义格式的时间应该被包含在整体时间之内。

在一个时间步骤内和跨序列的时间步骤上,这些因素会导致很多优化的可能性,因此测定运算的原始性能并不一定能够代表整个循环层的的性能。在这样的基准上,我们仅关注一个循环层,即使还存在其它更多的优化机会(如果考虑它们的层叠(stack))。

输入的计算不应该被包含在用于循环层计算的时间内,因为其可以作为一个大的乘法计算,然后被实际的循环运算所消化。所以在 h_t = g(Wx_t + Uh_t-1) 中,Wx_t 对于所有 t 的计算时间不应被包含在循环层的时间内。反向计算应该在考虑权重而非输入的基础上计算更新(update)。所有的循环工作完成以计算权重更新,所以同时考虑输入来计算更新会掩盖我们想要测定的内容。

vanilla RNN 的非线性应该是一个 ReLU。LSTM 的内在非线性应该是标准运算——门是 S 型函数,激活是双曲正切函数。LSTM 不应该有窥视孔连接(peephole connections)。

All-Reduce 计算方法及测试结果

现在的神经网络通常在多 GPU 或多系统与 GPU 并行的情况下训练,这主要有两个技术分类:同步和异步。同步技术依赖于保持参数和所有模型实例的同步,它通常要保证在优化步骤执行前,所有模型实例有一些梯度的备份。最简单运行这些计算结果的 Message Passing Interface (MPI) 被称为 All-Reduce。有很多可以执行 All-Reduce 的方法,我们可以依靠数字的排列、数据的大小和网络的拓扑结构来执行。这种基准测试的方式在执行时是没有限制的,所以它的结果是不确定的。异步的方法则非常的不同,在这个版本的基准测试中我们不会测试这些方法。

为了评估 All-Reduce,我们使用了下面的库和基准:NVIDIA's NCCL Ohio State University (OSU) Benchmarks。NCCL 库包括一组标准的通信程序。这个库支持在单个节点任意数量的 GPU 运行,并且它能在单个或多个进程中运行,但 NCC 程序不支持多节点下的 All-Reduce。为了能够在多节点下评估 All-Reduce,我们使用了 OSU 下的 benchmark。我们在三个执行过程中 (NCCL single process, NCCL MPI, OpenMPI) 报告了最短的延迟。

深度学习专用芯片研发火热,微软加入战场

目前为止,DeepBench还只能测试训练深度学习模型,但未来它可能测试用于图像和语音识别之类任务的“推论”模型。同时,DeepBench能提供在三种Nvidia GPU和一种Intel Xeon Phi处理器的基准化测试结果。

百度高级研究员Greg Diamos在一次采访中说,“百度希望DeepBench能鼓励更多的特定深度学习算法的处理器,例如语音和图像识别、翻译以及其它任务。我们希望这能降低更高性能处理器的障碍,GPU显然不是终点,我们希望这能鼓励竞争。”

深度学习神经网络的瓶颈在于计算机性能,虽然不断升级的CPU有助于深度学习模型,但计算机处理能力仍显不足。

其他公司,例如Google 和Wave Computing,就在为深度学习开发的处理器。Intel之前收购的 Movidius和Nervana Systems,也在模仿 GPU 的并行计算能力制作芯片,但是着眼于把数据更快转移和分摊给图像所需要的功能。

其中,作为 GPU 在算法加速上强有力的竞争者,FPGA 硬件配置灵活且单位能耗通常比 GPU 低。更重要的是,FPGA 相比 GPU 价格便宜。但是,使用 FPGA 需要具体硬件的知识,而许多研究者和应用科学家并不具备,因此 FPGA 常被视为一种行家专属的架构。

在前几天的Orlando的微软技术大会上,微软展示了由FPGA升级的定制芯片驱动的服务器于眨眼间完成Wikipedia上全部文字的直译。微软把这项技术成为“global hypescale”,能在1/10秒完成翻译500万篇文章共计30亿单词的翻译。

微软的定制可编程逻辑元件,或称可编程门阵列(FPGA),已经加入到每个计算节点。该公司意识到更智能、计算密集的技术需要后端更强大的计算能力。FPGA的好处在于,它可以为特定任务优化或调整,以便快速执行该任务,然后随着微软自有算法的改进快速重新配置。微软首席工程师Doug Burger说,它不仅能加快传送率,而且在四种高端CPU内核和四种FPGA主板的测试中,结果表明FPGA的耗电量仅为前者的四分之一。 微软首席执行官Satya Nadella称,设计新的计算基础设施的动力来自微软的人工智能方案,包括Cortana和bot 框架。他说,过去微软的目标是创造和获取数据,现在,同样的方法被应用于人工智能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档