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

在 Intel® FPGA 上进行机器学习

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2017年8月14日

CPOL

8分钟阅读

viewsIcon

15824

英特尔在人工智能(AI)开发领域拥有独特的优势——英特尔的 AI 生态系统通过提供统一的前端,支持从硬件到边缘设备的各种后端技术,为 AI 的各个方面提供解决方案。

引言

人工智能(AI)起源于古典哲学,并在计算领域徘徊了几十年。二十年前,AI 曾一度风靡,但随着技术停滞不前,兴趣逐渐减退。如今,技术正在迎头赶上,AI 的复兴程度远远超过了它过去短暂的风靡时期。这一次,计算能力、数据集和技术都能够提供支持,而英特尔在创新方面处于 AI 领域的领先地位。

在英特尔为 AI 发展做出贡献的众多技术中,现场可编程门阵列(FPGA)在各个领域都提供了独特而重要的价值主张。要理解英特尔® FPGA 当前和未来的能力,需要牢固掌握 AI 如何在总体上改变各行各业。

AI 正在改变各行各业

各行各业都受益于 AI。当今 AI 应用的成功复兴得益于三个关键因素:

  • 大型数据集
  • 近期 AI 研究
  • 硬件性能和能力

海量数据收集、改进的算法和强大的处理器相结合,使得当今机器学习、深度学习和整体人工智能领域正在持续快速发展。AI 应用现在涵盖了从数据中心到边缘设备(包括汽车、手机、相机、家用和办公电子产品等)的整个数据谱系,并渗透到技术的所有细分领域,包括:

  • 消费类设备
  • 企业效率系统
  • 医疗保健、能源、零售、交通运输等

AI 的一些重大影响体现在自动驾驶汽车、金融分析、监控、智慧城市和网络安全等领域。图 1 展示了 AI 在少数几个领域所产生的巨大影响。

图 1. AI 如何改变各行各业的示例。

为了支持 AI 当前和未来的发展,英特尔在其 AI 生态系统中提供了一系列 AI 产品。英特尔® FPGA 是这个生态系统的关键组成部分。

英特尔的 AI 生态系统和产品组合

作为技术领导者,英特尔提供了一个完整的 AI 生态系统,其关注点远超当今的 AI——英特尔致力于在未来深入推动 AI 革命。这是英特尔的首要任务,体现在内部研发以及重要收购上。FPGA 在这一承诺中发挥着重要作用。

英特尔全面、灵活且性能优化的机器学习和深度学习产品组合,涵盖了从硬件平台到终端用户应用的整个谱系,如图 2 所示,包括:

  • 英特尔® 数学核心库深度神经网络(Intel® MKL-DNN)
  • 深度神经网络计算库
  • FPGA 深度学习加速器库
  • Caffe* 和 TensorFlow* 等框架
  • 英特尔深度学习部署工具包等工具

图 2. 英特尔的机器学习和深度学习产品组合。

总而言之,英特尔为各种后端硬件平台提供了一个统一的前端,使用户能够使用一个设备开发系统,然后无缝切换到另一个更新、不同的硬件平台。英特尔 AI 生态系统和产品组合的这种全面性意味着英特尔能够独特地帮助各个级别的开发人员充分利用当前和未来的英特尔硬件平台的全部容量。这种方法使硬件和软件开发人员能够利用 FPGA 的机器学习能力,从而提高生产力并缩短设计周期。

英特尔® FPGA 的优势

英特尔® FPGA 提供了独特的价值主张,并且现在已支持英特尔的 AI 生态系统。如图 3 所示,英特尔® FPGA 提供了出色的系统加速,具有确定性的低延迟、功耗效率和面向未来的特性。

图 3. 英特尔® FPGA 为 AI 提供了独特的价值主张。

系统加速

如今,人们正试图利用 CPU 和 GPU 架构来实现更多的总运算处理能力,这有助于提高计算性能。FPGA 关注的是系统性能。英特尔® FPGA 通过控制数据路径来加速和辅助收集和处理我们周围海量信息的计算和连接。除了用作计算卸载外,FPGA 还可以直接接收数据并在不通过主机系统的情况下进行内联处理。这使得处理器可以管理其他系统事件,并提供更高的实时系统性能。

实时性至关重要。AI 通常依赖于实时处理来得出即时结论并准确响应。想象一下,一辆自动驾驶汽车在另一辆车急刹车或一只鹿从灌木丛中跳出后等待反馈。考虑到涉及的数据量,及时性一直是一个挑战,延迟可能意味着对事件做出反应和完全错过它之间的区别。

FPGA 的灵活性使其能够提供确定性的低延迟(在所有系统条件下,消息发送和接收之间的时间上限是保证的)和高带宽。这种灵活性支持以最优方式为单个解决方案创建自定义硬件。无论数据接口是自定义还是标准,拓扑结构或精度要求如何,FPGA 都可以实现定义的精确架构,从而实现独特的解决方案和固定的数据路径。这同样也意味着出色的功耗效率和面向未来的特性。

