-
摘要:
随着新一轮科技革命和产业变革的深入发展,安全可靠的数据要素流通已成为当前迫切需要解决的问题. 从而,数据交易所已开始使用区块链技术进行数据要素流通,能一定程度提升数据要素流通过程中的信任和监管能力. 但区块链技术在面对海量的数据要素交换时仍需进一步研究以提升效率. 因此,针对当前基于区块链的数据要素流通过程中效率偏低问题,提出区块链数据加速交换方法. 首先,提出数据要素流通动态位置模型,方便数据交易所进行数据流通方向管理. 其次,提出数据要素聚合上传方法,实现针对数据要素附带流通目的地的深层次聚合,以进一步加速区块链数据交换. 随后,提出可选自动去重下载方法,以解决数据经区块链流通面临的应用问题. 最后,通过一系列实验验证,提出的区块链数据加速交换方法能在已启用区块链交易打包等技术的条件下,进一步提升数据要素交换的效率,其相比于区块链框架所提供的异步数据交换方法,能获取约9.24倍的额外数据交换性能.
Abstract:With the advancement of the new technological revolution and industrial transformation, secure and reliable data circulation has become a pressing issue. To address this, data exchanges have begun leveraging blockchain technology to facilitate data circulation, thereby enhancing trust and regulatory capabilities during the process. However, blockchain technology still faces challenges in handling large-scale data element exchanges efficiently. To improve efficiency in the circulation of data elements via blockchain, we propose a blockchain data exchange acceleration method. Firstly, a dynamic location model for data circulation is introduced to aid data exchanges in managing the direction of data flows. Secondly, a data element aggregation upload method is proposed, enabling deep aggregation of data elements with specified circulation destinations, thus accelerating blockchain data exchange. Thirdly, an optional automatic deduplication download method is presented to address application issues encountered in blockchain-based data circulation. Finally, experimental results demonstrate that the proposed blockchain data exchange acceleration method, when combined with blockchain transaction packaging technologies, significantly enhances the efficiency of data element exchanges. Compared with the asynchronous data exchange method provided by existing blockchain frameworks, our method achieves approximately a 9.24 times improvement in data exchange performance.
-
Keywords:
- data element /
- blockchain /
- data circulation /
- data aggregation /
- acceleration exchange
-
随着人工智能的发展,深度神经网络(deep neural network,DNN)作为典型的机器学习模型已经被广泛地应用于边缘设备上[1-2],例如自动驾驶、智能家居、智慧医疗等应用领域. 然而,边缘设备拥有的资源(如能源、计算单元和存储单元等)是十分有限的,这限制了DNN在边缘设备上的高效部署. 尽管许多压缩技术[3-9]通过减少神经网络模型参数在一定程度上能够节省资源的使用,但随着压缩率的持续升高,模型推理准确率会产生明显的下降. 随机计算(stochastic computing,SC)[10-12]作为一种新兴的计算技术由于其特殊的数据表示和计算模式,使得其对于神经网络在硬件上的部署具有低能耗、低开销的优势. SC通过使用简单的逻辑门近似运算以替代传统浮点数计算中复杂的算术单元,大大降低了计算单元单位时间内的能耗,以及计算单元和存储单元的使用量.
SC使用一个随机的0/1比特串来表示数据,它不同于传统的二进制比特串—每个位置具有不同的权重值. 对于SC数据来说,每个位置的权重都是一样的. 因此,SC数据在噪声环境中具有很高的数据容错性,1个比特位发生翻转,对整体数值的影响并不大. SC数据具有2种数据类型:单极(unipolar)数据和双极(bipolar)数据. 单极数据表示的是[0, 1]范围内的实数,双极数据表示[−1, 1]范围内的实数. 对单极数据来说,对任意的实数x(0≤x≤1),0/1比特串中的每个比特都有x的概率为1,都有1−x的概率为0,即x=P(串中出现1). 图1(a)(c)中的比特串A,B,C均为单极数据表示. 例如,比特串A:11010100的长度为8,其中出现4个1,因此该比特串表示的数据xa=4/8=0.5. SC也可以表示−1~1的数据x,即双极数据. 这种数据表示方式只需要对比特串中1出现的概率进行简单地变换即可,即x=2×P(串中出现1)−1. 因为概率P的范围一定是[0, 1],因此双极数据x通过线性变换被调整到[−1, 1]范围内. 图1(b)(d)中的比特串A,B,C均为双极数据表示. 例如,比特串A:11000000的长度为8,其中出现2个1,则P=2/8=0.25,那么数据xa=2×0.25−1=−0.5. 对于SC数据来说,数据精度由比特串长度决定,数据比特串的位数越长数据表示越精确.
基于这样的数据表示方式,传统计算中的算术运算就可以利用概率知识来近似计算. 利用SC技术,传统浮点数运算中复杂的加法器、乘法器等算术单元可以用简单的逻辑门代替. 例如,对于单极数据来说,可以利用一个简单的与门(AND)来近似乘法运算(见图1(a)). 它是利用概率计算中,2个独立事件A,B,P(A∩B)=P(A)×P(B)来近似计算,即P(A∧B)=xa×xb. 对于双极数据的乘法来说(见图1(b)),可以用同或门(XNOR)来近似. 在概率计算中,P(A⊙B)=P(A)P(¯B)+P(¯A)P(B),即P(A⊙B)=xa+12×(1−xb+12)+(1−xa+12)×xb+12=xaxb+12,P(A⊙B)的结果正好就是xaxb结果的双极数据表示. 因此,双极数据的乘法可以用同或门来近似见. 类似地,单极数据和双极数据的加法都可以用或门来近似,见图1(c)(d). 利用概率计算,SC算术单元的复杂度被极大地简化,这减少了算术单元的运行能耗和硬件使用面积. 但是,这种近似方式会产生较大的计算误差. 因为要满足上述的概率计算公式,比特流A和流B的生成需要是独立事件,且在用或门近似加法运算时需要满足A,B是互斥事件. 因此,对于SC来说,设计高准确率的算术单元至关重要.
现有的基于SC的工作[13-16]大多集中于设计高准确率的算术电路,接着利用这些算术电路将DNN模型部署到硬件设备上进行推理. 这种部署往往通过启发式的方法确定一组模型配置(如模型结构、数据比特串长度等)用于硬件实施. 并且,这种部署不会考虑动态改变的硬件环境(例如,电池电量会随着消耗而减少). 这些设计往往能够获得较高的推理准确率,却忽略了硬件效率和电池使用时间. 另外一些工作[17-18]考虑设计数据精度缩放方法以灵活地改变数据比特串长度,但是神经网络依然被运行在固定的硬件配置上,使得硬件的使用效率没有被充分发挥.
因此,面对有限且动态变化的硬件资源,为了满足模型推理的时间约束和准确率要求,本文针对基于SC的神经网络创新性地提出了一个运行时可重配置的框架RR-SC.对于电池搭载的边缘设备来说,面对动态变化的电池电量,本文提出利用动态电压和频率调节(dynamic voltage and frequency scaling,DVFS)技术来进行硬件层面重配置以节省能源使用. DVFS根据剩余的电池电量情况,对硬件的电压和频率进行相应的调节. 在电池电量充足时,使用较高的电压/频率(voltage/frequency,V/F)等级使模型保持在一个较快的速度上进行推理;在电池电量降低到一定程度时,切换至较低的硬件V/F等级以降低单位时间内的推理能耗,使得模型能够在有限的能源内运行更多次数,以延长电池的使用时间. 除了硬件层面使用DVFS进行重配置外,RR-SC还结合了软件层面的重配置以满足模型推理的实时性约束. 如果在模型推理时仅仅在不同的电量对硬件的V/F等级进行切换,会使得一组模型配置在高V/F等级时能够满足时间约束,而切换到低V/F等级时推理时间变长,预先设定的时间约束无法被满足. 因此,我们设计了RR-SC框架自动地为不同的V/F等级选择出最佳的软件配置. RR-SC利用强化学习(reinforcement learning,RL)[19-20]技术一次性为不同的V/F等级生成对应的模型配置,即模型结构、SC算术单元、数据比特串长度等,以满足模型推理的时间约束和不同V/F等级下的准确率要求,同时尽可能地延长电池的使用时间. 为了实现运行时的轻量级切换,RR-SC只生成1组模型结构作为主干网络,从而能够在不同的硬件配置下快速切换.
本文的主要贡献包括3个方面:
1) 为了满足基于SC的神经网络推理的实时性要求,并尽可能地延长电池搭载的边缘设备的使用时间,本文创新性地提出将硬件重配置和软件重配置相结合.
2) 基于自动机器学习技术提出了一个运行时可重配置的框架RR-SC,以自动地生成硬件配置对应的模型配置(即软件重配置). 选择的软件配置拥有最好的准确率和运行效率的权衡. 除此之外,模型运行时在一个搜索出来的主干网络上进行软件配置切换,以实现轻量级软件重配置.
3) 实验结果表明,RR-SC能够保证在所有硬件级别下满足实时约束,并且可以在准确率损失仅为1%的情况下将模型推理次数增加7.6倍. 同时,它还能在110 ms内满足不同软件配置的轻量级切换.
1. 相关工作
SC近似计算产生的高计算误差使得基于SC的DNN实现的相关研究[13-16]主要集中于设计高准确率的硬件电路. 由于乘积累加(multiply-accumulate,MAC)运算是DNN实现中的基本运算,因此我们主要讨论乘法器和加法器的设计与实现. 文献[13]提出使用同或门作为乘法器,并且提出了一个基于多选器树(MUX-tree)的加法器,我们称这个算术电路为XNOR-MUX.XNOR-MUX受制于比特流间的相关性问题(即概率近似失效),使得计算误差较大. 文献[14]将正负数据分开计算,并利用与门作为乘法器. 同时,它提出一种新的加法器,这种加法器分别计算正数数据的和(POS)与负数数据的和(NEG),最后利用POS−NEG+12对结果进行巧妙地转换,这种转换只需要一个MUX门,使得单极数据计算的结果正好为双极数据表示下正数部分和负数部分的差. 我们称这个电路为AND-SEP. 但当输入数据数量较多时,该加法器在没有数据缩放时会产生计算溢出问题使得计算误差较大. 文献 [15]为双极数据设计了新的乘法器uMUL和加法器uNSADD,并利用并行计数器来缓解输入的相关性问题. 但在某些特殊情况下会出现冗余1或缺失1的问题从而产生计算误差,这种电路被称为uGEMM. 文献[16]进一步提出了一种基于累加器的块内加法器以减少计算错误,并设计了一种输出修正方案来解决块之间的冗余/缺失1的问题. 块内的算术电路被称为AND-ACC,带有输出修正方案的电路被称为AND-LOOP.这些设计虽然相比传统的二进制电路具有更低的运行能耗,但它们都没有考虑电池搭载的边缘设备电量动态改变的情况,因此没有涉及任何软件和硬件的重配置. 当神经网络被部署到硬件上时,模型推理始终运行在相同的V/F等级下,模型的推理会快速消耗电池电量,使得模型最终推理总次数较少.
另一方面,文献[17-18]考虑了运行时比特串长度的动态改变. 文献[17]提出一个新的计算提前终止方法,使得模型推理时可以只利用较少位数的比特串就能获得较好的推理准确率. 文献[18]扩展了文献[21]的方法并设计了新的数据表示方式,使得输入、输出数据的精度可以在运行时任意更改. 这些工作虽然实现了运行时软件层面的重配置,一定程度上延长了电池的使用时间,但它们都运行在固定的硬件配置下,使得硬件资源没有被充分利用.
因此本文提出一种软/硬件协同重配置的方式,利用硬件重配置以尽可能地延长电池使用时间,增加模型的推理总次数. 同时搭配软件重配置以满足机器学习任务的实时性要求. 本文提出的方法充分利用硬件资源,实现高效实时的模型推理. 同时,保证了模型推理的准确率.
2. 动机和问题定义
2.1 动 机
动机1:电池搭载的边缘设备的能源是有限且动态变化的. 大多数移动设备都是电池供电的,例如手机、无人机、机器人等[22]. 延长能源有限的电池使用时间是很重要的. 同时,任务执行需要符合实时性要求. 面对有限的能源资源,许多模型压缩方法[3-5]通过减小模型大小和参数数量在一定程度上提高模型推理速度以降低能源消耗. 但是这些压缩方法依然依赖于复杂的浮点数算术电路运算,在能源消耗方面仍有很大的优化空间. SC利用新的数据表达方式和简化的算术电路进一步降低模型推理能耗,但由于数据表示精度、电路计算误差等问题,使得许多研究者都致力于研究高准确率的算术电路,忽略了硬件的效率和动态变化的硬件资源. 因此,面对逐渐减少的电池电量情况,DVFS[23]技术常被用于硬件重配置,以节省能源使用. 表1 展示了 Odroid-XU3平台中Cortex A7内核的可用V/F等级. 本文针对电池搭载的边缘设备,在电池电量较高时配置较高的V/F等级;当电池电量降低到一定程度时,切换到更低的V/F等级. 在本文中,我们称这种动态电压和频率等级调节为硬件重配置.
表 1 Odroid-XU3 移动平台中 ARM Cortex A7 内核支持的电压/频率等级Table 1. V/F Levels Supported by ARM Cortex A7 Core in Odroid-XU3 Mobile Platform等级 频率/MHz 电压/mV l1 400 916.25 l2 600 917.5 l3 800 992.5 l4 1000 1066.25 l5 1200 1141.25 l6 1400 1240 动机2:仅仅使用硬件重配置无法满足实时性要求. 我们通过对比实验验证了硬件重配置能够延长电池使用时间,实验结果展示在表2中. 为了度量电池的使用时间,本文用模型在一定能源总量下的推理总次数来表示,表2中所有的方法都具有相同的能源总量. 实验设置S1和S2使用了相同的多层感知机(multi-layer perceptrons,MLP)模型. 我们设定MLP模型的结构为784-100-200-10,表示MLP的3层全连接层分别有100,200,10个神经元,784表示输入数据的大小. 模型推理时使用AND-ACC算术电路. 在本实验中的模型配置均使用默认设置,但对于RR-SC方法,模型的配置通过优化方法确定. 实验设置S1仅使用一种模型配置,且模型推理运行在固定的硬件配置下,这里的SC数据使用32 b的0/1串表示. 在实验设置S2中使用了硬件重配置(即DVFS),S2一共设置了3个V/F等级F,N,E. F模式表示使用高V/F等级下的快速执行模式;N模式表示使用中间V/F等级下的普通速度执行模式;E模式表示使用低V/F等级下的节省能耗的执行模式. 相应地,我们选择表1中的l6,l4,l3分别作为F模式、N模式和E模式下的V/F设置. 从表2中我们可以看出,在S2实验设置下,由于配置了DVFS技术,模型的总的推理次数相比于S1实验设置提升了1.4倍,这表明DVFS能够在一定程度上延长电池使用时间. 然而,当V/F等级降低时,如S2实验设置下的N模式和E模式的模型推理时间无法满足时间约束. 因为当频率降低时,计算速度也相应地变慢. 在本实验中,我们设置的时间约束为45 ms.
表 2 时间约束 45 ms下的3种实验设置运行结果对比Table 2. Running Results Comparison of Three Experimental Settings with the Time Constraint of 45 ms设置 模型 数据精度 准确率/% DVFS 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升 S1 M1 32 95.4 F 32.7 √ 298.1 2.0×105 - S2 M1 F 32.7 √ 298.1 1.0×105 32 95.4 N 45.8 × 230.2 7.8×104 1.4倍 E 57.2 × 124.1 9.7×104 S3 M1 32 95.4 F 32.7 √ 298.1 1.0×105 M2 16 88.1 N 28.9 √ 142.1 1.3×105 2.3倍 M3 8 62.2 E 23.8 √ 51.8 2.3×105 注:实验设置S1表示没有任何运行时重配置,S2表示仅具有硬件重配置,S3表示同时具有软件和硬件重配置;“-”表示性能比较基准. 为了解决仅使用硬件重配置无法满足实时性要求的问题,我们探索了软件重配置以搭配不同的硬件配置. 在不同的硬件V/F等级下搭配不同的数据精度,以降低运行的时间和能耗、满足实时性要求和增加模型推理总次数. 我们同样用实验来证明,如表2中的S3实验设置:结合硬件重配置和软件重配置. 实验结果表明,S3设置下模型推理总次数是S1模式下的2.3倍,并且相比于S2模式提升了近40%. 与此对应的是,模型推理准确率产生了一定程度的损失. 通过搭配DVFS,模型推理总次数显著增加,电池一次放电的使用时间延长. 接着搭配软件重配置,也就是不同的模型配置,模型推理的时间约束能够被满足.
2.2 问题定义
本文为了解决动机1和动机2对应的问题,提出了一个完整的基于自动机器学习的框架,能够为不同的硬件配置一次性选择多种软件配置. 本文的问题定义为:
定义1. 给定边缘设备能源总预算TE,推理时间约束TC,一组运行时用于切换的V/F等级L={l1,l2,…,li,…},各等级下的准确率约束AC={Ac1,Ac2,…,Aci,…},本文框架主要用于决定:
1) 一个主干网络模型结构BM;
2) 一个随机计算算术电路C;
3) 多组用于软件重配置的比特串长度BL={bl1,bl2,…,bli,…}.
运行时,硬件根据剩余的能源(即电池电量)切换相应的V/F等级,被选择出来的主干模型BM使用算术电路C进行推理运算,根据不同的V/F等级切换相应的数据精度BL. 通过RR-SC选择出来的软件配置可以满足时间约束TC和各级准确率约束AC,同时最大化模型BM在不同V/F等级下的推理次数总和以及模型推理准确率. 本文使用模型在总能源预算TE下的推理次数来表示硬件的效率. 因此本文的优化问题可以表示为:
MaximumRuns+Accs.t.∀lati≤TCand∀Ai≤Aci, 其中Runs表示模型在V/F等级L下的总运行次数,Acc表示多个模型推理的平均准确率,lati和Ai分别表示各V/F等级下的模型推理时间和准确率.
3. RR-SC框架设计
3.1 总体设计
图2展示了RR-SC框架的整体设计. 我们建立了一个基于循环神经网络(recurrent neural network,RNN)的RL控制器(见3.2节),用来从预先定义好的离散的搜索空间选择出相应的软件配置. RL控制器利用深度机器学习的方法,可以通过训练优化以预测出更好的结果. 离散搜索空间由模型结构(包括层数、每层神经元个数、卷积核大小等)、SC算术电路库、数据精度(即数据比特串长度)组成. RL控制器选择出来一组模型结构作为主干网络BM,在不同的V/F等级下均使用相同的SC算术单元C推理以节省能耗和切换开销. 同时RL控制器生成多种数据精度BL,以在不同的V/F等级下进行轻量级切换. 当模型配置确定后,主干网络接着被训练和推理以获得各等级的能耗、时延和准确率(见3.3节). 这些指标被输入设计好的反馈函数(见3.4节)得到奖励值R,R值被用于更新RL控制器参数使其能够快速收敛. RL控制器的选择过程被执行EP次,每次通过从环境中获得的奖励值R来更新RNN网络的参数以指导下一次的参数选择.
3.2 强化学习控制器
为了一次性地获得能够满足时间约束TC和准确率约束AC的软件配置,本文利用RL技术来为基于SC的DNN智能、高效地选择最好的参数,以在固定能源总量下获得最多的模型推理次数和最好的推理准确率. RL控制器是RR-SC框架的核心部件,它的设计基于深度学习网络模型. DNN的应用使得RL控制器在收敛到全局最优解方面具有很大的优势. 智能体(agent)每次自动地观察环境状态并通过奖励值进行参数的自我更新,以在未来的执行过程中得到更好的动作预测结果.
1)状态空间(state space). 本文使用基于SC的DNN在相应参数配置下的推理准确率Acc,及在给定能源总量和V/F设置下的推理总次数Runs来表征当前的环境状态,如表3所示. RL控制器利用以往动作及相应的反馈值作为输入以学习以往的经验,用以训练自身网络,使其未来能够预测出拥有更高反馈值的参数组合. 反馈函数中的性能值能够全面反映模型在嵌入式设备上推理时的不同方面,即推理总次数反映了运行时的硬件效率,平均推理准确率反映了模型的分类水平. 它们能够使智能体更好地理解复杂的系统,并能及时捕捉环境的动态变化.
表 3 RL控制器的状态空间Table 3. State Space of RL Controller状态 描述 Acc 基于SC的DNN在相应动作下的推理准确率 Runs 基于SC的DNN在给定能源总量
及相应V/F设置下的推理总次数2)动作空间(action space). 本文的强化学习的动作空间由3类参数的组合空间组成:模型结构、SC算术电路以及数据精度. 其中,模型结构决定了推理模型的大小,它包括模型的层数、每层的神经元个数、卷积核大小、卷积步长、输入通道数等要素,包含哪些要素由具体的模型决定. 接着,本文根据现有的SC算术电路设计工作构建SC算术电路库,包括XNOR-MUX,AND-SEP,uGEMM,AND-ACC,AND-LOOP这5种电路. 数据精度指不同的SC数据表示位数,越长的数据表示越高的数据精度. 值得注意的是,RR-SC是一个可重新配置的框架,它允许将其他因素包含在内,动作空间的值可以根据不同的需求和场景进行调整.
3)智能体. 在RR- SC的设计中,强化学习中的智能体被称为RL控制器. RL控制器的实现基于一个RNN网络,这和文献[24]中的实现类似. RNN相关的网络能够很好地处理序列相关的输入,提取和保留序列中的上下文关系及信息,因此RL控制器有助于通过学习以往动作中的经验,不断训练出更好的RNN网络以做出更好的选择. 首先,RL控制器从动作空间内预测出一组模型结构,一个SC算术单元和多组数据精度用于在不同的V/F等级下进行切换,这种预测是基于一个Softmax分类器. 选择出来的参数用于构建主干模型. 接着进行模型的预训练和硬件推理,通过训练和推理,模型的能耗、时延和准确率会被获得以用于构建反馈函数. 接着,基于反馈函数计算得到奖励值R,一个蒙特卡罗策略梯度算法[25]被应用于更新RL控制器中的参数θ. 更新θ的计算公式为:
∇J(θ)=1mm∑k=1T∑t=1γT−t∇θlbπθ(at|a(t−1):1,θ)(Rk−b), 其中,m表示RNN输入的批次大小,T表示每次选择的步数. 奖励值R在每一步都按指数因子减少,基线b是R的平均指数移动. θ的更新是为了让RL控制器在下一轮的搜索中选择拥有更高R值的配置,使其可以更快地收敛到全局最优解.
为了获得更稳定的结果[26],我们对RR-SC执行多次,并以拥有最高R值的配置作为我们最终的结果. RR-SC的搜索时间开销以多次运行的平均时间计算得到.
3.3 模型训练和推理
当RL控制器选择出来一组模型配置后,模型训练和推理过程被启动. RL控制器选择出来的模型配置包括模型结构,即模型层数、每层神经元个数、卷积层核数、步长等,SC算术电路和多种数据精度. 当选择出来的模型配置通过性能预测器(见3.4节)计算得到的推理时间满足设定的时间约束TC时,开始相应的训练器和模型推理过程. 如果任意V/F等级下的时间约束和准确率约束没有被满足,那么模型的训练和推理过程被提前终止,以节省RR-SC的搜索开销. 图3展示了模型训练和推理模块的主要流程. 首先,对于选择出来的参数,模型结构被解析,对应结构的浮点数模型被构建. 接着,浮点数模型被预训练多次,以获得拥有高准确率的模型参数,即权重和偏置. 为了获得模型在硬件上的推理准确率,基于SC的模型被建立. 模型的结构与选择出来的主干网络模型相同,只是数据的表示由浮点数据转换为SC数据,即单极数据和双极数据. 所有浮点数输入数据和模型参数均通过随机数生成器(stochastic number generator,SNG)转换成SC的数据比特串. 随后,选择出来的算术电路C被用于实现基于SC的DNN模型. 对于不同的硬件配置,即V/F等级来说,被选择出来的多个数据精度分别对应多个V/F等级,应用不同数据精度的模型通过算术电路C推理得到各自的准确率. 多个模型推理的平均准确率用于计算奖励值R. 理论上讲,当硬件配备高V/F等级时,相应的高数据精度被选择出来,也就是更长的比特串长度. 这样,在硬件能源(即电池电量)相对充足时,模型推理能够尽可能的准确. 当硬件能源减少到一定程度后,数据精度也相应地被调低,这样在损失一定准确率的情况下,能够尽可能降低模型推理能耗,以延长电池的使用时间.
3.4 性能预测器和反馈函数
为了获得基于SC的模型推理时间,我们设计了一个性能预测器. 我们在高级综合(high-level synthesis,HLS)工具上模拟基于SC的加法器和乘法器,并获得当前数据精度下每个操作数计算所需的时间. 接着,我们根据选择出来的模型结构计算所有操作的数量. 这样,就可以获得模型在当前V/F等级下的推理时间. 那么当模型被切换至其他V/F等级时,推理时间可以通过频率的线性变换计算得到. 频率越高,推理的速度越快,推理时间越短. 另外,为了获得当前硬件设置下的模型推理次数,我们通过总能源TE和模型一次推理所需要花费的能耗Ei计算得到. 模型一次推理所花费的能耗Ei通过功率乘以时间得到,即Ei=Poweri×lati. 其中,当前V/F等级下的功率和时延通过模型在HLS中模拟得到. 那么模型的推理总次数Runs即为当前等级的总能源TEi与一次推理所需的能耗Ei的比值,即
Runs=∑iTEi/Ei. 本文假定在相同的工作负载和不变的物理环境下设计,因此忽略工作负载和环境变化带来的功率的动态变化. 除此之外,温度对能耗也有一定的影响,但本文所使用的随机计算技术是一种显著降低模型推理能耗的技术,低能耗技术对工作温度的影响很小甚至没有[27]. 并且,本文在相同的起始温度下对不同的软硬件配置进行能耗预估,温度对能耗的影响对于最后的配置的选择几乎没有影响. 因此本文不考虑温度对能耗的影响.
经过模型训练和推理过程,以及模型预测器的高级综合之后,可以得到模型在各个V/F等级下的推理次数和准确率. 接下来,当前轮的奖励值R可以通过反馈函数计算用以更新RL控制器. 反馈函数同时也用来表示我们的优化目标,即在时间约束TC及准确率约束AC下,最大化模型推理次数和准确率. 反馈函数的计算公式为:
R={−1+Rrs,∃lati>TC或∃Ai<Aci,Avg(Ai−AlAu−Al)+Rrs,∀lati≤TC且cond=True,Avg(Ai−AlAu−Al)−pen+Rrs,其他. 在介绍具体的函数之前,我们先介绍5个符号:1) Rrs指的是多个模型推理总次数的归一化值,它的范围在[0,1];2)lati表示每一种V/F等级下模型的推理时间;3)Ai表示各种V/F等级下的模型推理准确率,Au和Al是我们预先设置的最高准确率和最低准确率,用以对准确率进行归一化;4)Aci表示各V/F等级下的准确率约束; 5)cond是一个二值条件,cond=True表示对于∀i<j,我们有Ai>Aj,意味着运行在高V/F等级的模型拥有更高的推理准确率,否则cond=False,在这种情况下我们会给奖励值R一个惩罚pen.
那么,对于计算奖励值R有3种情况:
1) 如果∃lati>TC或者∃Ai<Aci意味着时间约束TC和准确率约束AC并不是在任意的V/F等级下都被满足,这里我们直接设置R=−1+Rrs. 这意味着,当通过性能预测器得到的模型在选择的动作参数下无法满足边缘设备要求的时间约束TC时,就不需要进行真正的模型训练和推理以获得准确率,因此直接将准确率反馈值设置成−1. 这样, RR-SC的搜索开销在一定程度上就可以减少. 同样地,如果基于SC的神经网络模型在某些V/F等级下的推理准确率无法满足预期的要求,那么其他V/F等级下的模型就不需要再耗费时间和资源进行推理.
2) 如果任意V/F等级下的推理时间约束和准确率约束都能够被满足,并且cond=True,也就是期望拥有高V/F等级的硬件配置能够获得更高的准确率,那么我们使用归一化后的平均准确率和模型推理总次数作为奖励值R. 这种情况对应着本文优化问题的目标函数,RR-SC期望在满足时间约束和准确率约束的情况下,最大化运行总次数和推理准确率.
3) 否则,我们在第2种情况下的奖励值R增加一个惩罚值pen. 因为RR-SC更希望能够在高V/F等级下拥有更高的推理准确率,给定一个惩罚值相当于告诉智能体这是一种不被期望的结果.
4. 实验结果及分析
4.1 实验设置
1)实验方法对比. 首先,我们将RR-SC框架与之前的基于SC的工作[13-16]进行对比. 本文方法结合了软件和硬件的重配置,在满足实时性约束的前提下最大限度地延长电池使用时间. 通过利用RL技术一次性选择多种软件配置对应于多种硬件配置. 硬件配置根据剩余能源电量进行V/F等级的调整,选择出来的软件配置对应各个硬件配置. 而现有的前沿工作主要针对算术电路进行设计,缺少硬件和软件重配置. 同时,RR-SC框架选择出来的模型被可视化以便于展示. 接着,我们利用RR-SC选择出来的模型结构和配置,进一步探究软件重配置和硬件重配置分别对推理时间和能源消耗的影响.
2)实验指标及平台设置. 我们使用MNIST数据集在MLP和LeNet模型上评估本文方法,使用Cifar10数据集在AlexNet模型上验证. 搜索空间的设置包括模型结构、SC算术单元、数据精度3个部分. 通过探究,我们将搜索空间内所有因素的值都收缩到一个合理的范围内,本文实验设置的搜索空间被总结在表4中. 对于硬件指标,算术电路由 Bluespec SystemVerilog实现,然后编译为 Verilog 以在Vivado v2020.2 上评估能耗、时间等硬件指标. 对于准确率指标,我们在2× NVIDIA Tesla P100 GPU 服务器(16 GB GPU 内存)上进行模型推理和RL的搜索过程. 实验在 Python 3.6.0,GCC 9.3.0,PyTorch 1.5.1 和 CUDA 10.1 环境上进行. 对于边缘设备,我们使用移动平台 Odroid-XU3 [28]. 在实现SC模型中,Sobol[29-30]随机数生成器被用于从浮点数到SC数据的转换.
表 4 MLP,LeNet,AlexNet的具体搜索空间设置Table 4. Specific Search Space Settings of MLP, LeNet and AlexNet模型 搜索空间 设置 MLP 层数 1, 2, 3 每层神经元数 32, 64, 100, 128, 200, 256, 400, 512, 1024 SC算术电路库 XNOR-MUX, AND-SEP, uGEMM, AND-ACC, AND-LOOP 数据精度 4, 8, 16, 32, 64, 128 配置组合数 241920 LeNet 卷积层、池化层步长 1, 2 卷积核大小 3, 5, 7 池化层核大小 1, 2 卷积层输出通道数 6, 16, 32, 64 全连接层神经元数 32, 64, 100, 128, 200, 256, 400, 512, 1024 SC算术电路库 XNOR-MUX, AND-SEP, uGEMM, AND-ACC, AND-LOOP 数据精度 4, 8, 16, 32, 64, 128 配置组合数 940584960 AlexNet 卷积层、池化层步长 1, 2 卷积核大小 3, 5, 7 池化层核大小 1, 2 卷积层输出通道数 6, 16, 32, 64, 256 全连接层神经元数 32, 64, 100, 128, 200, 256, 400, 512, 1024 SC算术电路库 XNOR-MUX, AND-SEP, uGEMM, AND-ACC, AND-LOOP 数据精度 4, 8, 16, 32, 64, 128 配置组合数 30233088000000 本文使用LSTM网络作为RL控制器,LSTM输入的批次大小m = 35,每次选择的步数T = 50,学习率lr = 0.99. 本文实验探究2种时间约束下的RR-SC搜索结果:对于MLP来说,本文选择95 ms和120 ms这2种时间约束来进行实验探究;对于LeNet来说,时间约束分别为540 ms和2700 ms;对于AlexNet来说,时间约束分别设置为21000 ms和125000 ms. 本文共设置3种V/F等级,从高到低分别为表1中的l6,l4,l3这3个等级. 相应地,对于在MNIST数据集上进行训练的MLP和LeNet这2种模型来说,3种V/F等级下的模型推理准确率约束分别设置为95%,90%,85%;对于在Cifar10数据集上进行训练的AlexNet模型来说,3个V/F等级下的模型推理准确率约束分别设置为90%,85%,80%. 同时,对于反馈函数中的Au和Al分别设置为98%和60%.
4.2 RR-SC框架评估
首先对于RR-SC框架的评估,我们与现有的SC相关工作[13-16]进行对比. 这些工作主要针对SC算术电路进行设计,没有充分考虑硬件环境的动态改变. 为了对比公平,将SC相关的工作与通过RR-SC搜索到的模型结构设置成一样的,并且数据精度取RR-SC方法中搜索出来的最高精度,然后对它们的模型推理准确率、时延及模型推理次数进行比较.
MLP模型在不同时间约束下的结果与SC相关工作的对比展示在表5和表6中. 表5展示了时间约束设置为95 ms时的结果,表6展示时间约束为120 ms时的结果. 表5实验得到的MLP的模型结构为784-200-32-10,表示模型具有3层全连接层,并且全连接层的神经元的个数分别为200,32,10. 表6实验得到的模型结构为784-128-100-10这2组实验选择的SC算术电路均为AND-LOOP. 我们将RR-SC选择出来模型结构及相应的算术电路进行可视化展示,如图4所示. RR-SC实验中的硬件配置均设置成表1中的l6,l4,l3. 对于其他对比工作来说,V/F等级设置为l6. 从实验结果中可以看出,AND-LOOP方法[16]拥有最高的推理准确率,XNOR-MUX方法[13]拥有最低的推理准确率. RR-SC方法的平均准确率仅比AND-LOOP分别低1个百分点和1.5个百分点. 然而,RR-SC的推理次数是AND-LOOP推理次数的2.0倍和2.8倍. 在众多参数中,RR-SC找到了最好的配置. 对于XNOR-MUX和uGEMM来说,它们的模型推理准确率和时间约束都无法满足我们的要求的. 同时,RR-SC在推理次数方面实现了高达7.6倍的提升. 对于AND-SEP和AND-ACC来说,它们在MLP 784-200-32-10模型能够满足我们的时间约束要求,但是在MLP 784-128-100-10这个模型上的时间约束要求无法被满足. 从准确率和推理时间来说,AND-ACC是最具竞争力的一个方法. 对于推理次数来说,由于结合了硬件重配置和软件重配置,RR-SC比AND-ACC实现了约1.8倍的性能提升. RR-SC方法可以在满足一定的时间约束和准确率约束的情况下,最大化模型推理次数和平均准确率,拥有最好的性能权衡.
表 5 MLP上SC相关工作和RR-SC在时间约束为95 ms时的比较结果Table 5. Comparative Results of SC Relative Work and RR-SC with the Time Constraint 95 ms on MLP方法 算术电路 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[13] XNOR-MUX 64 12.8 627.1 × 2527.3 23741 3.9倍 文献[14] AND-SEP 64 25.5 94.7 √ 762.6 78678 1.2倍 文献[15] uGEMM 64 64.8 430.5 × 3378.3 17760 5.2倍 文献[16] AND-ACC 64 94.6 93.3 √ 818.9 73269 1.3倍 文献[16] AND-LOOP 64 97.8 90.7 √ 1306.7 45917 2.0倍 RR-SC(本文) AND-LOOP 64 97.8 90.7 √ 1306.7 22959 32 96.3 73.22 √ 582.3 30912 32 96.3 91.5 √ 313.8 38241 表 6 MLP上SC相关工作和RR-SC在时间约束为120 ms时的比较结果Table 6. Comparative Results of SC Relative Work and RR-SC with the Time Constraint 120 ms on MLP方法 算术电路 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[13] XNOR-MUX 128 20.8 649.3 × 2606.1 23023 4.3倍 文献[14] AND-SEP 128 59.2 123.9 × 954.2 62880 1.6倍 文献[15] uGEMM 128 84.3 589.8 × 4623.1 12978 7.6倍 文献[16] AND-ACC 128 94.3 121.9 × 1072.3 55954 1.8倍 文献[16] AND-LOOP 128 98.3 118.2 √ 1682.1 35670 2.8倍 RR-SC(本文) AND-LOOP 128 98.3 118.2 √ 1682.1 17835 64 96.4 88.6 √ 695.3 25888 32 95.6 63.9 √ 216.3 55478 对于LeNet来说,同样地,一个较紧的时间约束实验结果和一个较松的时间约束实验结果分别被展示在表7和表8中. 表7中的实验设置时间约束为540 ms,表8实验设置时间约束为2 700 ms. AlexNet的实验结果被展示在表9和表10中,设置时间约束分别为21000 ms和125000 ms. 因为LeNet和AlexNet相较于MLP更大、也更复杂,因此我们设置了更长的时间约束. 对于表7中的实验,一个结构为Conv1(k=3,s=1, c=6)-Pooling1(k=1, s=2)-Conv2(k=7, s=1, c=64)-Pooling2(k=1, s=2)-FC1(32)-FC2(128)-FC3(10)的主干网络被选择出来. 对于表8中的实验来说,主干网络结构为Conv1(k=3, s=1, c=32)-Pooling1(k=1, s=1)-Conv2(k=5, s=1, c=6)-Pooling2(k=1, s=1)-FC1(32)-FC2(512)-FC3(10). 其中,k表示卷积层或池化层的核大小,s表示卷积层和池化层的滑动步长,c表示卷积层的输出通道数. 在卷积层和池化层之后紧接2个全连接层. 对于AlexNet网络来说,表9实验下选择出来的主干网络模型为Conv1(k=5, s=1, c=256)-Pooling1(k=1, s=1)-Conv2(k=3, s=2, c=32)-Pooling2(k=1, s=1)-Conv3(k=7, s=2, c=16)-Conv4(k=5, s=2, c=16)-Conv5(k=3, s=1, c=256) -Pooling3(k=1, s=1)-FC1(512)-FC2(1024)-FC3(10),表10实验下选择出来的主干网络模型为Conv1(k= 7, s=2, c=256)-Pooling1(k=1, s=1)-Conv2(k=7, s=1, c=64)-Pooling2(k=1, s=1)-Conv3(k=3, s=1, c=256)-Conv4(k=7, s=1, c=32)-Conv5(k=7, s=1, c=256)-FC1(1024)-FC2(512)-FC3(10). 同样地,对于LeNet和AlexNet的实验中选择出来的模型参数也被展示在图4中. 对于LeNet来说,当TC = 540 ms时,RR-SC选择出来的SC算术电路是AND-LOOP,对于TC = 2700 ms时,RR-SC在AND-ACC上有更好的表现. 从准确率的角度来说,AND-LOOP依然能够获得最高的推理准确率,但RR-SC在产生高达3.1倍的硬件效率的同时,只产生了1.2%的准确率丢失. 从推理时间的角度来说,有些SC工作在推理时能够满足我们约定的时间约束,但由于缺乏软件和硬件的重配置,使得硬件效率没有被充分发挥. 对比所有的方法,RR-SC能够产生最高4.4倍的性能提升. 对于AlexNet来说,当TC = 21000 ms时,RR-SC能够产生高达4.9倍的硬件效率提升,但比拥有最高准确率的AND-LOOP电路只产生了1.7%的准确率损失. 类似地,当TC = 125000 ms时,RR-SC比其他方法最高能达到7.3倍的运行数提升,相比AND-LOOP电路准确率损失只有0.9%. 同时,RR-SC也能够满足设定的时间约束和准确率约束.
表 7 LeNet上SC相关工作和RR-SC在时间约束为540 ms时的比较结果Table 7. Comparative Results of SC Relative Work and RR-SC with the Time Constraint 540 ms on LeNet方法 算术电路 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[13] XNOR-MUX 64 10.8 3675.9 × 1845.5 32512 1.4倍 文献[14] AND-SEP 64 56.3 555.2 × 1538.6 38996 1.2倍 文献[15] uGEMM 64 66.3 2523.2 × 2720.9 22051 2.1倍 文献[16] AND-ACC 64 95.1 547.0 × 1637.9 36632 1.2倍 文献[16] AND-LOOP 64 97.6 531.5 √ 2129.5 28175 1.6倍 RR-SC(本文) AND-LOOP 64 97.6 531.5 √ 2129.5 14088 32 95.8 429.5 √ 1275.3 14114 32 95.8 536.9 √ 687.4 17457 表 8 LeNet上SC相关工作和RR-SC在时间约束为2700 ms时的比较结果Table 8. Comparative Results of SC Relative Work and RR-SC with the Time Constraint 2700 ms on LeNet方法 算术电路 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[13] XNOR-MUX 128 19.5 14320.7 × 2961.9 20257 2.1倍 文献[14] AND-SEP 128 62.5 2621.5 √ 2550.4 23525 1.8倍 文献[15] uGEMM 128 74.3 13008.4 × 6244.0 9609 4.4倍 文献[16] AND-ACC 128 96.8 2687.9 √ 2635.8 22763 1.8倍 文献[16] AND-LOOP 128 97.2 2607.6 √ 4432.9 13535 3.1倍 RR-SC(本文) AND-ACC 128 96.8 2687.9 √ 2635.8 11381 32 95.7 1147.4 √ 1321.8 13617 32 95.7 1434.3 √ 712.4 16844 表 9 AlexNet上SC相关工作和RR-SC在时间约束为21000 ms时的比较结果Table 9. Comparative Results of SC Relative Work and RR-SC with the Time Constraint 21000 ms on AlexNet方法 算术电路 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[13] XNOR-MUX 64 9.8 138038.7 × 899459.9 66 3.6倍 文献[14] AND-SEP 64 48.2 20850.7 √ 285989.9 209 1.1倍 文献[15] uGEMM 64 60.2 94754.1 × 1237486.5 48 4.9倍 文献[16] AND-ACC 64 89.8 20542.9 √ 310091.0 193 1.2倍 文献[16] AND-LOOP 64 90.1 19960.4 √ 500412.8 119 2.0倍 RR-SC(本文) AND-LOOP 64 90.1 19960.4 √ 500412.8 59 32 87.6 16131.8 √ 223012.7 80 32 87.6 20164.7 √ 120201.5 99 表 10 AlexNet上SC相关工作和RR-SC在时间约束为125000 ms时的比较结果Table 10. Comparative Results of SC Relative Work and RR-SC with the Time Constraint 125000 ms on AlexNet方法 算术电路 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[13] XNOR-MUX 128 13.6 682697.7 × 6059624.1 9 4.0倍 文献[14] AND-SEP 128 57.4 124975.3 √ 2317931.8 25 1.5倍 文献[15] uGEMM 128 70.3 620135.8 × 11001805.0 5 7.3倍 文献[16] AND-ACC 128 90.0 128138.5 × 2631405.5 22 1.7倍 文献[16] AND-LOOP 128 91.3 124310.2 √ 4202999.0 14 2.8倍 RR-SC(本文) AND-LOOP 128 91.3 124310.2 √ 4202999.0 7 64 91.1 93190.2 √ 1737447.2 10 32 88.7 67245.5 √ 540599.9 22 除此之外,RR-SC产生的模型在不同配置中进行切换时产生的开销也非常小. 对于MLP来说,模型切换需要约9 ms;对于LeNet来说,模型切换需要约110 ms;对于AlexNet来说,模型切换需要约4030 ms. RR-SC支持实时轻量级的模型切换. MLP,LeNet,AlexNet每次因V/F等级切换而切换数据精度时产生的能耗开销分别为18 μJ,220 μJ,8.1 mJ.
4.3 硬件和软件重配置方法评估
在本节中,我们对软硬件重配置方式进行比较. MLP,LeNet和AlexNet的配置使用RR-SC选择出来的模型结构、算术电路和数据精度进行实验对比. 我们分别对比了无任何重配置、只有硬件重配置(HW)、只有软件重配置(SW)和结合软硬件重配置(RR-SC)4种方法. 对于所有的方法,MLP结构设置为784-200-32-10,LeNet结构设置为Conv1(k=3, s=1, c=6)-Pooling1(k=1, s=2)-Conv2(k=7, s=1, c=64)-Pooling2(k=1, s=2)-FC1(32)-FC2(128)-FC3(10),AlexNet模型结构设置为Conv1(k=5, s=1, c=256)-Pooling1(k=1, s=1)-Conv2(k=3,s=2, c=32)-Pooling2(k=1, s=1)- Conv3(k=7, s=2, c=16)-Conv4(k=5, s=2, c=16)- Conv5(k=3, s=1, c=256)-Pooling3(k=1, s=1)-FC1(512)-FC2(1024)-FC3(10),均使用在相对低的时间约束下RR-SC选择出来的模型结构. 为了公平比较,这4种方法均使用相同的SC算术电路,即AND-LOOP. 对于硬件重配置来说,3个V/F等级依然设置为l6,l4,l3. 类似地,只有软件重配置的设置和只有硬件重配置的其他配置被展示在表11、表12和表13中.
表 11 MLP模型上搭配/不搭配软硬件重配置方法的实验结果Table 11. Experimental Results of Methods with/Without Hardware and Software Reconfiguration on MLP方法 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[16] 64 97.8 90.7 √ 1306.7 45917 2.0倍 HW 64 97.8 90.7 √ 1306.7 22959 1.5倍 127.0 × 1008.8 17842 158.7 × 543.7 22070 SW 64 97.8 90.7 √ 1306.7 22959 1.5倍 32 96.3 52.3 √ 754.3 23863 32 96.3 52.3 √ 754.3 15908 RR-SC(本文) 64 97.8 90.7 √ 1306.7 22959 32 96.3 73.22 √ 582.3 30912 32 96.3 91.5 √ 313.8 38241 表 12 LeNet上搭配/不搭配软硬件重配置方法的实验结果Table 12. Experimental Results of Methods with/Without Hardware and Software Reconfiguration on LeNet方法 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[16] 64 97.6 531.5 √ 2129.5 28175 1.6倍 HW 64 97.6 531.5 √ 2129.5 14088 1.2倍 744.1 × 1644.0 10948 930.1 × 886.1 13542 SW 64 97.6 531.5 √ 2129.5 14088 1.4倍 32 95.8 306.8 √ 1651.9 10896 32 95.8 306.8 √ 1651.9 7264 RR-SC(本文) 64 97.6 531.5 √ 2129.5 14088 32 95.8 429.5 √ 1275.3 14114 32 95.8 536.9 √ 687.4 17457 表 13 AlexNet上搭配/不搭配软硬件重配置方法的实验结果Table 13. Experimental Results of Methods with/Without Hardware and Software Reconfiguration on AlexNet设置 数据精度 准确率/% 推理时间/ms TC Satisfy 能耗/mJ 推理次数 提升倍数(本文方法/该方法) 文献[16] 64 90.1 19960.4 √ 500412.8 119 2.0倍 HW 64 90.1 19960.4 √ 500412.8 59 1.5倍 27944.6 × 386318.7 46 34930.7 × 208221.8 57 SW 64 90.1 19960.4 √ 500412.8 59 1.5倍 32 87.6 19960.4 √ 288876.6 62 32 87.6 19960.4 √ 288876.6 41 RR-SC(本文) 64 90.1 19960.4 √ 500412.8 59 32 87.6 16131.8 √ 223012.7 80 32 87.6 20164.7 √ 120102.5 99 表11~13实验结果表明,当模型不搭配任何的软硬件重配置时,虽然其拥有最高的推理准确率,且时间约束能够被满足,但是它能进行的模型推理次数是最少的. 当模型只搭配硬件重配置时,模型推理的时间约束无法被满足,但其对延长电池使用时间有一定的优化. 对于只有软件重配置的实验来说,模型的时间约束都能被满足,但推理准确率有一定的下降,且推理次数也比只搭配硬件和RR-SC方法更少. 对于RR-SC方法来说,能够在满足时间约束的条件下,最大限度延长电池的使用时间,相比于无任何软硬件配置的实验有接近2.0倍的性能提升;对比只有硬件重配置或只有软件重配置的方法来说,能够达到1.5倍的性能提升;而且,RR-SC相比于最高的准确率来说,在MLP,LeNet和AlexNet中分别只产生了1.0个百分点,1.2个百分点,1.7个百分点的下降.
5. 结 论
对于电池搭载的边缘设备来说,能源(即电池电量)是有限且动态改变的. 面对这种硬件环境,本文针对基于SC的神经网络创新性地提出了硬件和软件重配置相结合的方法以最大限度地延长电池使用时间. 对于不断改变的电池电量来说,本文设置电量阈值以便于在电量降低到一定程度之后进行硬件配置的切换(即切换V/F等级). 同时,为了选择最好的软件配置,本文提出一个运行时可重配置框架RR-SC,在满足模型推理时间约束和准确率约束的前提下,最大化模型推理准确率和推理总次数. RR-SC利用强化学习技术能够一次性选择多组软件配置以对应不同的硬件配置. 每组配置能够同时满足规定的时间约束和准确率约束. 同时,多个模型配置在同一个主干网络上进行切换,从而在运行时实现轻量级的软件重配置. 实验结果表明,RR-SC在给定能源总量的情况下最高可以将模型推理次数增加7.6 倍,且精度损失相较于最高准确率方法小于1.7个百分点. 同时,可以在110 ms内进行LeNet模型配置的轻量级切换,并且可以满足不同硬件配置下的实时性要求.
作者贡献声明:宋玉红提出论文方案,完成实验和撰写论文;沙行勉提出指导意见和分析方案;诸葛晴凤提出指导意见和讨论方案;许瑞和王寒参与方案讨论和修改论文.
https://www.vmware.com/products/esxi-and-esx.htmlhttps://github.com/FISCO-BCOS/FISCO-BCOShttps://github.com/ipfs/kubo -
表 1 相关工作对比
Table 1 Comparison of Related Work
方法 工作主要内容 加速数
据交换不改动
区块链
框架适用场景 文献[12] 区块链数据交换框架 IPFS方案 √ 数据交易 文献[13] 数据市场 √ 数据市场 文献[14] 敏感数据交易系统 √ 数据交易 文献[15] 数据要素跨域流通架构 √ 任意场景 文献[16] 安全数据共享 √ 数据共享 文献[17] 数据访问控制 √ 任意场景 文献[18] 分布式数据流通 HDFS方案 √ 数据共享 文献[19] 众包数据交易系统 IPFS方案 √ 传感器数据交易 文献[20] 点对点数据共享系统 IPFS方案 数据共享 文献[21] 上海证券交易所交易系统 √ √ 交易所 文献[22] 面向大地址空间减少读写 √ 物联网 文献[23] 两级共识机制 √ 物联网 文献[24] 异构区块链数据实时交换 IPFS方案 √ 支付结算 文献[25] 双层公有区块链网络架构 √ 移动边缘计算 本文 区块链数据加速交换 √ √ 任意场景 注:“√”表示文献对该项工作已进行研究或讨论. 表 2 符号及其释义
Table 2 Symbols and Their Interpretations
符号 定义 eid 位置记录标识符 loc 数据要素使用设备位置 lp 数据要素使用设备位置的网络区域信息 udata 上传至区块链的数据要素 uq 上传的数据元素 UQ 并行处理队列UQ={uq1,uq2,…,uqn} mid 聚合后依据处理时间生成的标识符 mdyx y设备编号的x批次的聚合上传元素条目 MUI 聚合上传条目集合 dle 可下载位置元素 DLE 可下载位置列表DLE={dle1,dle2,…,dlen} MID 最大的合并数据编号 diyx 聚合下载元素条目 dq 可下载数据元素 DQ 可下载队列DQ={dq1,dq2,…,dqn} Lx 装有x类型元素的列表 表 3 实验虚拟机配置
Table 3 Virtual Machine Configuration for Experiments
虚拟机 虚拟CPU个数 内存大小/GB 操作系统 主机MA 8 16 Ubuntu 22 主机MB 8 32 Windows Server 2022 表 4 单线程测试的性能对比
Table 4 Performance Comparison of Single-Threaded Tests
方法 每秒平均交换数据的个数 每秒平均交换数据量 最大平均个数 提升倍数 最大平均值/B 提升倍数 本文
方法同步间隔0 ms 357.00 0.0022 435225 0.0822 同步间隔10 ms 1334.10 2.7453 1373625 2.4157 同步间隔50 ms 1567.90 3.4017 1555950 2.8690 同步间隔100 ms 1552.60 3.3587 1544400 2.8403 同步间隔200 ms 1499.05 3.2084 1602525 2.9848 FISCO BCOS的异步
数据交换方法356.20 0 402150 0 1.95 – 0.9945 2850 – 0.9929 基于FISCO BCOS异步
数据交换的IPFS方法72.15 – 0.7974 97275 – 0.7581 注:黑体数值为最佳数值,提升倍数表示相比FISCO BCOS的异步数据交换方法的性能. 表 5 本文方法在不同同步间隔的性能对比
Table 5 Performance Comparison of Our Method for Different Synchronization Intervals
本文方法 最大的每秒
平均交换数
据的个数单个交换数据为 1500 B
时,最大的每秒
平均交换数据数最大的每秒平均
交换数据量/B同步间隔0 ms
(仅线程数为1
时数据可用)357.00 290.15 435225 同步间隔10 ms 3470.05 1614.00 2491680 同步间隔50 ms 3649.45 2083.55 3125325 同步间隔100 ms 3603.35 1896.40 2857072 同步间隔200 ms 3697.75 1871.80 2807700 注:黑体为最佳数值. 表 6 不同线程的压力测试的性能对比
Table 6 Performance Comparison of Stress Tests with Different Threads
方法 每秒平均交换数据的个数 每秒平均交换数据量 最大平
均个数提升
倍数实验中最大
平均值/B提升
倍数本文方法 同步间隔50 ms,线程数为1 1567.9 3.4017 1555950 2.8690 同步间隔50 ms,线程数为2 2189.2 5.1459 2232650 4.5517 同步间隔50 ms,线程数为3 2707.65 6.6014 2528550 5.2875 同步间隔50 ms,线程数为4 3082.65 7.6542 3125325 6.7715 同步间隔50 ms,线程数为5 3572 9.0280 2973035 6.3928 同步间隔50 ms,线程数为6 3649.45 9.2455 2961967 6.3653 FISCO BCOS的异步数据交换方法(线程数为1) 356.2 0 402150 0 FISCO BCOS的同步数据交换方法(线程数为6) 16.5 – 0.9536 23562 – 0.9414 基于FISCO BCOS异步数据交换的IPFS方法(线程数为1) 72.15 – 0.7974 97275 – 0.7581 注:黑体为最佳数值,提升倍数表示相比FISCO BCOS的异步数据交换方法的性能. -
[1] Fan Feifei. Moves on data set to drive digital fields[EB/OL]. (2022-12-21)[2024-07-10]. https://www.chinadaily.com.cn/a/202212/21/WS63a25d7da31057c47eba5687.html
[2] 国家数据局. 十七部门关于印发《“数据要素×”三年行动计划(2024—2026年)》的通知[EB/OL]. (2024-01-05)[2024-07-10]. https://www.cac.gov.cn/2024-01/05/c_1706119078060945.htm. National Data Agency of the People's Republic of China. Circular of the seventeen ministries on the issuance of the three-year action plan on "data elements x" (2024−2026)[EB/OL]. (2024-01-05)[2024-07-10]. https://www.cac.gov.cn/2024-01/05/c_1706119078060945.htm (in Chinese)
[3] 包晓丽,杜万里. 数据可信交易体系的制度构建——基于场内交易视角[J]. 电子政务,2023,6(6):38−50 Bao Xiaoli, Du Wanli. Institutional construction of trusted data trading system: Based on the perspective of on exchange trading[J]. E-Government, 2023, 6(6): 38−50 (in Chinese)
[4] 杜自然,窦悦,易成岐,等. TID-MOP:面向数据交易所场景下的安全管控综合框架[J]. 数据分析与知识发现,2022,6(1):13−21 Du Ziran, Dou Yue, Yi Chengqi, et al. TID-MOP: The comprehensive framework of security management and control in the scenario of data exchange[J]. Data Analysis and Knowledge Discovery, 2022, 6(1): 13−21 (in Chinese)
[5] Song Rui, Xiao Bin, Song Yubo, et al. A survey of blockchain-based schemes for data sharing and exchange[J]. IEEE Transactions on Big Data, 2023, 9(6): 1477−1495 doi: 10.1109/TBDATA.2023.3293279
[6] 马宇航,张亮,吴星雨,等. 基于分布式密钥生成和属性基密码的多方跨链交易方案[J]. 计算机研究与发展,2023,60(11):2534−2544 doi: 10.7544/issn1000-1239.202330305 Ma Yuhang, Zhang Liang, Wu Xingyu, et al. Multi-party cross-chain transaction scheme based on distributed key generation and attribute-based encryption[J]. Journal of Computer Research and Development, 2023, 60(11): 2534−2544 (in Chinese) doi: 10.7544/issn1000-1239.202330305
[7] 刘腾飞,郭洋,王菁菁. 区块链技术赋能数据要素价值流通的路径[J]. 电信快报,2023,11:39−42 doi: 10.3969/j.issn.1006-1339.2023.08.012 Liu Tengfei, Guo Yang, Wang Jingjing. The blockchain technology empowers the path of data element value circulation[J]. Telecom Information, 2023, 11: 39−42 (in Chinese) doi: 10.3969/j.issn.1006-1339.2023.08.012
[8] Singh A, Kumar G, Saha R, et al. A survey and taxonomy of consensus protocols for blockchains[J]. Journal of Systems Architecture, 2022, 127(102503): 1−27
[9] Wang Wenbin, Liu Xiulong, Xu Hao, et al. An effective and robust transaction packaging approach for multi-leader BFT blockchain systems[C]//Proc of 2023 42nd Int Symp on Reliable Distributed Systems. Piscataway, NJ: IEEE, 2024: 14−24
[10] Liu Xinmeng, Xie Haomeng, Yan Zheng, et al. A survey on blockchain sharding[J]. ISA Transactions, 2023, 141: 30−43 doi: 10.1016/j.isatra.2023.06.029
[11] 董思含,信俊昌,郝琨,等. 多区块链环境下的连接查询优化算法[J]. 浙江大学学报: 工学版,2022, 56(2): 313−321 Dong Sihan, Xin Junchang, Hao Kun, et al. A join query optimization algorithm in multi-blockchain environment[J] Journal of Zhejiang University (Engineering Science), 2022, 56(2): 313−321 (in Chinese)
[12] Zhou Chuangming, Yang Zhou, Yue Shaohua, et al. Securing big data exchange: An integrated blockchain framework for full-lifecycle data trading with trust and dispute resolution[J]. Electronics, 2023, 12(4894): 1−24
[13] Sober M, Scaffino G, schulte S, et al. A blockchain-based IoT data marketplace[J]. Cluster Computing, 2023, 26(6): 3523−3545 doi: 10.1007/s10586-022-03745-6
[14] Su Xin, Ullah I, Wang Meiling, et al. Blockchain-based system and methods for sensitive data transactions[J]. IEEE Consumer Electronics Magazine, 2024, 13(2): 87−96 doi: 10.1109/MCE.2021.3076985
[15] 季姝,张金琳. 基于区块链+隐私计算的数据要素跨域安全流通体系[J]. 网络安全技术与应用,2023,5:65−67 doi: 10.3969/j.issn.1009-6833.2023.03.031 Ji Shu, Zhang Jinlin. Cross-domain secure circulation system of data elements based on blockchain + privacy computing[J]. Network Security Technology & Application, 2023, 5: 65−67 (in Chinese) doi: 10.3969/j.issn.1009-6833.2023.03.031
[16] Tao Qi, Cui Xiaohui. B-FLACS: Blockchain-based flexible lightweight access control scheme for data sharing in cloud[J]. Cluster Computing, 2023, 26(6): 3931−3941 doi: 10.1007/s10586-022-03782-1
[17] 王栋,李达,冯景丽,等. 基于区块链的数据要素资源共享及访问控制方案[J]. 信息安全研究,2023, 9(2): 137−145 Wang Dong, Li Da, Feng Jingli, et al. Blockchain-based data element resources sharing and access control scheme[J]. Journal of Information Security Research, 2023, 9(2): 137−145 (in Chinese)
[18] Chen Jun, Wu Jiangyao, Qian Zhenghao, et al. Industrial chain data sharing and circulation of blockchain and big data technology[J]. Wireless Communications and Mobile Computing, 2022, 2022(7719036): 1−11
[19] An Baoyi, Xiao Mingjun, Liu An, et al. Secure crowdsensed data trading based on blockchain[J]. IEEE Transactions on Mobile Computing, 2023, 22(3): 1763−1778
[20] Han Rui, Wang Yu, Wan Mingfa, et al. FIBPRO: Peer-to-peer data management and sharing cloud storage system based on blockchain[J]. Peer-to-Peer Networking and Applications, 2023, 16(6): 2850−2864 doi: 10.1007/s12083-023-01570-1
[21] 朱立,俞欢,詹士潇,等. 高性能联盟区块链技术研究[J]. 软件学报,2019,30(6):1577−1593 Zhu Li, Yu Huan, Zhan Shixiao, et al. Research on high-performance consortium blockchain technology[J]. Journal of Software, 2019, 30(6): 1577−1593 (in Chinese).
[22] Wang Tianyu, Chen Zizhan, Zhu Wenbin, et al. A Bloom-filter-based unique address checking approach for DAG-based blockchain systems[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2023, 43(1): 85−98
[23] Qi Yuanyuan, Shao Sujie, Wu Shuang, et al. A distributed intelligent service trusted provision approach for IoT[J]. IEEE Internet of Things Journal, 2023, 10(24): 22341−22355 doi: 10.1109/JIOT.2023.3303927
[24] Lin Zhikai, Wang Kexing, Wu Yongdong, et al. Fast payments across heterogeneous blockchains for Internet of things[J]. IEEE Access, 2024, 12(2): 33923−33937
[25] Kong Yihan, Li Jing, Xiong Ting, et al. EVONChain: A bi-tiered public blockchain network architecture[J]. Peer-to-Peer Networking and Applications, 2023, 16(6): 2892−2914 doi: 10.1007/s12083-023-01562-1
-
期刊类型引用(0)
其他类型引用(1)