账号:
密码:
CTIMES / 文章 /   
使用Alveo 加速器卡加速DNN
 

【作者: Xilinx】2019年01月24日 星期四

浏览人次:【3058】
  


Xilinx 深度神经网路(xDNN)引擎使用 Xilinx Alveo资料中心加速器卡提供高效能、低延迟的 DNN 加速。通过保持较低能源成本以及最大限度地减少运行过程中所需的特定加速器的数量,可以显着降低总体拥有成本。本文概述 xDNN 硬体架构和软体堆叠,以及支援高能效推论声明的基准资料,帮助读者实现Alveo资料中心加速器卡上的结果再创造。


资料中心应用的深度学习关联性

在过去几年中,深度学习方法在各种应用领域均取得了巨大成功。应用机器学习(ML)的一个领域是视觉和视讯处理。互联网上的视讯内容在过去几年中也迅速增长,对图像整理、分类和辨识方法的需求也相应增长。


卷积神经网路(CNN)是ML神经网路的一种,其一直是处理图像资料的有效方法,尤其是在资料中心部署的背景下。CNN图像网路可用於对云端中的图像进行分类和分析。在许多情况下,影像处理的延迟对最终应用至关重要,例如标记流视讯中的非法内容。


赛灵思深度神经网路(xDNN)引擎是一款可编程推论处理器,其能够在赛灵思Alveo 加速器卡上运行低延迟、高能效的推论。xDNN推论处理器通用CNN 引擎,支援各种标准的CNN 网路。


xDNN引擎通过xfDNN软体堆叠整合到诸如Caffe、MxNet和TensorFlow等ML框架中。在Alveo加速器卡上运行的xDNN处理引擎,能够以每秒GoogLeNet v1传输率4,000或更多图像的速度进行处理,意味着在Batch = 1时超过70%的运算效率。


正如该运算效率所述,运行在赛灵思 Alveo 加速器卡上的 xDNN,在落实低延迟推论方面优於 GPU 等加速平台。众所周知,GPU 平台能够通过同时批次处理多个图像来提高其效能;然而,虽然批次处理可以提高效能并减少所需的 GPU 记忆体频宽,但批次处理的??作用是延迟显着增加。


相比之下,xDNN处理引擎不依赖於批次处理来达到最大化的传输率效能。而是每个引擎独立运行,并且不共用权重记忆体。每个引擎在Batch = 1下运行,并且可以在单个Alveo加速器卡上实现多个引擎。因此,增加元件中 xDNN 引擎的数量仅增加了聚合元件 Batch = 1 的传输率。


xDNN架构概览

xDNN硬体架构如图1所示。每个xDNN引擎由一个脉动阵列、指令记忆体、执行控制器和元素级处理单元组成。引擎通过指令伫列从在主处理器上执行的命令软体接收张量指令。仅当目标网路改变时,CNN网路的指令(张量和记忆体操作)才改变。重复执行相同的网路,会重复使用先前载入的驻留在指令缓冲器中的指令。



图1 : xDNN 硬体架构
图1 : xDNN 硬体架构

xDNN 处理引擎架构亮点

· 双模式:传输率最隹化或延迟最隹化


· 命令级并存执行


· 硬体辅助图像分块


· 客制层支援(异质执行)


· 脉动阵列架构


传输率和延迟最隹化模式

xDNN处理引擎的架构特性之一是包括两种操作模式,一种用於传输率最隹化,另一种用於延迟最隹化。在传输率最隹化模式中,通过创建最隹化的处理引擎(PE)来利用资料流程并行性,以处理低效映射到一般脉动阵列的特定层。


例如,GoogLeNet v1的第一层是RGB层,占整体运算开销的近10%,不能有效地映射到有效运算网路其馀部分的脉动阵列。在此传输率最隹化模式中,xDNNv3 包括为三个输入通道定制的其他脉动阵列。这种变化的网路效应是更高的整体运算效率,因为可以在先前图像卷积和 FC 层完成其各自的处理的同时,运算下一图像的第一层。


对於需要最低单图像延迟的应用,使用者可以选择部署延迟最隹化版本的引擎。对於这些应用,可以调整 xDNN PE 管线以减少延迟。


命令级并存执行

xDNN 处理引擎为每种类型的命令(下载、Conv、池化、元素级和上传)提供专用的执行路径。如果网路图允许,则允许卷积命令与其他命令并行运行。某些网路图具有不同指令类型的并行分支,有时允许并行处理。例如,在 GoogLeNet v1 inception 模组中,3 x 3 最大池化层是一个层的主要实例,该层可以使用 xDNN 处理引擎与其他 1x1/3x3/5 x 5 卷积并行运行,图2 显示了 GoogLeNet v1 网路的 inception 模组。



图2 :  GoogLeNet v1 中的 Inception 层
图2 : GoogLeNet v1 中的 Inception 层

如图3 所示,软体可以与第二个分支的 3 x 3 卷积并行地调度 3 x 3 最大池化。



图3 : GoogLeNet v1 中 Inception 层的 xDNN 调度
图3 : GoogLeNet v1 中 Inception 层的 xDNN 调度

硬体辅助图像分块

