完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在这个高度依赖图像的时代,英特尔® FPGA 可利用 OpenCL™ 平台满足巨大的图像处 理和分类需求
简介 从 2015 年到 2020 年,互联网视频流量将增长四倍。[1] 鉴于可视数据的爆炸性增长, 找到有效的图像排序、分类和识别方法变得至关重要。卷积神经网络(CNNs)是一种基 于人脑功能的机器学习方法,通常用于图像分析。软件可将图像分为多个部分(通常采 取重叠操作),然后通过分析图像形成可视空间的整体示意图。该流程需要采用多个复 杂的数学运算步骤以分析、比较和识别图像,同时保持较低的错误率。 开发人员使用计算密集型算法创建 CNN,并在各种平台上对其进行实施。本白皮书介绍 了 CNN 在英特尔® Stratix® 10 FPGA 上的实施方案。对于大批量任务,该方案能以每瓦 每秒 70 幅图像的速度每秒处理 14,000 幅图像;对于批量大小为 1 的任务,该方案能 以每瓦每秒 18 幅图像的速度每秒处理 3,015 幅图像。† 这些数字表明,英特尔 Stratix 10 FPGA 在处理大批量任务时完全可媲美其他高性能计算(HPC)器件(如 GPU), 在处理小批量任务时则比其他器件更快。 |
|
相关推荐
4个回答
|
|
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 窗口中的数据,并输出最大值。 图 1. Alexnet 算法层 • 全连接层,负责实施特殊的卷积函数,其中每个节点连接至上 一层的每个节点。借助扁平化滤波器,输出可表示为扁平化版 本(2D)输出特征图谱的矩阵点积。 • softmax 层,负责使用 softmax 函数(归一化指数函数)对输 入特征图谱值进行归一化处理。该层可输出 1,000 个元素的矢 量,可能包含属于原始ILSVRC 图像集中 1,000 个可能类别中 的一个的概率。 GoogLeNet 包含卷积、池化和 softmax 层,以及不同配置的 inception层组成。 将英特尔 Stratix 10 FPGA 用于 CNN CNN 算法为计算密集型算法,开发人员通常可使用矩阵乘法获 取结果。该乘法需要大量外部内存带宽来回传输大型数据集。此 外,多数 FPGA CNN 设计存在各种低效问题: • 许多设计仅实施卷积层,致使其余层的处理成为瓶颈。 • 在 FPGA 和外部内存之间传输大量数据成为瓶颈。 • 许多设计未能发挥 FPGA 的最高运行性能,导致较低的算法 性能。 借助 OpenCL§ 平台,英特尔创建了一种新型深度学习加速器 (DLA)架构,该架构为实现出色性能进行了优化。在多数 CNN 中,卷积层使用大量的浮点运算。DLA 通过实施并行计 算实现最大的卷积层吞吐量,并行使用尽可能多的 FPGA DSP 模块。DLA 构建模块被编写为可独立和同时执行的 OpenCL 内核 |
|
|
|
利用并行计算
使用并行性提高总体吞吐量。卷积层有四部分可利用 DLA 进行 矢量化处理: • 输出特征列(Q) • 输出特征图谱(K) • 输入特征图谱(C) • 输入特征列(W) DLA 使用点积对矢量进行运算。将卷积运算分解为单独的点积有 助于更高效地使用 FPGA 的 DSP 模块。此外,将输入和输出特 征列转化为矢量有助于 DLA 使用 Winograd* 转换简化算法,后 面将谈到这一点。 图 2. DLA 架构 图 3 . 流缓冲区 |
|
|
|
在芯片上对数据进行高速缓存
DLA 可在片上 RAM 中对特征数据进行高速缓存,将其流传输至 并行处理组件(PE)的菊花链,以计算卷积层和完全连接层。 为避免空转的计算周期,DLA 对数据进行了双缓冲,并同时实 施卷积与 PE 高速缓存更新。在卷积层执行时,DLA 将特征数据 流传输至 PE,同时将输出存回 RAM 缓冲区。该架构可减少不必 要的外部内存访问,以免影响带宽。此外,高速缓存有助于 DLA 再次使用输入特征图谱和滤波器权重。 使用 Winograd* 转换简化计算 Shmuel Winograd 开发了创新型最小滤波算法,相比传统的卷 积运算,该算法可将 CNN 的复杂性降低至 1/4。[5] 这些算法尤 其能与小型滤波器高效配合。AlexNet 和 GoogLeNet 拓扑结构 在多数卷积层中使用 3x3 小型滤波器,目前建模的其他 CNN 架 构也使用小型滤波器。通过 Winograd 转换,DLA 可减少卷积 运算中所需的乘积累加运算。例如,DLA 在每个时钟周期内仅使 用 6 次乘法和加法,而非标准卷积运算所需的 12 次。 图 4 . 使用 Winograd 转换 最佳架构建模 开发人员可使用输入/输出特征图谱和列矢量化因子(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. 比较建模和实证检验 |
|
|
|
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 |
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4439 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
311浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
295浏览 2评论
311浏览 2评论
310浏览 2评论
352浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 20:49 , Processed in 0.778328 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号