集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2256|回复: 8

利用 OpenCL™ 平台和英特尔® Stratix® 10 FPGA 加快深度学习发展

[复制链接]
lcytms 发表于 2017-7-25 09:08:33 | 显示全部楼层 |阅读模式
本帖最后由 lcytms 于 2017-7-25 09:14 编辑

利用 OpenCL™ 平台和英特尔® Stratix® 10 FPGA 加快深度学习发展

信息来源:http://www.eetrend.com/article/2017-07/100073113.html


在这个高度依赖图像的时代,英特尔® FPGA 可利用 OpenCL™ 平台满足巨大的图像处 理和分类需求

简介
从 2015 年到 2020 年,互联网视频流量将增长四倍。[1]
鉴于可视数据的爆炸性增长, 找到有效的图像排序、分类和识别方法变得至关重要。

卷积神经网络(CNNs)是一种基 于人脑功能的机器学习方法,通常用于图像分析。
软件可将图像分为多个部分(通常采 取重叠操作),然后通过分析图像形成可视空间的整体示意图。
该流程需要采用多个复 杂的数学运算步骤以分析、比较和识别图像,同时保持较低的错误率。

开发人员使用计算密集型算法创建 CNN,并在各种平台上对其进行实施。
本白皮书介绍 了 CNN 在英特尔® Stratix® 10 FPGA 上的实施方案。
对于大批量任务,该方案能以每瓦 每秒 70 幅图像的速度每秒处理 14,000 幅图像;
对于批量大小为 1 的任务,该方案能 以每瓦每秒 18 幅图像的速度每秒处理 3,015 幅图像。†
这些数字表明,英特尔 Stratix 10 FPGA 在处理大批量任务时完全可媲美其他高性能计算(HPC)器件(如 GPU), 在处理小批量任务时则比其他器件更快。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-7-25 09:12:19 | 显示全部楼层
本帖最后由 lcytms 于 2017-7-25 09:21 编辑

CNN 性能指标评测

自 2010 年以来,Stanford Vision Lab 便开始举办 ImageNet Large Scale Visual Recognition Challenge(ILSVRC)比赛。
参赛者需开发一款 CNN 算法对包含数百 万个图像或视频剪辑的数据集中的对象进行分析和分类。
相比之前的算法,2012 年 的获奖算法 AlexNet* [2] 在降低分类错误率方面实现了巨大飞跃。[3]
2014 年的获奖 算法(GoogLeNet*)进行了相应改进,能够进一步降低错误率。[4]
英特尔开发了一 种新型设计来实施经过修改的性能指标评测算法,从而提升基于英特尔 FPGA 的CNN 运算性能。
CNN 算法包括一系列运算或层级。

例如,AlexNet 算法包括:
        • 卷积层,负责在 3D 数据阵列(称为特征图谱)和 3D 滤波器上实施卷积运算。
                该运 算将修正线性单元(ReLU)用作激活函数。
        • 跨通道局部响应归一化层,负责按一个因子对特征图谱元素进行扩展,该系数是邻近 通道中与归一化中元素处于相同位置的元素的函数。
        • 最大值池化层,负责读取 2D 窗口中的数据,并输出最大值。
        • 全连接层,负责实施特殊的卷积函数,其中每个节点连接至上 一层的每个节点。
                借助扁平化滤波器,输出可表示为扁平化版 本(2D)输出特征图谱的矩阵点积。
        • softmax 层,负责使用 softmax 函数(归一化指数函数)对输 入特征图谱值进行归一化处理。
                该层可输出 1,000 个元素的矢 量,可能包含属于原始ILSVRC 图像集中 1,000 个可能类别中 的一个的概率。

GoogLeNet 包含卷积、池化和 softmax 层,以及不同配置的 inception层组成。

图 1. Alexnet 算法层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-7-25 09:14:02 | 显示全部楼层
将英特尔 Stratix 10 FPGA 用于 CNN

CNN 算法为计算密集型算法,开发人员通常可使用矩阵乘法获 取结果。
该乘法需要大量外部内存带宽来回传输大型数据集。
此 外,多数 FPGA CNN 设计存在各种低效问题:
        • 许多设计仅实施卷积层,致使其余层的处理成为瓶颈。
        • 在 FPGA 和外部内存之间传输大量数据成为瓶颈。
        • 许多设计未能发挥 FPGA 的最高运行性能,导致较低的算法 性能。

借助 OpenCL§ 平台,英特尔创建了一种新型深度学习加速器 (DLA)架构,该架构为实现出色性能进行了优化。
在多数 CNN 中,卷积层使用大量的浮点运算。
DLA 通过实施并行计 算实现最大的卷积层吞吐量,并行使用尽可能多的 FPGA DSP 模块。
DLA 构建模块被编写为可独立和同时执行的 OpenCL 内核

 楼主| lcytms 发表于 2017-7-25 09:16:38 | 显示全部楼层