xDNN 处理引擎具有内置的硬体辅助图像分块功能,用来支援具有大图像/启动大小的网路。xDNN 处理引擎允许跨宽度和高度的输入特性映射分块。如图4所示。



图4 : 硬体辅助图像分块功能
图4 : 硬体辅助图像分块功能

硬体辅助图像分块采用单个非资料移动指令(Conv、Pool、EW)并生成正确的微操作序列(下载、操作、上传)。通过将启动记忆体逻辑分区为两个区域(如双缓冲区),微操作在硬体中完全实现管线化。


通过异质执行客制网路支援

尽管 xDNN 处理引擎支援广泛的 CNN 操作,但新的客制网路仍在不断开发中 - 有时,FPGA 中的引擎可能不支援选择层/指令。由 xfDNN 编译器来辨识 xDNN 处理引擎中不受支援的网路层,并且可以在 CPU 上执行。


这些不受支援的层可以位於网路的任何部分 - 开始、中间、结束或分支中。图5显示了编译器如何将处理划分到 xDNN 处理引擎甚至 CPU 中的各种 PE 上



图5 : 由编译器分区的处理
图5 : 由编译器分区的处理

脉动阵列架构

xDNN处理引擎利用诸如“SuperTile”论文(1)中描述的技术来达到高工作频率。这个SuperTile DSP 巨集提供了一个关系放置的宏,其可以进行分块以构建更大的运算阵列,例如矩阵乘法和卷积,这是 CNN 运算最为密集的操作。


图 6 显示了映射到FPGA中的DSP48和CLB-M(LUTRAM)分块的逻辑处理元件的实例。该巨集单元是 xDNN 脉动阵列中的基本处理单元。



图6 : DSP 宏实例中的 MAC 和权重包装
图6 : DSP 宏实例中的 MAC 和权重包装

xfDNN 软体堆叠概览

xfDNN 软体堆叠是软体工具和 API 的组合,其可通过各种常见的ML框架落实xDNN 处理引擎的无缝整合和控制。图7中的流程图详细说明了如何准备网路和模型,以便通过Caffe、TensorFlow或 MxNet在 xDNN上进行部署。在CPU上运行不受支援的层的同时,xfDNN编译器还支援xDNN层。在编译和量化网路/模型之後 - 该流程通常需要不到一分钟 -使用者可以通过选择简单易用的Python或 C++ API与xDNN处理引擎进行介面连接。



图7 : xfDNN 流程图
图7 : xfDNN 流程图

赛灵思 xfDNN 软体堆叠包括:

网路编译器和最隹化器

编译器产生在 xDNN 引擎上执行的指令序列,其提供张量级控制和资料流程管理,以实现给定的网路。


型号量化器

量化器从经训练的CNN网路模型产生目标量化(INT8 或 INT16),而无需数小时的再训练或标记的资料集。


执行时间和调度器

xfDNN简化了xDNN处理引擎的通讯和程式设计,并利用了符合SDx的执行时间和平台。


图8显示了xfDNN函式库的流程图,其将深度学习框架与在赛灵思FPGA上运行的xDNN IP相连接。



图8 : xfDNN 软体堆叠
图8 : xfDNN 软体堆叠

中标:xfDNN编译器的更多资讯


现代CNN是数百个单独操作的图表,即卷积、Maxpool、Relu、偏置、批次处理规范、元素级加法等。编译器的主要工作是分析CNN网路并生成在xDNN上执行的最隹化指令集。xfDNN编译器不仅提供简单的Python API来连接到高级ML框架,而且还通过融合层、最隹化网路中的记忆体相关性,以及预调度整个网路来提供网路最隹化工具。这消除了CPU主机控制瓶颈。请叁见 图 9 作为实例。



图9 : xfDNN 编译器最隹化
图9 : xfDNN 编译器最隹化

效能基准测试结果

随着即时AI服务的日益增多,延迟成为整体 AI 服务效能的重要方面。GPU在延迟和传输率之间存在显着的权衡,与此不同的是,xDNNv3 DNN 引擎可以提供低延迟和高传输率。此外,xDNNv3内核提供简单的Batch = 1介面,无需任何排队软体来自动批量输入资料便可达到最大传输率,从而降低了介面软体的复杂性。


图10和图11显示了Alveo 加速器卡,以及GPU和FPGA平台上的CNN、延迟和传输率基准。图10显示了沿左Y 轴以每秒图像数量来测量的GoogLeNet V1 Batch = 1 传输率。传输率上方显示的数位是以毫秒为单位的测量/ 报告延迟。



图10 : GoogLeNet v1 Batch = 1 传输率
图10 : GoogLeNet v1 Batch = 1 传输率

注释:


