65.9K
CodeProject 正在变化。 阅读更多。
Home

软件 AI 加速器:免费提升 AI 性能

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2022年4月29日

CPOL

13分钟阅读

viewsIcon

27731

本文介绍了在 Intel Xeon 上运行的软件 AI 加速器的性能数据。

数据的指数级增长满足了人工智能的巨大需求,并使其从一个小众领域走向无处不在。同样重要的是,AI 的增长也对计算机系统的性能提出了更高的要求。这不仅导致 AI 加速被整合到 CPU、GPU 和 FPGA 等常见芯片架构中,还催生了一类专用的硬件 AI 加速器,专门用于加速人工神经网络和机器学习应用。虽然这些硬件加速器可以带来显著的 AI 性能提升,但对于相同的硬件配置,软件 AI 加速器能够带来更高数量级的 AI 性能提升,涵盖深度学习、经典机器学习和图分析。更重要的是,这种由软件优化驱动的 AI 性能提升是免费的,几乎不需要修改代码、花费开发者时间或增加额外硬件成本。

让我们尝试可视化通过软件 AI 加速实现的 10-100 倍性能提升所带来的成本节约范围。例如,许多领先的流媒体服务拥有数万小时的内容。它们可能希望使用图像分类和对象检测算法进行内容审核、文本识别和名人识别。分类标准也可能因国家/地区而异,具体取决于当地习俗和政府法规,并且基于新节目和规则变化,可能需要每月对约 10% 的内容重复此过程。根据在领先的云服务提供商上运行这些 AI 算法的公开价格,即使软件 AI 加速器能带来 10 倍的性能提升,每月也能节省数百万美元**

对于自动字幕生成和推荐引擎等其他 AI 服务,也可以实现类似的成本节约,而对于性能提升 100 倍的用例,节约的成本会更高。尽管您的特定 AI 工作负载可能要小得多,但节约的成本仍然可能相当可观。

软件决定了计算平台的最终性能,因此软件加速是实现“AI 无处不在”的关键,其应用涵盖娱乐、电信、汽车、医疗等领域。

什么是“软件 AI 加速器”,它与硬件 AI 加速器相比如何?

软件 AI 加速器是指在相同的硬件配置下,通过软件优化实现的 AI 性能提升。软件 AI 加速器可以将平台在各种应用、模型和用例上的速度提升 10-100 倍。

AI 工作负载日益多样化,这催生了对各种AI 优化硬件架构的商业需求。这些可以分为三大类:AI 加速 CPU、AI 加速 GPU 和专用硬件 AI 加速器。如今市场上存在这三类硬件的多种示例,例如带有 DL Boost 的 Intel Xeon CPU、带有 Neural Engine 的 Apple CPU、带有 Tensor Cores 的 Nvidia GPU、Google TPU、AWS Inferentia、Habana Gaudi 以及由传统硬件公司、云服务提供商和 AI 初创公司共同开发的许多其他产品。

尽管 AI 硬件取得了巨大进步,但 AI 模型复杂性的增长速度远远超过了硬件的进步。大约三年前,ELMo 这样的大型语言模型(Natural Language AI model)“只有”9400 万个参数,而今年,最大的模型已经达到了 1 万亿个参数。AI 的指数级增长意味着即使计算性能提升 1000 倍也可能被轻易消耗,以解决日益复杂和有趣的用例。因此,只有通过软件 AI 加速器驱动的数量级性能提升,才有可能解决世界性难题并实现“AI 无处不在”的终极目标。

硬件加速就像用最新的、最好的功能升级您的自行车,而软件加速更像是拥有一种全新的旅行方式,例如超音速喷气机。

本文专门阐述了在 Intel Xeon 上运行的软件 AI 加速器的性能数据。然而,我们相信在其他 AI 平台(从 AI 加速 CPU 和 GPU 到专用硬件 AI 加速器)上也能实现同等规模的性能提升。我们计划在未来的文章中分享我们其他平台的性能数据,同时也欢迎其他供应商分享他们的软件加速结果。

