具有可重构功能的容错融合与分支CNN加速器的FPGA实现
摘要
ImageNet时刻成为卷积神经网络(CNN)的转折点,因为它展示了CNN在革新计算机视觉任务方面的潜力。这一CNN的成功激励了解决更为复杂的问题,即涉及来自多种数据模态的多任务。传统上,单个CNN加速器被优化来执行单一任务或多个相关任务。本研究提出了一种共享层方法,利用CNN的模式学习能力,在单一硬件加速器上完成来自不同模态的多种不相关任务。我们通过合成数据生成克服了多模态学习中的数据不平衡挑战。在单个CNN加速器上实现了平均分类准确率超过90%,而在此之前需要三个加速器。由于晶体管缩小和老化带来的可靠性问题,我们扩展了共享层方法,并引入了具备可重构功能的容错CNN加速器,支持容错(FT)、高性能(HP)和减压(DS)模式。FT模式利用双/三模冗余提供对软错误的高度可靠性,HP模式通过并行执行实现最高0.979 TOPs的性能,DS模式在时钟门控设计中将动态功耗降低多达68.6%,并通过部分重配置方法进一步降低功耗,从而有助于减缓电路老化过程。我们对两种不同的CNN架构(即融合式和分支式),针对三种不同任务,在三种不同工作模式下,基于准确率、量化、裁剪、硬件资源利用率、电源、能耗、性能和可靠性进行了全面评估。
作者
Rizwan Tariq Syed IHP—莱布尼茨创新微电子研究所,德国法兰克福(奥德) ORCID: 0000-0001-9232-734X
Yanhua Zhao IHP—莱布尼茨创新微电子研究所,德国法兰克福(奥德) ORCID: 0000-0002-1848-6550
Junchao Chen IHP—莱布尼茨创新微电子研究所,德国法兰克福(奥德) ORCID: 0000-0002-4413-0937
Marko Andjelkovic IHP—莱布尼茨创新微电子研究所,德国法兰克福(奥德) ORCID: 0000-0001-6419-2062
Markus Ulbricht IHP—莱布尼茨创新微电子研究所,德国法兰克福(奥德) ORCID: 0000-0001-9230-640X
Milos Krstic IHP—莱布尼茨创新微电子研究所,德国法兰克福(奥德);设计与测试方法学主席,波茨坦大学,德国波茨坦 ORCID: 0000-0003-0267-0203
出版信息
期刊: IEEE Access 年份: 2024 卷号: 12 页码: 57847-57862 DOI: 10.1109/ACCESS.2024.3392240 文章编号: 10506477 ISSN: Electronic ISSN: 2169-3536
指标
论文引用次数: 1 总下载量: 1549
资助
- 德国联邦教育与研究部在项目“Open6GHub”中的资助(资助号:16KISK009)
关键词
IEEE 关键词: 任务分析, 可靠性, 容错系统, 定量化(信号), 可编程门阵列, 卷积神经网络, 多感官集成, 可重构架构, 硬件加速
Index Terms: 卷积神经网络, 可重构能力, 卷积神经网络加速器, 神经网络, 高性能, 功耗, 操作模式, 平均精度, 多模态, 多任务, 卷积神经网络架构, 硬件资源, 动态功率, 多模态学习, 硬件加速器, 硬件性能, 合成数据生成, 共享层, 动态功耗, 大多数研究, 卷积神经网络模型, 深度神经网络, 多任务学习, 位流, 边缘设备, 深度神经网络模型, 缺陷模型, 功率资源, 热电子, 详细实验结果
Author Keywords: 多任务学习, 多模态学习, 卷积神经网络, 可靠性, FPGAs, 可重构性
未定义
SECTION I. 引言
CNNs 已经改变了许多应用,从自动驾驶汽车和智能视频监控到智能制造和医学成像。随着传感器模态数量的增加,CNN 正在变得更复杂,它们从使用单一图像传感器捕获的图像/模式进行基本目标检测,演变为处理来自多个传感器的多条数据流,在广泛多样的目标上执行分类任务。
当前面临的挑战是,运行深度CNN模型是一项资源密集型过程,将这些拥有数百万参数的模型部署到边缘设备上已变得愈发迫切。CNN 在边缘设备(即 ASIC、FPGA)上作为硬件加速器实现时,能够提供更低延迟、更强的数据安全与隐私保护。然而,由于 AI 要求和工作负载的多样化,硬件资源利用率很快达到瓶颈。硬件资源利用率的提升会导致功耗增加。为了解决这些问题,已经提出了多种模型压缩方法(如剪枝、量化、知识蒸馏、low-rank factorization 等)。模型压缩的目标是减小模型尺寸,使其能够在低功耗和资源受限的设备上部署,而不会产生显著的精度下降。在此背景下,我们希望通过“Shared Layers”方法为节省硬件资源和降低功耗问题提供一种新视角。该方法在我们早期的工作 1 中进行了讨论,我们利用 CNN 学习识别模式并从不同模态中训练多项独立任务的基本能力,迫使一个面向特定应用的 CNN 加速器学习任务之间的共同特征,否则需要三台独立加速器。我们已经评估了使用不同模型压缩方法的融合和分支 CNN 模型。我们得出的结论是,结合剪枝和量化方法的共享层方法显著降低了硬件资源和功耗。
第二个挑战是关于用于CNN加速器的硬件组件(即ASIC或FPGA)的可靠性,尤其考虑到CNN在医疗、娱乐、制造业以及安全关键应用等各类应用中的普及。安全关键应用(例如自动驾驶汽车、航天等)具有高可靠性标准,因为失效的后果可能灾难性,导致人员伤亡或财产损失。
多年来,我们目睹了微处理器和硬件加速器内部硬件性能的提升,这一提升由晶体管尺寸缩小至非常深亚微米(VDSM)水平驱动。晶体管的缩小导致阈值电压降低、噪声裕度变窄,从而增加了对瞬态故障的易感性 2。此外,晶体管老化因热载流子注入(HCI)和偏置温度不稳定性(BTI)导致电路性能随时间逐渐恶化,这又是一个重大的可靠性问题 [^3], [^4]。因此,为了确保硬件上的CNN推理无错误,必须拥有经过严格验证的容错且具备老化感知的方法论。
因此,结合硬件冗余,我们进一步扩展了共享层的概念,提出可重构CNN。核心思想是CNN加速器应根据准确性、功耗、延迟、可靠性等不断变化的需求进行适配。因此,我们的可重构加速器在 1) 容错 (FT), 2) 减压 (DS), and 3) 高性能 (HP) modes. 在CNN加速器上执行多任务并切换不同工作模式的做法使本研究具有独特性,而这在微处理器中才是最常见的做法。本文的主要贡献如下:
容错多模态CNN加速器,基于共享层方法,具备可重构能力,能够在三种不同模式下运行:1) FT, 2) HP, and 3) DS.
三种工作模式的综合实验结果,包括:
在FT模式下对多种故障模型(单事件瞬变(SETs)、单事件翻转(SEUs)、多比特翻转(MBUs)、FPGA配置存储器中的SEU)进行故障分析。对HP模式下的延迟和能耗进行检查。对时钟门控(CG)和部分再配置(PR)方法在降低DS模式动态功耗方面进行比较评估。
在FT模式下对多种故障模型(单事件瞬变(SETs)、单事件翻转(SEUs)、多比特翻转(MBUs)、FPGA配置存储器中的SEU)进行故障分析。
对HP模式下的延迟和能耗进行检查。
对时钟门控(CG)和部分再配置(PR)方法在降低DS模式动态功耗方面进行比较评估。
后续章节结构如下。第二节阐明我们的工作与现有技术的区别。第三节深入探讨CNN和多模态多任务学习(MMMT)的背景。第四节解释基于共享层方法的融合与分支CNN模型,而第五和第六节分别讨论其工作流程和实验结果。我们进一步发展共享层的理念,并在第七节介绍容错可重构加速器。第八节总结本研究。
第二节:相关工作
为应对不断变化的AI应用需求所带来的新挑战,若干研究团队提出了可重构或自适应加速器的概念。核心思想是AI加速器能够适应诸如精度、能效、延迟、可靠性等不断变化的需求。因此,出现了多种与可重构深度神经网络(DNN)相关的概念。
3 的作者在不同的 DNN 模型上使用不同的比特流配置,并针对视频处理应用采用不同的量化级别。 他们动态更改 DNN 模型的比特流,以在准确性和功耗之间进行权衡。 每秒样本数是在不同 FPGA 比特流之间切换时的主要优势之一。 然而,在可重构性方面,4 与 5 分别执行重新编程权重,以支持不同的 DNN 架构和独特的数据压缩算法。 参考文献 6 还评估了 DNN 中错误的影响。 参考文献 7 采用了不同的方法,提出了使用流式数据流架构的节能可重构 CNN 加速器设计。 本研究将大型 CNN 核计算分解为小核大小的计算,并通过减少非必要的数据移动来提高能效。 研究 8 提出了一种可重构的二值神经网络加速器,该加速器在 CNN 核中进行自适应加载和数据处理,以提升性能。 而 9 建议采用可配置的架构实现 CNN,支持混合量化(即不同层使用不同位宽),其主要目标是在性能提升的同时减少精度损失。 10 的研究建议进行数据路径重配置,以促进数据重用模式,从而降低不同 CNN 模型的总能耗。 本研究引入了基于层的调度框架,以平衡不同卷积神经网络模型的功耗效率与性能。 对硬件资源利用率、性能、功耗、能耗、工作频率、模型压缩方法、目标硬件以及在第 VII D 节中执行的多种传感器模态和任务进行了定量比较。
在为安全关键应用部署深度神经网络(DNN)模型时,可靠性是首要考虑因素。因此,针对容错深度神经网络开展了大量研究。研究11考察了使用流水阵列架构(即谷歌张量处理单元)的DNN加速器,并提出了两种容错方法:容错剪枝(FAP)和容错剪枝+再训练(FAP+T)。在FAP中,利用剪枝来绕过导致精度下降的故障乘加单元(MAC)。在FAP+T中,增加了设备端的再训练步骤,以恢复因缺失MAC单元而造成的精度损失。12的作者对剪枝后的DNN进行了可靠性评估,并建议在DNN的易受损部分添加选择性冗余。13进行了类似分析,作者建议模型压缩(即剪枝、量化)是一种提升DNN可靠性的显著方式。研究14提出了两种容错方法,即基于症状的错误检测器(SED)和选择性锁硬化(SLH)。前者监测DNN激活函数的输出,后者在硬件易受损部分添加冗余。15的作者提出了一种用于数据压缩的可重构三模冗余DNN加速器,采用自编码器模型;而16的作者对VGG16、ResNet50和InceptionV3在模型参数出现瞬态故障时进行了可靠性分析,并总结了层的特性(批量归一化层、捷径连接的使用)也可能在CNN模型的弹性中发挥作用。研究17提出了一种跨帧时空相关方法,在处理多帧时利用输入和输出相关信息来检测CNN中的错误。参考文献18对压缩后的DNN进行了弹性分析,并提出了虚拟和物理冗余以减轻错误。参考文献19对CNN层的输出特征图进行了FPGA加速的错误注入实验,并提出了选择性通道复制和容错的PE调度来减轻故障影响。
其他容错方法包括基于集成学习的鲁棒性 [^20], Knowledge distillation-based redundancy [^21], algorithm-based fault tolerance (ABFT) [^22], [^23], [^24], clipped activations function [^25], [^26] [^27], and using arithmetic error codes to mitigate the reliability of the DNNs [^28].
表 1 提供了我们的方法与最先进研究的概念性比较,表 2 则将我们的工作与与 DNN 容错方法相关的精选研究进行比较。因此,我们可以总结:,
许多关于容错 DNN 的研究似乎忽视了适应性/可重构性。与此同时,关于自适应/可重构 DNN 的研究主要关注提升其性能。因此,我们的研究已同时解决了 DNN 的可重构性两个方面,i.e., high performance and fault tolerance.
关于针对多任务和多传感器模态的硬件加速器的讨论在大多数 FT DNN 研究中基本被忽略。
许多研究已对 DNN 进行可靠性分析,但大多数此类分析基于软件层面的神经网络参数(权重和偏置)的故障注入(FI)。神经网络最终部署在硬件上(即 ASIC 或 FPGA),而硬件架构由许多组件组成(即内存、DSP 块、状态机控制、共享缓冲区等)。仅在权重中注入故障可能无法完全了解 DNN 加速器的脆弱性。因此,我们的研究集中在完整加速器架构中的 FI。
许多研究仅考虑了单一任务或传感器模态,或仅针对单一故障模型进行了故障注入分析。相比之下,本研究评估了四种故障模型,并在 RTL 级别及 FPGA 的配置存储器中进行了 FI 分析。
表 1
表 2
本文提出了一种采用冗余辅助共享层方法的CNN加速器重配置框架。根据我们所知,针对具有可重配置功能的容错CNN加速器、旨在优化硬件资源、功耗、高性能以及多任务可靠性的此类方法尚未被研究。
第三节. 多模态多任务CNN模型
CNN(卷积神经网络)是一种专业化的神经网络,在图像分类任务中已被证明极为有效。CNN能够为图像或模式构建内部表示。这使CNN模型能够学习图像数据中的位置和尺度不变结构,这在处理图像时尤为重要。由于CNN在视觉应用(如图像识别、医学影像等)中的广泛使用,分类问题也日益复杂。CNN展示了卓越的性能,从使用更简单的CNN网络解决单一分类任务(即多类别分类),到使用更广泛、复杂的CNN模型解决多模态、多任务的分类问题。
A. 多模态学习
人类通过多种感官(i.e., 多模态方式)感知和解释世界,例如视觉、听觉、触觉、味觉和嗅觉。 学习并处理来自多种模态(即感官器官)的信息,对于人类与现实世界互动和理解至关重要。 同样,多模态学习(MML)涉及处理来自多种模态的数据,例如图像、音频、文本和传感器数据,以提取有用信息并执行分类或预测任务。 通过处理多模态数据,多模态卷积神经网络能够学习识别复杂模式,并基于可用信息做出预测。 各类应用中使用多传感器的情况正在增加,从而导致收集数据量的增长。 通过传感器融合,将来自多模态(如相机、雷达、激光雷达和麦克风)的数据样本整合,可获得更全面、更准确的环境理解。 当卷积神经网络在多模态数据上训练时,使用早期融合、后期融合等多种融合方法来学习共享表示。 该方法通过利用多模态的优势,可有效提升分类结果。
B. 多任务学习
根据应用和数据模态,CNN 模型可以执行单一任务,例如识别服装类型;也可以执行多任务,例如同时识别服装类型和颜色。 在机器学习中,这被称为多任务学习(MTL)。 MTL 是一种学习范式,模型被训练以同时执行多个相关任务。 一个 MTL 模型通过联合优化多个损失函数 [^29] 来训练多个任务。 联合训练帮助模型学习共享表示,减少过拟合,并促进模型学习更稳健的输入数据表示。 MTL 可定义为多模态多任务学习(MMMT),当模型能够学习跨多种数据模态和任务的共享输入表示时,例如,在自动驾驶场景中,输入数据由多种传感器模态(相机、雷达、激光雷达)采集,随后由 AI 模型处理以检测多种物体(i.e., 行人、车道标记、停车标志等)。
第四节. 提议的共享层方法
在各种应用中使用的 CNN 模型包含大量参数,数量从几千到数百万不等。最终,这些模型将在配备 ASIC 或 FPGA 的边缘设备上部署。这些边缘设备通常计算资源和功率预算有限。因此,在边缘设备上部署此类模型面临高计算和能耗需求的挑战。这表明需要开发高效技术,以在满足特定应用需求的同时,最小化硬件资源利用、功耗和延迟。大多数关于 MTL 与 MMMT 背景下 CNN 的研究聚焦于高度相关任务。我们的方法提供了关于未相关任务的不同视角。该视角利用 CNN 在训练过程中学习的核心原理。大多数图像的低层特征相同。低层学习低级特征(即边缘、曲线、斑点等)。随着我们深入网络,层开始学习高层(或更抽象)特征 [^30]。我们利用这一概念,迫使单个模型学习多个未相关任务的低级特征。这些未相关任务以匹配低层特征为特征,使用相同的层。映射到硬件加速器后,这些共享层意味着共享计算资源,从而大幅节省硬件资源并降低功耗。我们的方案进一步通过避免不必要的 DRAM 访问来促进多任务权重的复用,从而实现额外能耗节约(例如,典型的 CNN 处理平台中的每一次 DRAM 访问相比实际的乘加(MAC)操作消耗显著能量 [^31])。通过此方法,单一的面向应用的加速器即可执行多任务(Fig. 1(c)(d)),而不是传统使用三个独立加速器的方式(Fig. 1(a))。在第七节中,进一步利用共享层方法,在运行时重新配置基于 FPGA 的 CNN 加速器,以在 FT、HP 和 DS 模式下执行多任务。
图 1. (a) 在特定应用加速器上执行任务 (b) 控制元件 (c) 在 FM 上执行任务 (d) 在 BM 上执行任务.
我们的多任务方法的有效性通过创建两种 CNN 模型(融合模型 FM 与分支模型 BM)得到验证。在融合模型 (FM) 中,所有任务共享神经网络的所有层(图 1(c))。相比之下,分支模型 (BM) 包含任务特定的分支,并仅共享特定层(图 1(d))。使用基于多路复用器的逻辑以 TDM 方式为 FM 和 BM 输入不同的数据样本(即对应不同任务)。虽然 FM 更易训练并且消耗的硬件和功率略少,但它可能无法在特定任务上达到所需的准确度。BM 涉及多阶段训练过程,并且消耗的硬件和功率略高于 FM。然而,BM 具有若干优势,即:1) 对故障更具一定的鲁棒性,并且在出现故障时可实现任务隔离;2) 在 FPGA 中提供任务特定的比特流重配置;3) 仅对特定层(如更易受损的层或任务特定层)引入选择性复制;4) 使子任务支持多任务学习 (MTL);5) 为实现特定任务更高准确度提供额外层。
第五节. 融合与分支模型的多任务执行工作流程
在本研究中,不同任务被模拟为不同的数据集,即单个任务的执行意味着对单个数据集执行分类任务。因此,对于三个任务,我们考虑了三个数据集(即手势检测的雷达样本 [^32]、SVHN 20、MNIST 21),来自两种不同的模态(即雷达和相机图像)。这三个任务如图 3(a)(b)(c) 所示,并在一个特定应用的 CNN 加速器上以时分复用 (TDM) 方式执行。
图 2. 完整工作流程展示数据预处理、模型开发/训练/测试、HLS 代码生成以及在 RTL 与配置存储器中的故障注入.
图 3. (a) FMCW 雷达手势样本,{Left}: Real dataset, {Right}: Synthetic dataset (b) SVHN 样本 (c) 转换后的 MNIST 数据集.
Fig. 2 展示了一个综合工作流程的概览,该流程包含以下关键阶段:1)数据预处理,2)模型创建、训练和测试,3)利用 hls4ml 框架将基于 Python 的 CNN 模型转换为其 HLS 兼容的 c/c++ 等价物。4)此步骤涉及进行 RTL 和后综合仿真,以计算时延和功耗(见第 VI 节)。此步骤进一步扩展至执行故障注入分析,将在第 VII A 节中讨论。
A. 数据预处理
数据预处理是 DNN 训练之前至关重要的初始步骤之一,因为该步骤通过清洗、转换和归一化来提升数据质量(参见图 2)。随着问题在 MMMT CNN 模型中变得更为复杂,数据预处理的重要性愈发突出。CNN 在图像和模式上表现卓越。因此,在训练之前需要对数据集进行转换,以便 CNN 能够学习不同任务和不同模态之间的共同表示。任务 2(T2)包含来自 SVHN 数据集的 RGB 图像样本,这不需要额外转换。任务 3(T3)是灰度数据集,而任务 1(T1)来自不同模态;因此,T1 和 T3 需要在 CNN 训练前进行预处理和转换。T1 的数据预处理包括收集真实原始雷达数据,利用快速傅里叶变换(FFT)提取信息,去除杂波,并融合距离、速度和角度特征图。真实雷达数据集的更多技术细节见 [^32]。
T3 数据集是 MNIST 数据集的改编版本。MNIST 数据集在原始形式中包含以二维格式呈现的灰度图像。T3 数据集已被转换为 3 维 RGB 图像,并增加了噪声以进一步提高数据集的复杂性。为了促进子任务的分类,数据集已扩展为包含两个额外颜色,即红色和绿色。最后,所有任务都被缩放到相同的尺寸,即 32\times 32\times3,以便图像的输入尺寸与 CNN 层匹配。
数据集的规模和多样性会影响模型性能。因此,仔细策划数据集非常重要,以确保其代表模型在真实世界应用中可能遇到的变化范围。T1 包含 1500 个用于手势检测的真实雷达数据样本,与 99,289 个 T2 样本和 70,000 个 T3 样本相比,数量要少得多。因此,在初始实验中,T1 的准确率因 T1 与 T2/T3 数据集不平衡而受到影响。真实原始数据样本是在室内环境中使用德州仪器(TI)毫米波雷达 AWR1642 及数据采集板 DCA1000 收集的。因此,创建包含数千个样本的真实数据集是一项重大工作。为了解决这一挑战,采用了合成数据集生成方法。合成数据生成是指生成具有与原始数据相似统计特性的全新数据的过程(见图 3(a))。因此,可以通过利用 Blender 动画创建手势轨迹并配置 Matlab 的相控阵系统工具箱以匹配 AWR1642 雷达参数(参见图 4)来生成合成手势。通过这种方式,我们将 T1 数据集样本数增加到 6,480(更多技术细节见 [^35])。
图 4. 使用 Blender 与 Matlab 的合成雷达数据集生成方法.
B. 模型创建、训练与测试融合与分支模型
如表3所示的CNN架构已使用TensorFlow/Keras和Qkeras 22创建。经过数据预处理和模型构建后,可完成模型的训练与测试(参见图2)。FM训练被视为单任务学习问题,并遵循标准训练流程。数据集包含三个不同的任务(即T1、T2、T3),输出层的类别代表所有三个任务。相比之下,BM训练可采用多任务学习(MTL)或迁移学习(TL)方法完成。MTL涉及优化多个损失函数以联合训练多项任务,通用层学习相关任务之间共享的表征,而特定任务分支则在各自任务上表现良好。
表 3
由于所有任务同时被优化,可能出现所有任务的训练无法收敛到期望精度的情况。因此,作为一种替代方案,采用迁移学习(TL)方法,该方法涉及多阶段训练过程:1)首先,将整个模型训练为FM。随后移除模型的最后一层,保留训练了三项任务共享表示的层。2)冻结共享层的权重。3)向模型添加任务特定层并分别训练每个任务。4)若某任务还有额外的子任务,也可以按类似方式进行训练。
此外,模型压缩方法也可以加入训练循环。模型压缩旨在减小模型体积,以便在低功耗和资源受限的边缘设备上部署而不产生显著的精度下降。这也是研究界过去几年积极关注模型压缩话题的原因。近年来提出了多种模型压缩方法,例如量化、参数剪枝、低秩分解、知识蒸馏、迁移/紧凑卷积滤波器等。本研究聚焦于 a) 量化 和 b) 剪枝,这两种方法是目前最具前景的模型压缩手段。
通过实验,已经证明深度神经网络中的许多参数是多余的,实际上它们的缺失并不会显著影响预期性能。这种情况可能出现在神经网络的参数为零、接近零或被复制的情况下。因此,修剪是一种去除不必要参数的方法,这些参数对结果的准确性贡献不大,从而得到稀疏深度神经网络(图 7)。这种稀疏性带来两个优势:a) 它显著降低硬件资源使用量,进一步帮助减少计算复杂度;b) 它提升了 DNN 模型的鲁棒性 23。我们的实现专注于基于幅值的权重修剪方法,以优化模型 [^37].
图 5. 在 2 个神经元对之间的计算中,不同重用因子值对 DSP48E 利用率的影响 [26].
FIGURE 6. 相对于基线FM,FMP、FMQ、FMQP和BMQP在功率、能量以及硬件资源利用率方面的节省因子。
图7. FMQP 模型权重分布.
在修剪的基础上,为训练循环加入 DNN 量化,因为它能显著降低模型尺寸并提升可靠性。在许多情况下,浮点数(FP)的动态范围并不需要,因此 DNN 量化指的是将神经网络的参数和激活函数近似为低位宽的定点(FxP)数值的方法,这种方法更为硬件友好,计算更快,且相较于 FP 计算,面积开销更低。此外,量化还能提升 DNN 模型的可靠性,如 24 和 25 所示。因此,我们可以预期在模型尺寸和可靠性方面获得显著收益。修剪与量化均能降低硬件资源和功耗,并已成为在边缘设备上部署 DNN 的事实标准步骤 26。共享层方法结合修剪和量化,显著减少了硬件和功耗资源。表 4 与图 6 展示了多种 CNN 模型实现的实验结果,章节 VI 对这些发现进行了全面分析。
表 4
C. Hls4ml 框架
hls4ml 27 是一个开源框架,允许在 FPGA 上部署机器学习模型,专门为边缘设备的低延迟和高能效推理而设计。当达到期望的测试精度后,hls4ml 可以将训练好的模型转换为与 HLS 兼容的 C/C++ 代码(参见 Fig. 2)。该框架在生成可综合的 C/C++ 代码时考虑了若干参数,例如 FPGA 型号、接口类型、重用因子 (R) 和 FxP 精度。参数 ‘R’ 决定了 hls4ml 生成的 DNN 模型中的并行度(参见 Fig. 5)。
乘法是神经网络中最基本的运算,因为它涉及将权重与输入相乘。乘法完成后会加上偏置,然后将结果传递给激活函数。复用因子为 1 表示一种极其并行的设计,从而生成具有最小可实现延迟的 HLS 模型。如果将复用因子提高 N 倍,HLS 编译器会尝试将 DSP 资源减少约 1/N,结果模型的整体延迟会增加 \sim \text{N}.
参数 ‘precision’ 用于 hls4ml 进行量化。默认情况下,hls4ml 使用的精度为 < 16, 6>。这意味着模型将被量化为 FxP 16 位,其中 6 位是整数位(包括符号位),其余 10 位分配给小数表示。‘precision’ 参数会迭代修改,以达到所需的准确度水平。hls4ml 编译量化后的模型,并使用 FPGA 推理代码的位精确固定点仿真来估计模型的准确性(称为 hls4ml 准确性).
由于 FM 是无分支的,它可以轻松转换为兼容 HLS 的 C/C++。然而,hls4ml 当前不支持为 BM 生成 HLS 代码。我们建议采用一种包含若干顺序操作的变通方案来使用该框架处理 BM。1)将 BM 分解为线性分支。2)利用 hls4ml,为每个分支单独创建 HLS 代码。3)使用 Vivado HLS 生成所有分支的 HDL 代码。4)在 HDL 中使用控制元素(CE)(图 1(b))将所有分支拼接在一起。CE 的作用是:1)同步拼接分支之间的数据流和控制信号;2)根据任务启用/禁用单个或多个分支.
第 VI 节. 融合与分支模型的实验结果与讨论
根据第 V 节所列工作流程,我们设计了五种不同的 CNN 模型:融合模型 (FM)、融合模型剪枝 (FMP)、融合模型量化 (FMQ)、融合模型量化与剪枝 (FMQP),以及分支模型量化与剪枝 (BMQP)。表 4 展示了准确率和延迟的实验结果,而图 6 则描绘了相对于基准 FM 实现的功耗、能耗和硬件资源利用率节省因子。节省因子 (SF) 量化了某个模型的功耗、能耗和硬件资源相对于基准 FM 减少了多少倍。它是基准 FM 值与所考虑模型值的比值。因此,最高的 SF 值表明最有效的模型。图 6 还标出了绝对 FM 值,为估算其他模型的绝对值提供了参考。所有模型的延迟通过 RTL 仿真计算,功耗则在后合成功能仿真期间使用设计的切换活动文件(即 SAIF 文件)估算。所有五种模型均在 Vivado 中综合,目标为 Xilinx Virtex UltraScale+ VCU118,时钟频率为 200 MHz。值得注意的是,所有模型在单个面向应用的加速器上实现了超过 90% 的平均准确率,涵盖了所有三个任务,这使我们的工作区别于此前仅优化单个加速器仅执行单一任务的研究。
未优化的基线实现为 FM,其在所有三个任务上具有良好的准确率,但使用了最多的硬件资源、功耗和能耗(即 SF = 1)。FMP 是基准 FM 的 50% 剪枝版本。FM 和 FMP 的高准确率以增加资源利用率、功耗和能耗为代价,因为这两个模型在后训练后被同质量化到 < 20, 10> 位宽 (BW)。在 PTQ 中,模型首先使用浮点 32 位 (FP32) 数据类型训练,然后对模型的权重和激活函数进行量化。该方法易于应用,但由于动态范围损失,可能会降低准确率。这就是 PTQ FM 和 FMP 需要更高位宽 (BW) 的原因。更高位宽为 FM 与 FMP 提供了良好的动态范围,并有助于避免任何饱和和环绕问题。
FMQ 直接使用较低精度进行训练(即量化感知训练 QAT),并且由于精度损失导致的任何准确性下降都可以在训练过程中得到纠正,从而使模型在低比特宽度(BW)下表现更好。FMQ 在准确性方面与 FMQ 一致,同时消耗更少的硬件资源、电源和能量。DSP 是一种稀缺资源,而这些 DSP 硬宏相比 LUT 消耗更多电力。在使用 QAT 对 BW 进行训练并综合 FMQ 时,更简单的乘法运算被映射到 LUT 而非 DSP。这降低了 DSP 的利用率、电能消耗和总体能耗,也从 FMQ SF 值相较于 FM 和 FMP 的提升中得到验证。
FMQ 与 FMP 具有不同的优势。FMP 去除了不必要的权重,但现有权重因同质 PTQ 而拥有较高的 BW。FMQ 由于异质 QAT 具有较低的 BW,但该模型未被裁剪。FMQP(参见图 7)将异质 QAT 与裁剪的优势相结合,以实现准确性、硬件资源、功耗和能耗方面的最佳效果(即最高的 SF 值)。BMQP 采用多阶段迁移学习训练方法得到,其 HLS 代码使用前述章节中解释的变通方法生成。BMQP 的准确性略高于 FMQP。在 BMQP 中,多个分支可以同时激活,从而支持众多子任务的分类。因此,为了说明 BMQP 在任务 3 中的多任务支持,两个分支被激活用于分类数字(T3)和数字的颜色(T3c)。
与 FMQP 相比,BMQP 的 SF 较低,因为它消耗略多的硬件资源、电力和能量,但在弹性和多任务支持方面提供了额外的收益。量化和裁剪对 BM 的影响相同;因此,仅展示了 BMQP 的结果。裁剪有助于减少硬件资源并提升模型的准确性,这从 FMP、FMQP 和 BMQP 的结果中可见一斑。
所有融合模型的延迟相似。hls4ml 生成的 CNN 架构的延迟取决于网络深度、DSP 的重用因子(R = 1)和输入尺寸(32\times 32\times3)。这三个参数在 FM、FMP、FMQ 和 FMQP 中相似。层的执行是顺序的,这意味着后续层只能在前一层完成计算后才能处理数据。因此,对于 hls4ml,建议采用更宽的网络(层中更多的核/参数)而不是更多层(DNN 的深度),因为在 FPGA 上并行化每层计算更为高效。延迟不受量化比特宽度、核尺寸和核数量的影响。这也是为什么在裁剪比例和量化比特不同的融合模型仍具有相似延迟的原因。在 BMQP 中,每个任务的延迟不同,因为每个任务只通过特定层。例如,T3c 最早分支并具有最低延迟,而 T2 在最后一层分支,因此在 BMQP 中具有最高延迟。T3c 的延迟不计入总延迟,因为 T3 和 T3c 分支是并行执行的。我们的硬件结果与 28 中所述的分析相匹配。实现硬件资源利用率、精度、功耗、能耗和延迟的最佳匹配取决于具体应用以及目标硬件中可用的硬件资源。
第七节:可重构多模态 CNN 加速器
在动态环境中,可重构性是至关重要的,因为它使系统能够灵活、敏捷并根据不断变化的人工智能计算需求和要求进行定制。我们对可重构性的看法基于硬件可靠性和计算性能。不同模式下执行多任务通常与微处理器相关联 29, 30。所提出的共享层方法使得在运行时能够在面向应用的 CNN 加速器上执行多任务。hls4ml 加速器不会在单独的存储位置存储权重。在这个 hls4ml 加速器生成框架中,神经网络加速器的权重被融合到网络架构中。这样就消除了从远程存储位置获取权重的必要性。一个(或多个)加速器实例可以在任何操作模式下处理任何任务(其已训练的任务),因为权重值来自包含所有三种任务的训练过程。
默认情况下,一个加速器足以执行三项任务,但通过三重模块冗余(TMR)与简单的多路复用器设计(图 9)相结合,可以在 1)容错(FT)、2)高性能(HP)和 3)减压(DS)模式(图 8)下执行任务。在表 4 所示的五种模型中,FMQP 和 BMQP 是最优化的融合与分支模型。由于在 FT、HP 和 DS 操作模式下使用了 FMQP/BMQP 的冗余实例,FMQP/BMQP 模型在所有操作模式下的精度将保持相同(如表 4 所示)。
图 8. 可重构 CNN 加速器.
图 9. 不同操作模式之间的切换机制.
A. Ft 模式
在 FT 模式下,所有任务都在所有三台加速器上执行,提供高可靠性(图 8 和 9)。 延迟、电源和能耗已在表 7 中展示。 在 DMR 和 TMR 的情况下,硬件资源利用率可以使用图 6 中已提及的数值来估算,DMR 为两倍,TMR 为三倍。 在五个模型中,FMQP 和 BMQP 分别是最优的融合模型和分支模型。 我们已在 RTL 级别和 FPGA 配置存储器中对 FMQP 和 BMQP 进行全面的故障分析。
表 5
表 6
表 7
1) RTL 级别的故障注入
Vivado HLS 生成的 HDL 代码被导入到 Vivado。 由于 Vivado 与第三方仿真器兼容,使用 Xcelium 故障模拟器对 RTL 级别进行彻底的故障注入(见图 2)。 大约有 120 万个节点可以注入故障。 注入一个故障大约需要 6 秒,针对 120 万个节点大约需要 83 天。 如果考虑多个模型(即 FMQP、BMQP)在不同模式(即 DMR、TMR)下运行,以研究单粒子瞬变(SETs)、单粒子翻转(SEUs)和多位翻转(MBUs)故障模型的影响,整体仿真时间将大幅增加。 因此,我们不是针对所有组件的每个故障节点,而是针对 RTL 模块的端口(见图 10)。 通过这种方式,FMQP 的故障节点总数降至 35912,BMQP 降至 36710,约需 2.5 天。
图10. 端口级别的 RTL 故障注入.
我们已考虑三种故障模型,即 SETs、SEUs 和 MBUs。 SET 引起的失效率(SETFIR)定义为 SET 故障传播到输出并导致结果错误的百分比。 类似地,估算了 SEUFIR 和 MBUFIR。 SETFIR、SEUFIR 和 MBUFIR 这些指标可帮助确定模型的弹性。
The SET 现象发生在高能粒子撞击组合电路并导致因电荷沉积而产生瞬态电压扰动时。如果粒子的能量超过某一阈值,其最终效果就是组合电路中的一次 SET(翻转)。如果同一次 SET 传播到存储元件并被锁存,则其变为一次 SEU。当单个 SEU 影响到多位时,便被视为多位失调(MBU)。因此,为了估计由于 MBU 导致的失效率(MBUFIR),在 Xcelium 故障模拟器中,MBU 可通过同时注入两次 SEU 来模拟。
脉冲宽度(PW)持续时间在 SET 故障分析中具有重要意义。较短脉冲宽度的 SET 可能无害。因此,在对所有端口进行全面 SET 分析之前,我们首先在随机选取的一组端口上研究了不同脉冲宽度持续时间下的 FMQP(见表 5)。脉冲宽度为 100ps 和 250ps 的 SET 未导致输出错误(即 0% SETFIR)。在所有注入的故障中,约 1% 的 SET(包含 PW 为 500ps、750ps 和 1000ps)导致输出错误。该 1% SETFIR 的三分之一来自复位端口。这表明即使在 1% SETFIR 也必须非常重视复位线。通常,PW 越长,SET 在时钟边沿被锁存的概率越大。研究,31、32、[^44],表明传播诱导脉冲扩宽(PIPB)可能导致显著的 SET 扩宽,结果 SET 的持续时间可能超过 1000ps。因此,保守起见,我们已选择 PW 为 1000ps,对 FMQP 和 BMQP 进行进一步的广泛分析。表 6 展示了两种架构在 SET、SEU 和 MBU 影响下的故障注入结果。故障是在所有三个任务运行期间注入的。故障分析的要点如下
在所有故障模型(SET、SEU、MBU)影响下,BMQP 由于其分支架构,比 FMQP 稍微更具弹性(大约 2-3.6%)。
0.97%的SET(PW:1000ps)导致FMQP中的不正确结果,而BMQP中的该比例为0.79%。对于两种模型,在所有SET导致不正确输出的端口中,大约30%是复位端口(即SETs复位百分比)。这表明即使在低SETFIR下,复位线路的关键性。该比例在SEUs中约为9.5%,在MBUs中约为5.2%,两种模型均如此。
与SEUFIR和SETFIR(PW:1000ps)相比,MBUFIR更高。MBUFIR在三种故障模型中最高,因为其故障率高(即两个SEU)。SETFIR最低,因为SET中故障掩蔽的机会通常更高。SET故障传播取决于SET PW(见表5)和设计频率。在更高频率下,时钟沿会更多,这意味着更有机会让SET被触发器捕获 33。
FT模式可以在DMR(即故障安全)和TMR(即故障操作)模式下运行。DMR模式可使用比较器电路检测所有故障。相比之下,TMR使用多数投票器TMR模式检测并在输出端产生正确结果。使用传统方法实现FT模式(TMR)以完成三项任务将需要九个CNN加速器。
总延迟(TL)为15.63微秒,相当于326.6 GOPs[^45]。FT模式下延迟、功耗和能耗的详细实验结果如表7所示。
Ultimately, Deep Neural Networks (DNNs) 将在硬件上实现。因此,分析硬件故障对神经网络的影响至关重要。多种因素会影响深度神经网络的韧性,例如量化、层类型、网络架构、权重的位位置、裁剪、数据类型等。例如,考虑一个 DNN 模型的权重参数值被表示为浮点 32(FP32)数。FP32 数中最高有效指数位的故障会显著改变 DNN 参数的值,并大幅降低准确率 [^46]。大多数研究仅考虑对神经网络权重的故障注入。参考文献 34 认为,DNN 模型的可靠性也受到所针对硬件(即 ASIC 或 FPGA)实现的硬件架构的影响。例如,共享缓冲区中的故障可能因重用(输出特征图、权重重用、输入特征图等)而被多次读取,因此相同的错误值可以迅速分布到多个位置 35。因此,对于安全关键型应用,进行彻底的设计分析变得至关重要。本研究在 SET、SEU 和 MBU 故障模型上的故障分析结果为 CNN 硬件加速器架构的韧性提供了良好的洞见。
2) 配置存储器中的故障注入
在 ASIC 中,逻辑永久映射到硅晶体中的门电路和触发器。相比之下,在 FPGA 中,逻辑映射到可编程逻辑块(CLB),这些块由查找表(LUT)、触发器(FF)和路由资源(交换矩阵、多路复用器等)组成。与 ASIC 不同,FPGA 提供可编程性,使得通过加载新的比特流来改变功能成为可能。比特流由配置帧组成,用于设置 FPGA 结构中所有可编程和内存元素。然而,需要认识到这些比特易受辐射诱发效应的影响,因此必须针对各种故障场景进行彻底审查。
[^47] 的作者已研究发现,FPGA 中故障的影响有时与 ASIC 不同,这是由于 FPGA 织构与 ASIC 有所不同。即,FPGA 配置存储器(CRAM)中 SEU 的最终效果,并且可以通过比特流重配置来缓解。为评估 FT 模式下 SEU 对 CRAM 的影响,已基于 ZCU102 构建了一个故障注入平台。此外,该平台具有对 FPGA 比特流进行动态部分重配置的能力,旨在用于 DS 模式。
FPGA 的 CRAM 由成千上万个帧组成,包含必需位和非必需位。对被认为对系统功能关键的必需位执行 FI,采用以下步骤:1)比特流生成后(参见图 2),从逻辑位置信息文件中提取与加速器实例对应的配置帧编号。2)利用帧编号和必需位信息生成线性帧地址(LFA)。3)Soft Error Mitigation (SEM) IP 核 [^48],由运行在 Zynq 处理器上的应用软件控制,在 CRAM 中执行故障注入。除了促进故障注入,SEM IP 核还可以执行故障检测与校正。CRAM 中故障注入的主要关注点如下:
• 对随机选取的 4000 个不同必需位 LFA 执行 FI。SEM IP 持续监控 CRAM,并使用基于 ECC 与 CRC 的算法修复故障位。根据故障位置,使用 SEM IP 核的故障检测/校正延迟在 3.14 ms 到 48.96 ms 之间变化。此延迟进一步取决于时钟频率、FPGA 大小 [^48]。
• SEM IP 旨在检测并纠正发生在 CRAM 内的 SEU。值得注意的是,SEM IP 核不捕获组合逻辑中发生的 SET,也不识别顺序逻辑中的 SEU/MBU。因此,SEM IP 与基于 TMR/DMR 的多数投票设计结合,可覆盖多种故障模型,即 SET、SEU、MBU 以及 CRAM 中的 SEU。
B. HP 模式
该模式将所有任务并行执行,即每个加速器执行单个任务(见图 8 和 9),从而将总延迟 (TL) 减少 2 倍。在 HP 模式下的实验结果如表 7 所示。HP 模式的主要结论是
延迟降低了 2 倍,即 FMQP 中从 15.63 微秒降至 5.21 微秒,BMQP 中从 15.685 微秒降至 5.27 微秒(考虑所有 BMQP 加速器同时获得输入),相当于拥有 0.979 TOPs 的计算功率。
每个加速器的功率和能耗略有差异,因为在 HP 模式下,每个加速器处理不同的输入样本。与 FT 模式相比,能耗降低约 2 倍。
由于整体延迟更短,HP 模式下所有加速器的总能耗低于 DS 模式(CG 和 PR)。
C. DS 模式
在此针对老化的模式下,只有一个加速器一次处于工作状态,任务采用 TDM 方法顺序执行。
与由于高能粒子导致的SEU、SET和MUB类似,晶体管老化也是集成电路中另一重要的可靠性关注点。老化是指由于热载流子注入(HCI)和偏置温度失稳(BTI)导致的晶体管阈值电压逐渐降低、载流子迁移率下降等,进而使电路性能随时间逐步恶化的过程 [^3], [^4]。这会导致晶体管的开关速度变慢,进一步引发大量时序失败,从而降低电路的整体工作寿命。老化速率受到多种因素影响,例如供电电压、开关活动、温度、晶体管应力持续时间等。在本研究中,我们采用了加速器的冗余实例,这在需要高计算(HP模式)和高可靠性(FT模式)的场景中非常有帮助。如果这些模式处于非活动状态,冗余加速器会持续承受应力,进而加速老化。每当时钟信号跳变时,电路中的元件(即触发器、组合逻辑门等)也可能改变状态,从而导致功耗。由电路开关活动产生的功耗称为动态功耗。在这种情况下,一种功耗优化方法——时钟门控(CG)可以对空闲加速器禁用时钟信号,从而减少不必要的开关活动。这降低了动态功耗,从而减缓了老化过程。此外,我们还研究了部分重配置(PR)方法,以降低电路元件的应力。PR方法的主要目标是仅保留已配置的加速器,并擦除空闲加速器的配置区域。这可以通过在AMD Xilinx FPGA中使用动态部分比特流重配置工作流程来实现。简要工作流程包括:1)为FPGA面料上的每个加速器分配一个可重配置区域(RR);2)为所有RR生成部分比特流;3)当一个RR中的加速器处于活动状态时,另外两个RR保持空白(即黑盒)。在DS模式下,总延迟为15.63微秒,相当于108.88 GOPs。详细实验结果见表7,DS模式下CG与PR比较的主要结论如下。
在空闲的 FMQP 和 BMQP 加速器中,动态功耗(CG)降低约为 65.6% 和 68.6 %。这有助于减缓老化过程。
DSP、Block RAM(BRAM)和 Logic 等组件是动态功耗的最大消耗者,占总功耗约 86%。在这些组件中,DSP 单元功耗最高,其次是 BRAM。Logic(包括 LUT 和寄存器)排名第三。(在所有设计中)
FPGA 设备的静态功耗表示晶体管漏电功耗,并且是工艺、电压和温度的函数 [^49]。这在所有设计中大致相同,即约 2.5W。
使用 CG 方法,ASIC 的动态功耗降低比例比 FPGA 更大,原因是 ASIC 在时钟树设计上具有更大的自由度和控制权 [^50]。
我们的实验结果显示,即使是单个空闲加速器仍然消耗 34.5 % 的动态功耗,导致电路老化。使用 PR 移除空闲加速器可以在此类场景下实现最大功耗节省。经过特定时间间隔 (T),现有加速器被擦除,随后下一个加速器在分配的 RR 上动态配置(见图 11)。因此,PR 方法比标准 CG 方法更能减缓老化。
在故障注入平台上,使用处理器配置访问端口 (PCAP) 接口完成单个加速器实例的 PR 大约需要 34 ms。该延迟取决于 RR 的大小、时钟频率以及用于 PR 的 FPGA 和接口的大小(ICAP/PCAP)。在此情况下,PR 被安排在系统非活动或待机模式期间执行,确保有效降低与延迟相关的安全风险。
图 11. FPGA 结构 {左侧}: 在 CG 设计中 {右侧}: 在 PR 设计中.
D. 与先前研究的比较
表 8 给出了我们基于 FPGA 的实现结果与以往研究的定量对比。对比涵盖了 FPGA 与基于 ASIC 的实现的神经网络部署。为简化对比,我们使用了 FMQP 模型。我们的方法比以往研究更能从 CNN 加速器中挖掘性能。加速器的性能随工作模式不同而变化。DS、FT 和 HP 模式分别提供 108.88 GOPs、326.6 GOPs 和 0.979 TOPs。
表 8
针对基于 FPGA 的设计,我们的方法能够以功耗高效的方式处理多任务,即使在 DS 模式下也能保持良好的性能。例如,与 36 的对比,后者使用的 CNN 模型几乎与我们的相同,但仅处理来自单一模态的一个任务。相比之下,我们的方法能够处理来自两种不同传感器模态的 3 个任务。与其他基于 FPGA 的实现相比,我们的结果在性能和功耗/能耗方面表现出竞争力,并且具有可重构/自适应的附加优势。
一般来说,对于特定应用,ASIC 实现比在 FPGA 上实现同一设计更具功率/能耗效率。然而,除 37 与 [^51] 外,我们的结果与其他 ASIC 实现相比仍具竞争力。此外,我们的方法提供了增强的可再配置支持,满足 AI 应用在高性能和高可靠性领域的动态需求,这在表 1、2 和 8 的综合比较中可以明显看到。
第八节 结论与未来工作
共享层方法利用CNN的基本操作原理,在单个优化的多模态多任务应用专用CNN加速器上执行三项不同的任务。通过引入冗余,该方法进一步被用于提出具有可重配置功能的容错加速器,适合在FT、DS和HP模式下运行。详细的工作流程、方法学、实验结果和故障注入分析已展示,证明了我们方法相较于最先进技术的有效性和多功能性。本工作是迈向更高效、可重配置、智能化AI处理系统的关键一步,这些系统能够适应不断变化的AI应用需求。
未来工作将聚焦实现一个完全可重配置的AI处理系统,由四大主要构件组成:1)片上传感器(温度、老化、SEU传感器等),2)可重配置的四核RISC-V核心,3)可重配置的AI加速器,和4)可重配置硬件(即FPGA)。这些构件将帮助在FPGA晶格上动态重配置RISC-V处理核心、AI加速器和RRs,以优化性能、降低能耗并提升可靠性。
脚注
- GOPs = 十亿操作每秒, TOPs = 万亿操作每秒
参考文献
其他参考文献
Y. Umuroglu, N. J. Fraser, G. Gambardella, M. Blott, P. Leong, M. Jahre, and K. Vissers, “FINN:一个快速、可扩展的二值神经网络推理框架,” in Proc. ACM/SIGDA Int. Symp. Field-Programmable Gate Arrays, Feb. 2017, pp. 65–74, doi: 10.1145/3020078.3021744.
S. Srinivasan, P. Mangalagiri, Y. Xie, N. Vijaykrishnan, and K. Sarpatwari, “FLAW:FPGA 寿命感知,” in Proc. 43rd Annu. Conf. Design Autom., Jan. 2006, pp. 630–635, doi: 10.1145/1146909.1147070.
J. Peng, L. Tian, X. Jia, H. Guo, Y. Xu, D. Xie, H. Luo, Y. Shan, and Y. Wang, “多任务 ADAS 系统在 FPGA 上,” in Proc. IEEE Int. Conf. Artif. Intell. Circuits Syst. (AICAS), Hsinchu, Taiwan, Mar. 2019, pp. 171–174, doi: 10.1109/AICAS.2019.8771615.
M. T. Ajili and Y. Hara-Azumi, “多模态神经网络在混合 CPU-FPGA 架构上的加速:案例研究,” IEEE Access, vol. 10, pp. 9603–9617, 2022, doi: 10.1109/ACCESS.2022.3144977.