功耗效率

FPGA 创建自定义解决方案的能力意味着它们可以创建节能的解决方案。它们能够通过消除计算中的瓶颈来解决特定问题,而不是通过固定架构来推动解决方案。

英特尔® FPGA 拥有超过 8 TB/s 的片上内存带宽。因此,解决方案倾向于将数据紧密耦合在设备内部,以便进行后续计算。这最大限度地减少了访问外部内存的需求,从而以显著更低的频率运行。这些更低的频率和高效的计算实现带来了强大而高效的解决方案。例如,与 CPU 相比,使用 AlexNet*(一种卷积神经网络)时,FPGA 的功耗降低高达 80%。

面向未来

除了系统加速和功耗效率外,英特尔® FPGA 还有助于实现系统的面向未来的特性。机器学习是一项动态变化的技术,不断发展和变化,英特尔® FPGA 提供了固定设备所不具备的灵活性。随着精度从 32 位下降到 8 位,甚至降至二进制/三元网络,FPGA 能够灵活地即时支持这些变化。随着下一代架构和方法的开发,FPGA 将能够实现它们。通过重新编程 FPGA 的图像,其功能可以完全改变。专用 ASIC 可能会在长期内提供更高的总拥有成本(TCO),而且随着技术的快速发展,其产生的成本阈值越来越高,尤其是在 FPGA 能够满足系统需求的情况下。

一些市场要求硬件具有长寿命和高可靠性,系统部署时间长达 5、10、15 年或更长时间,并且运行在恶劣环境下。例如,想象一下在街道上安装智能摄像头或在汽车中安装计算系统,并要求它们像 CPU 和 GPU 一样享有 18 个月的更新周期。FPGA 的灵活性使用户能够在不要求硬件更新的情况下,更新系统的硬件能力。这使得已部署产品的寿命更长。FPGA 具有长生产周期的历史,其器件已生产超过 15 到 20 年。它们已经在太空、军事和极高可靠性环境中使用数十年。

鉴于这些原因以及更多原因,各个级别的开发人员都需要了解英特尔的 AI 生态系统和产品组合如何利用英特尔® FPGA。这些知识将使开发人员能够使用英特尔® FPGA 来加速和延长 AI 应用的寿命和效率。

提高生产力并缩短设计周期

大多数开发人员都知道 FPGA 是灵活且强大的设备,提供广泛的用途。

  • 只要逻辑块足够多,FPGA 就可以变成任何数字电路。
  • 其灵活的平台支持其他设备无法有效支持的自定义系统架构。
  • FPGA 可以执行内联数据处理,例如,从视频摄像头或以太网流中进行机器学习,然后将结果传递给存储设备或进行进一步处理的进程。FPGA 可以同时并行执行计算卸载。

但并非所有开发人员都知道如何利用英特尔® FPGA 的潜力,或者他们可以以比以往更短的设计周期(如图 4 所示)来实现这一点。

图 4. 英特尔的 AI 生态系统现已支持 FPGA。

为了帮助开发人员将 FPGA 推向市场并运行机器学习工作负载,英特尔通过创建一套 API 层缩短了开发人员的设计时间。开发人员可以根据自己的专业水平与 API 层进行交互,如图 5 所示。

图 5. 开发人员的四种入口点

普通用户可以从 SDK 或框架级别开始。更高级的用户,希望构建自己的软件堆栈,可以进入软件 API 层。软件 API 层抽象了低级的 OpenCL™ 运行时,并且是库使用的相同 API。想要构建自己软件堆栈的客户可以在 C++ 嵌入式 API 层进入。想要在 FPGA 上实现更多功能(例如,支持异步并行计算卸载功能或修改源代码)的高级平台开发人员,可以在 OpenCL™ Host Runtime API 级别或英特尔深度学习架构库级别进入,如果他们想自定义机器学习库。

对于希望修改源代码并通过添加自定义原语来自定义拓扑的重度用户,有多种设计入口方法可供选择。开发人员可以使用传统的 RTL(Verilog 或 VHDL)来自定义解决方案,这对于 FPGA 开发人员来说很常见,或者使用 C/C++ 或 OpenCL™ 等更高级别的计算语言。通过为开发人员提供这些不同的入口点,英特尔使得各种技能水平的开发人员都能及时地实现 FPGA。

结论

英特尔在人工智能(AI)开发领域拥有独特的优势——英特尔的 AI 生态系统通过提供统一的前端,支持从硬件到边缘设备的各种后端技术,为 AI 的各个方面提供解决方案。此外,英特尔的生态系统现已完全支持 FPGA。由于 FPGA 的寿命长、灵活性和可重构性,英特尔® FPGA 提供了许多优势,包括系统加速机会、功耗效率和面向未来的特性。最后,为了推动当今和未来的 AI,英特尔 AI 解决方案为各种技能水平的开发人员提供了各种语言无关的入口点。

© . All rights reserved.