AI 软件生态系统 — 高性能、高效率、开放

随着 AI 用例和工作负载在视觉、语音、推荐系统等领域不断增长和多样化,Intel 的目标是提供无与伦比的 AI 开发和部署生态系统,使每位开发人员、数据科学家、研究人员和数据工程师都能从边缘到云端,尽可能无缝地加速他们的 AI 之旅。

我们相信,一个端到端的 AI 软件生态系统,建立在开放、标准化的、可互操作的编程模型基础上,是将 AI 和数据科学项目扩展到生产环境的关键。这一核心理念是我们三管齐下的 AI 战略的基础。

  1. 构建广泛的 AI 软件生态系统 — 首先,拥抱当前的 AI 软件生态系统对我们至关重要。我们希望每个人都能使用他们在深度学习、机器学习和数据分析中熟悉的软件,例如从 TensorFlow 和 PyTorch,到 SciKit-Learn 和 XGBoost,再到 Ray 和 Spark。我们已对这些框架和库进行了大量优化,以帮助它们在 Intel 平台上实现数量级的性能提升,从而提供即插即用的 10-100 倍软件 AI 加速。
  2. 实施端到端的数据科学和 AI 工作流 — 第二,我们希望通过一系列优化的工具来创新和交付,满足您的所有 AI 需求,包括数据准备、训练、推理、部署和扩展。例如,Intel oneAPI AI Analytics toolkit 可加速端到端数据科学和机器学习管道,Intel distribution of OpenVINO toolkit 可将高性能推理应用程序部署从设备到云端,而 Analytics Zoo 可将您的 AI 模型无缝扩展到拥有数千个节点的集群,用于分布式训练或推理。
  3. 提供无与伦比的生产力和性能 — 最后,我们提供的工具可在各种 AI 硬件上进行部署,其基础是开放、标准化的统一oneAPI 编程模型和组成库。当今市场上众多的硬件 AI 架构,每种都有独立的软件堆栈,这对于开发者生态系统来说是一种低效且不可扩展的方法。oneAPI 行业倡议鼓励跨行业合作制定 oneAPI 规范,以在所有加速器架构中提供通用的开发者体验。

深度学习、机器学习和图分析中的软件 AI 加速器

让我们深入探讨我们三管齐下的 AI 战略的第一部分 — 软件 AI 加速器。我们广泛的软件优化工作为数据科学家提供了一种简单高效地实现其算法的方法,这些算法由操作或内核图组成。我们的库和工具在跨操作的内核优化(例如:有效利用 SIMD 寄存器、矢量化、实现卷积时的缓存友好型数据访问)和图级别优化(使用批量归一化折叠、卷积/ReLU 融合和卷积/求和融合等技术)方面都提供了支持。有关我们 SW 优化技术的更详细信息,请参阅此讲座

虽然有些人可能会觉得实现细节很有趣,但我们已经完成了繁重的工作,为开发人员抽象了这些优化,因此他们无需处理其中的复杂性。无论是在深度学习、机器学习还是图分析中,这些 Intel 优化都旨在实现巨大的性能提升。

深度学习

通过oneDNN 库实现的 Intel 软件优化为几个流行的深度学习框架带来了数量级的性能提升,并且大部分优化已经合并到默认框架发行版中。然而,对于 TensorFlow 和 PyTorch,我们也维护单独的 Intel 扩展,以缓冲尚未合并的先进优化。

  • TensorFlow — Intel 优化在图像分类推理方面带来了 16 倍的提升,在对象检测方面带来了 10 倍的提升。基线是标准的 TensorFlow,并进行了基本的 Intel 优化,这些优化已合并到 TensorFlow Eigen 库中的函数。