利用并行计算

使用并行性提高总体吞吐量。
卷积层有四部分可利用 DLA 进行 矢量化处理:
        • 输出特征列(Q)
        • 输出特征图谱(K)
        • 输入特征图谱(C)
        • 输入特征列(W)

DLA 使用点积对矢量进行运算。
将卷积运算分解为单独的点积有 助于更高效地使用 FPGA 的 DSP 模块。
此外,将输入和输出特 征列转化为矢量有助于 DLA 使用 Winograd* 转换简化算法,后 面将谈到这一点。
 楼主| lcytms 发表于 2017-7-25 09:18:49 | 显示全部楼层
在芯片上对数据进行高速缓存

DLA 可在片上 RAM 中对特征数据进行高速缓存,将其流传输至 并行处理组件(PE)的菊花链,以计算卷积层和完全连接层。
为避免空转的计算周期,DLA 对数据进行了双缓冲,并同时实 施卷积与 PE 高速缓存更新。
在卷积层执行时,DLA 将特征数据 流传输至 PE,同时将输出存回 RAM 缓冲区。
该架构可减少不必 要的外部内存访问,以免影响带宽。
此外,高速缓存有助于 DLA 再次使用输入特征图谱和滤波器权重。

图 2. DLA 架构

图 3 . 流缓冲区

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-7-25 09:20:48 | 显示全部楼层
使用 Winograd* 转换简化计算

Shmuel Winograd 开发了创新型最小滤波算法,相比传统的卷 积运算,该算法可将 CNN 的复杂性降低至 1/4。[5]
这些算法尤 其能与小型滤波器高效配合。
AlexNet 和 GoogLeNet 拓扑结构 在多数卷积层中使用 3x3 小型滤波器,目前建模的其他 CNN 架 构也使用小型滤波器。
通过 Winograd 转换,DLA 可减少卷积 运算中所需的乘积累加运算。
例如,DLA 在每个时钟周期内仅使 用 6 次乘法和加法,而非标准卷积运算所需的 12 次。

图 4 . 使用 Winograd 转换

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-7-25 09:22:45 | 显示全部楼层
最佳架构建模

开发人员可使用输入/输出特征图谱和列矢量化因子(Qvec、 Kvec、Cvec 和 Wvec)对 DLA 性能建模。

例如,下列方程式可 用于对所需的 DSP 模块数量建模(未使用 Winograd 转换):
        NDSPblocks =(Wvec – Qvec + 1)× Qvec × Kvec × Cvec × 0.5

同样,开发人员可对下列信息建模:
        • 为任何指定层存储最大输入和输出特征图谱所需的 M20K RAM 模块数量。
        • 处理一个卷积层的一幅图像所需的周期数。
        • 每秒图像数的吞吐量。

该建模可帮助开发人员确定目标 FPGA(具有指定 fMAX、Wvec 和 Qvec)的最佳 Cvec 和 Kvec 值。
建模和实证检验结果非常一致,如 图 5 所示

图 5. 比较建模和实证检验

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-7-25 09:28:22 | 显示全部楼层
DLA 性能结果

图 6 - 9 提供了预测的 AlexNet 和 GoogLeNet 数据性能指标评 测结果。
它比较了在英特尔 Arria® 10 和英特尔 Stratix 10 FPGA 上运行的 DLA 和使用 nVidia* Tesla* P4 与 P40 GPU(基于 nVidia Pascal* 架构[6])的 GPU 的性能。

性能指标评测的实施使 用了下列软硬件:
        • 英特尔 Arria 10 GX1150 FPGA
        • 英特尔 Stratix 10 GX2800 FPGA
        • 带有 OpenCL 的英特尔 Quartus® Prime 设计套件 v16.1
        • nVidia P40 和 P4 GPU[7]
        • nVidia TensorRT* 神经网络推理引擎[8]

nVidia P4 和 P40 性能数据发布在 nVidia 开发人员网站上,并 在 2016 年 GPU 技术大会上进行了演示,英特尔在实验中也进 行相关计算。

如图 6-9 所示,英特尔 Arria 10 和英特尔 Stratix 10 FPGA 能 与最新一代的 nVidia GPU 一较高下。

图 6. 比较 AlexNet 性能,大于等于 32 的大批量任务

图 7. 比较 AlexNet 效率,大于等于 32 的大批量任务

图 8. 比较 GoogLeNet 性能,批大小为 1

图 9. 比较 GoogLeNet 效率,批大小为 1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-7-25 09:31:56 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 12:39 , Processed in 0.078709 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表