1. Xeon E5-2696 v4 f1.2xlarge AWS 实例,Ubuntu 16.04LTS,amd64 xenial 映射建於 2018 年 08 月 14 日,Intel Caffe (https://github.com/intel/caffe),Git 版本:a3d5b02,run_benchmark.py w/Batch = 1 修改。


2. Xeon Platinum 8124 Skylake,c5.18xlarge AWS 实例,Ubuntu 16.04LTS,amd64 xenial 映射建於 2018 年 08 月 14 日,Intel Caffe,Git 版本:a3d5b02,run_benchmark.py w/Batch = 1 修改。


3. Arria-10 号码取自英特尔白皮书“利用 OpenCL? 平台和英特尔 Stratix 10 FPGA 加速深度学习。”https://builders.intel.com/docs/aibuilders/accelerating-deep-learning-with-the-opencl-platform-and-intel-stratix-10-fpgas.pdf。


Arria 延迟资料尚未公布。


4. Nvidia P4 和 V100 号码取自 NVIDIA技术概览,“从资料中心到网路边缘,深度学习平台、AI 服务的效能和效率的巨大飞跃”。https://images.nvidia.com/content/pdf/inference-technical-overview.pdf。资料检索於 2018 年 9 月 3 日。


5. 采用当前可用的已公布基准的 NVIDIA T4 投影。根据早期的功率效率基准,GoogLeNet Batch = 1 效能范围在 1700-2000 个图像/秒之间。


6. Alveo U200 数字测量 Intel Xeon CPU E5-2650v4 2.2GHz、2400MHz DDR4、Ubuntu 16.04.2 LTS 实例在 OpenStack Pike,Centos 7.4 上运行,预发布版本 MLSuite,streaming_classify.py,合成资料,MLSuite DSA Thin Shell,FC 和在 Xeon 主机上运行的 SoftMax 层和不包含在运算总计中的操作(占总运算的 0.06%)。


7. Alveo U250 数字测量 Intel Xeon Silver 4110 CPU @ 2.10GHz,CentOS Linux 发布4.1708,预发布版本 MLSuite,streaming_classify.py,合成资料,DSA:Thin Shell,FC 和在 Xeon 主机上运行的 SoftMax 层和不包含在运算总计中的操作(占总运算的 0.06%)。



图11显示了沿 Y 轴以每秒每瓦特图像数量来测量的 GoogLeNet V1 传输率。虽然GoogLeNet v1效能可用於基准测试,但xDNN支援广泛的CNN 网路。



图11 : GoogLeNet v1Batch= 1 能源效率
图11 : GoogLeNet v1Batch= 1 能源效率

注释:


1. Arria-10 号码取自英特尔白皮书“利用 OpenCL? 平台和英特尔R StratixR 10 FPGA 加速深度学习。”https://builders.intel.com/docs/aibuilders/accelerating-deep-learning-with-the-opencl-platform-and-intel-stratix-10-fpgas.pdf。


2. Nvidia P4 和 V100 号码取自 Nvidia 技术概览,“从资料中心到网路边缘,深度学习平台、AI 服务的效能和效率的巨大飞跃”。https://images.nvidia.com/content/pdf/inference-technical-overview.pdf。资料检索於 2018 年 9 月 3 日。


3. 基准执行期间电路板管理固件报告的电路板功率资料。



结论与行动呼吁

如共用效能结果所示,xDNN处理引擎是一种低延迟、高能效的DNN加速器,在即时推论作业负载方面优於当今众多常见的CPU/GPU平台。xDNN处理引擎可通过ML Suite在众多云端环境(例如 Amazon AWS/EC2 或 Nimbix NX5)中使用。其通过赛灵思的新Alveo加速器卡无缝扩展到本地部署。


赛灵思的可重配置 FPGA 晶片允许使用者通过 xDNN 更新继续接收新的改进和功能,这使得使用者能够跟上不断变化的需求和不断演进发展的网路。


相关文章
网通架构完善与否 决定物联网系统效能
AI补上最後一块拼图 边缘运算效能浮现
BMW利用机器学习检测汽车的过度转向
智慧手机的神经网路处理器时代
人工神经网路打开AI应用新局
comments powered by Disqus
相关讨论
  相关新品
Arduino Motor Shield
原厂/品牌:RS
供应商:RS
產品類別:
mbed
原厂/品牌:RS
供应商:RS
產品類別:
Arduino
原厂/品牌:RS
供应商:RS
產品類別:
  相关新闻
» TrendForce:苹果最新显示器带动高阶需求,Mini LED背光是机会也是挑战
» Xilinx首款 7奈米Versal ACAP自行调适运算加速平台开始出货
» 改变制造业格局 3D列印正加速从小众迈向大众市场
» 英特格授权RSP 150光罩盒技术给台湾中勤实业
» Western Digital领导Zoned Storage 重新定义Zettabyte规模数据中心
  相关产品
» 华邦推出2Gb+2Gb NAND+LPDDR4x多晶片封装产品 支援5G使用者终端设备
» 兆镁新推出第一台20倍光学变焦相机
» 大联大推出意法半导体32F334R8 Cortex M4微控制器的LLC谐振数位电源
» Vicor 推出 800V 总线转换器模组
» 搭载东芝影像识别处理器的丰田Alphard/Vellfire 获日本最高预防安全性能奖赏
  相关资源
» Power Management Solutions for Altera FPGAs

AD


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2019 远播信息股份有限公司版权所有 Powered by O3
地址:台北市中山北路三段29号11楼 / 电话 (02)2585-5526 / E-Mail: webmaster@ctimes.com.tw