上图:Platinum 8380:1 节点,2 个 Intel Xeon Platinum 8380 处理器,总共 1 TB(16 个插槽/64GB/3200)DDR4 内存,uCode 0xd000280,HT 开启,Turbo 开启,Ubuntu 20.04.1 LTS,5.4.0-73-generic1,Intel 900GB SSD 操作系统驱动器;ResNet50v1.5、FP32/INT8、BS=128,https://github.com/IntelAI/models/blob/master/benchmarks/image_recognition/tensorflow/resnet50v1_5/README.md;SSDMobileNetv1、FP32/INT8、BS=448,https://github.com/IntelAI/models/blob/master/benchmarks/object_detection/tensorflow/ssd-mobilenet/README.md。软件:Tensorflow 2.4.0(用于 FP32)和 Intel-Tensorflow(icx-base)(用于 FP32 和 INT8),由 Intel 于 2021 年 5 月 12 日测试。结果可能有所不同。有关工作负载和配置,请访问 www.Intel.com/PerformanceIndex

  • PyTorch — Intel 优化在图像分类方面带来了 53 倍的提升,在推荐系统方面带来了近 5 倍的提升。我们已将大部分优化与 oneDNN 合并到 PyTorch 中,同时还维护了单独的 Intel Extension for PyTorch,以缓冲尚未合并的先进优化。因此,在此次比较中,我们通过仅保留基本 Intel 优化且不包含 oneDNN 的 PyTorch 来创建了一个新的基线。

上图:Platinum 8380:1 节点,2 个 Intel Xeon Platinum 8380 处理器,总共 1 TB(16 个插槽/64GB/3200)DDR4 内存,uCode 0xd000280,HT 开启,Turbo 开启,Ubuntu 20.04.1 LTS,5.4.0-73-generic1,Intel 900GB SSD 操作系统驱动器;ResNet50 v1.5、FP32/INT8、BS=128,https://github.com/IntelAI/models/blob/icx-launch-public/quickstart/ipex-bkc/resnet50-icx/inference;DLRM、FP32/INT8、BS=16,https://github.com/IntelAI/models/blob/icx-launch-public/quickstart/ipex-bkc/dlrm-icx/inference/fp32/README.md。软件:PyTorch v1.5(无 DNNL 构建,用于 FP32)和 PyTorch v1.5 + IPEX(icx)(用于 FP32 和 INT8),由 Intel 于 2021 年 5 月 12 日测试。结果可能有所不同。有关工作负载和配置,请访问 www.Intel.com/PerformanceIndex

  • MXNet — Intel 优化在图像分类方面带来了 815 倍和 500 倍的提升。MXNet 的情况也与 TensorFlow 和 PyTorch 不同。我们已将所有优化与 oneDNN 合并。因此,在此次比较中,我们创建了一个没有任何 Intel 优化的新基线。

上图:Platinum 8380:1 节点,2 个 Intel Xeon Platinum 8380 处理器,总共 1 TB(16 个插槽/64GB/3200)DDR4 内存,uCode 0xd000280,HT 开启,Turbo 开启,Ubuntu 20.04.1 LTS,5.4.0-73-generic1,Intel 900GB SSD 操作系统驱动器;ResNet50v1、FP32/INT8、BS=128,https://github.com/apache/incubatormxnet/blob/v2.0.0.alpha/python/mxnet/gluon/model_zoo/vision/resnet.py;MobileNetv2、FP32/INT8、BS=128,https://github.com/apache/incubatormxnet/blob/v2.0.0.alpha/python/mxnet/gluon/model_zoo/vision/mobilenet.py。软件:MXNet 2.0.0.alpha(无 DNNL 构建,用于 FP32)和 MXNet 2.0.0.alpha(用于 FP32 和 INT8),由 Intel 于 2021 年 5 月 12 日测试。结果可能有所不同。有关工作负载和配置,请访问 www.Intel.com/PerformanceIndex

机器学习

Scikit-learn 是 Python 中一款流行的机器学习软件库。它提供了各种分类、回归和聚类算法,包括支持向量机、随机森林、梯度提升和 K-Means。我们能够通过高达 100-200 倍的性能提升来显著增强这些流行算法的性能。这些性能提升通过 Intel Extension for Scikit-learn 和 Intel oneAPI Data Analytics Library (oneDAL) 提供。

图分析

