MLPerf结果证实至强® 可有效助力深度学习训练
- 核心与视觉计算事业部副总裁Wei Li通过博客回顾了英特尔这几年为提升深度学习性能所做的努力。
- 目前根据英特尔® 至强® 可扩展处理器的MLPerf结果显示,英特尔® 至强®可扩展处理器已超出性能阈值,对于希望在基础设施上运行多个工作负载的数据科学家,因为他们无需投资购买专用硬件,这款处理器是一个有效选择。
- 20 多年来,我一直致力于在超级计算机、数据库服务器和移动设备等平台上对计算机性能进行优化与基准测试。突出你构建的产品的性能结果,然后与业内其他产品进行比较,这个过程总是充满乐趣。许多人对 SPEC*、LINPACK* 和 TPC* 等名称已经耳熟能详。现在,MLPerf* 填补了机器学习基准测试的空白。
- 看到团队提交的英特尔® 至强® 可扩展处理器 MLPerf 结果,我感到很兴奋,因为深度学习的用户端和计算机系统开发端正是我们的工作范围。这些结果显示,英特尔® 至强® 可扩展处理器已超出性能阈值,对于希望在基础设施上运行多个工作负载的数据科学家,这款处理器是一个有效选择,因为他们无需投资购买专用硬件1 2 3。
- 回到 2015 年,我的团队负责研究移动设备。我们不得不聘请测试员亲自玩手机游戏。对于测试员来说,这项工作一开始挺有意思,但逐渐变得无聊且成本高昂。曾有一名测试员在聘用当天就辞职了。我们的团队创建了一个机器人来测试手机游戏,并采用深度学习技术。游戏测试机器人可以自动玩游戏,发现的漏洞数量比人类测试员更多。我们想要在实验室机器上训练神经网络,但这些机器的速度不够快。我必须为团队分配购置 GPU 的预算,这个 GPU 的版本早于 MLPerf 参考 GPU4。
- 如今,CPU 能够支持深度学习训练和推理。针对各种 MLPerf 深度学习训练工作负载,我们的 MLPerf 英特尔® 至强® 可扩展处理器结果毫不逊色于 MLPerf 参考 GPU41 2 3。例如,英特尔提交的单系统双路英特尔® 至强® 可扩展处理器结果在 MLPerf 图像分类基准测试 (Resnet-50) 中取得 0.85 分1;在推荐基准测试(神经协同过滤,NCF)中取得 1.6 分2;在强化学习基准测试 (mini GO) 中取得 6.3 分3。在所有这些分数中,参考 GPU 上的参考实施分数是 1.0 分4。对于上述所有结果,我们使用的是当今市场中常用的数值精度 FP32。从上述 MLPerf 结果可以看出,游戏测试机器人现在可以在英特尔® 至强® 可扩展处理器上轻松进行训练。
- 深度学习和机器学习领域继续从使用卷积神经网络 (CNN) 的图像处理和使用循环神经网络 (RNN) 的自然语言处理转向使用 MLP 层和通用矩阵乘法的推荐系统、强化学习(混合 CNN 和仿真)以及包含深度学习和传统机器学习的混合模型。通用 CPU 不仅能够运行现有非深度学习工作负载,也可以很好地适应不断变化的环境。
- 企业已采用 CPU 进行深度学习训练。例如,Datatonic* 今天发表的博客中写道,某排名前五的英国零售商使用由英特尔® 至强® 可扩展处理器支持的 Google Cloud* 虚拟机,当运行用于生产环境的神经网络推荐系统时,可实现高达 11 倍的成本节省和 57% 的性能改进5。CPU 也可以适应许多领域要求的大内存模型。制药公司诺华使用英特尔® 至强® 可扩展处理器来加快多尺度卷积神经网络 (M-CNN) 的训练,处理 10,000 张高内涵细胞显微图像(此类图像比常见 ImageNet* 图像大得多),将训练时间从 11 小时缩短到 31 分钟6。
- 正如在 2018 年超级计算大会上所展示的,HPC 客户使用英特尔® 至强® 处理器进行分布式训练。举例来说,GENCI/CINES/INRIA 使用 128 个基于双路英特尔® 至强® 处理器的系统,在包含 1200 万张图像的 1.5TB 数据集上训练 30 万个物种的植物分类模型7。DELL* EMC* 和 SURFSara 使用英特尔® 至强® 处理器将 DenseNet-121 模型的训练时间缩短到 11 分钟8。CERN* 使用 TACC Stampede 2 集群(英特尔® 至强® 铂金 8160 处理器,英特尔® OPA)的 128 个节点与 3D 生成式对抗网络 (3D GAN) 展示分布式训练,实现 94% 的扩展效率9。
- 在过去几年里,用于深度学习的 CPU 硬件和软件性能已提高几个数量级。曾要花费数天甚至数周时间的训练,现在只需数小时甚至数分钟即可完成。这种程度的性能提升是通过硬件和软件组合实现的。例如,当代英特尔® 至强® 可扩展处理器增添了 AVX-512 指令集(更长的矢量扩展),允许大量操作并行完成,还增加了大量内核,机器摇身一变,成为一台迷你超级计算机。下一代英特尔® 至强® 可扩展处理器新增英特尔® 深度学习加速:更高吞吐量、更低数值精度指令可加速深度学习推理。对于软件,在相同的英特尔® 至强® 可扩展处理器上,基线开源深度学习软件和英特尔® 优化软件之间的性能差异可高达 275 倍10(昨天我在英特尔® 架构日论坛上的演示说明了这一点)。
- 在过去几年里,英特尔一直与深度学习框架开发人员合作,希望针对英特尔® 处理器优化众多热门开源框架,如 TensorFlow*、Caffe*、MXNet*、PyTorch*/Caffe2*、PaddlePaddle* 和 Chainer*。英特尔还设计了一个框架,适用于 SPARK* 的 BigDL,和用于推理的英特尔® 深度学习部署工具包。由于内核计算是线性代数,因此我们基于英特尔® 数学核心函数库 (MKL) 多年的高性能计算经验,为深度学习专门创建了一个新的数学库:面向深度神经网络的英特尔® 数学核心函数库(英特尔® MKL-DNN)。通过将英特尔® MKL-DNN 集成到框架中,再加上为了完全利用基础硬件功能而对框架进行的额外优化,软件性能实现大幅提升。
- 经常有人问我,CPU 比加速器快还是慢。当然,加速器有一定的优势。对于特定领域,如果加速器的速度连 CPU 都比不上,那么根本就不能称为加速器。即便如此,考虑到深度学习工作负载越来越多样化,有时候,CPU 的速度可能持平或者更快,同时保留对 CPU 价值主张至关重要的灵活性。因此,对于那些不想投资加速器的客户来说,更为贴切的问题是 CPU 运行深度学习的性能是否足够好,可以将 CPU 作为有效选择。这些初步 MLPerf 结果1 2 3 以及客户的示例证明,CPU 的确可以有效地用于训练。英特尔的战略是提供通用 CPU 和加速器,以便满足广泛客户的机器学习需求。
- 展望未来,我们将继续为未来的 CPU 提供新的人工智能和深度学习功能,如英特尔® 深度学习加速和用于训练的 bfloat16,并进行其他软件优化。