图分析是指用于探索大型图数据库(如社交网络、互联网和搜索、Twitter 和 Wikipedia)中条目之间关系强度和方向的算法。常用的图分析算法包括单源最短路径、广度优先搜索、连通分量、PageRank、介数中心性和三角形计数。例如,Intel 优化在三角形计数算法方面显示出显著的改进。随着图的增大,优化级别也会提高,对于接近 5000 万个顶点和 18 亿条边的最大图,性能提升高达 166 倍。这篇文章更全面地概述了 Intel 对其他几种图分析算法的优化。

上图:Intel Xeon Platinum 8280 CPU @ 2.70 GHz,2×28 核,HT:开启;有关工作负载和配置,请访问 www.Intel.com/PerformanceIndex。数据集:https://gihub.com/sbeamer/gapbs | https://snap.Stanford.edu/data

AI 无处不在 — 软件 AI 加速的应用

要用 AI 解决问题,需要一个端到端的流程。我们从数据开始,每个用例都有其独特的 AI 数据管道。AI 从业者需要摄取数据,有时通过机器学习进行特征工程进行预处理,使用深度学习或机器学习训练模型,然后部署模型。Intel oneAPI AI Analytics Toolkit 提供了高性能的 API 和 Python 包,用于加速这些管道的所有阶段,并通过软件 AI 加速实现大幅提速。在这篇文章中,我们将深入探讨两个真实世界的例子(美国人口普查和 PLAsTiCC 天文分类),其中 Intel oneAPI AI Analytics Toolkit 帮助数据科学家加速他们的 AI 管道。

尽管我们已经看到软件 AI 加速器已经在为 AI 的增长及其在各个领域和用例的普及提供关键的性能改进,但我们仍有进一步发展的机会。Intel 正在致力于编译器技术、内存优化和分布式计算,以推动进一步的软件 AI 加速。整个 AI 软件社区也有机会共同努力,真正释放软件 AI 加速器的力量 — Intel 和其他硬件供应商在底层软件和框架优化方面领先,软件供应商在更高级别的优化方面领先,然后可以与行业标准的中间表示结合。

我们还鼓励 AI 系统构建者更加重视软件,并鼓励开发人员和从业者不懈地追求 AI 性能加速机会。

(1) 始终使用最新版本的深度学习和机器学习框架(TensorFlow、PyTorch、MXNet、XGBoost、Scikit-learn 等),其中已包含许多 Intel 优化。

(2) 为了获得更高的性能,请使用框架的 Intel 扩展,其中包含所有最新优化,并且与您现有的工作流完全兼容。

了解更多关于构成Intel AI 软件套件的即插即用框架优化和高性能端到端工具,并将您的 AI 工作流提速高达 100 倍!

软件 AI 加速器与持续的硬件 AI 加速相结合,最终可以实现“AI 无处不在”的未来,创造一个更智能、更互联、对所有居民都更好的世界。

声明与免责条款

性能因使用、配置和其他因素而异。更多信息请访问 www.Intel.com/PerformanceIndex​​。性能结果基于测试时显示的配置,可能不反映所有公开可用的更新。有关配置详细信息,请参阅备份。没有产品或组件可以绝对安全。您的成本和结果可能会有所不同。Intel 技术可能需要启用硬件、软件或服务激活。© Intel Corporation。Intel、Intel 徽标和其他 Intel 标志是 Intel Corporation 或其子公司的商标。其他名称和品牌可能是他人的财产。 

** 此计算是基于公开信息(a)领先流媒体提供商(如 Netflix、Amazon Prime、Disney 等)的流媒体内容小时数和运营国家/地区,以及(b)领先美国 CSP(包括 AWS、Microsoft Azure 和 Google Cloud 等)上使用计算机视觉和 NLP AI 服务的成本进行的估算。此估算仅用作说明问题范围和潜在成本节约的参考,Intel 不保证其准确性。您的成本和结果可能会有所不同。

Wei Li 是 Intel 机器学习软件与性能部门的副总裁兼首席架构师。

© . All rights reserved.