-
摘要:
随着物联网(Internet of things, IoT)和人工智能(artificial intelligence, AI)技术的快速发展,大量的数据被物联网设备收集. 使用机器学习或深度学习等人工智能技术可以对这些数据进行训练. 训练好的模型是物联网中分析网络环境、提高服务质量(quality of service, QoS)的重要组成部分. 然而,大多数数据提供者 (物联网终端用户) 不愿意将个人数据直接分享给任何第三方进行学术研究或商业分析,因为个人数据中包含私人敏感信息. 因此,研究物联网中的安全与隐私保护是一个重要研究方向. 联邦学习 (federated learning,FL) 允许多方物联网终端用户作为训练参与者将数据保存在本地,仅上传本地训练模型至参数服务器以进行聚合,通过这种方式可以保护参与者数据隐私. 具体来说,FL面临的攻击主要有2种,即推理攻击和投毒攻击. 为了同时抵抗推理攻击和检测投毒攻击,提出了一个全新的源匿名数据洗牌方案Re-Shuffle. 提出的Re-Shuffle采用不经意传输协议实现FL中参与者模型的匿名上传,保证参数服务器只能获得参与者的原始本地模型,而不知道来自哪个参与者. 此外,为了更适应IoT环境,Re-Shuffle采用了秘密共享机制,在保证梯度数据原始性的同时,解决了传统shuffle协议中参与者的退出问题.Re-Shuffle既保证了局部模型的原始性,又保证了局部模型的隐私性,从而在保护隐私的同时检查中毒攻击. 最后给出了安全证明,对方案的检测效果进行了评价,并在Re-Shuffle方案下对2种投毒攻击检测方案的计算开销进行了评估. 结果表明Re-Shuffle能够在可接受的开销下为毒化攻击检测方案提供隐私保护.
Abstract:With the rapid development of Internet of things (IoT) and artificial intelligence (AI) technology, a large amount of data are collected by IoT devices. These data can be trained by using AI techniques such as machine learning or deep learning. A well-trained model is an important part of analyzing network environment and improving quality of service (QoS) in IoT. However, most data providers (IoT end users) are reluctant to share personal data directly with any third party for academic research or business analysis because personal data contains private or sensitive information. Therefore, it is an important research direction to study the security and privacy protection in the IoT. Federated learning (FL) allows different participants to keep their data locally and only upload the local training models to the parameter server for model aggregation, which protects the data privacy of each participant. However, FL still faces some security challenges. Concretely, there are two main attacks FL faces, i.e., inference attack and poisoning attack. In order to resist inference attacks and detect poisoning attacks simultaneously, we propose a source anonymous data shuffle scheme, Re-Shuffle. The proposed Re-Shuffle uses the oblivious transfer protocol to realize the anonymous upload of participant models in FL. It ensures that in the process of poisoning attack detection, the parameter server can obtain the local model of the participant, who is unknown. In addition, to be more suitable for the IoT environment, Re-Shuffle adopts a secret sharing mechanism, which ensures the rawness of gradient data and solves the problem of participants dropline in the traditional shuffle protocol. In this way, both the rawness and privacy of the local model are ensured, so that the poisoning attacks can be checked while the privacy is protected. Finally, we provide the security proof and evaluate the scheme’s detection effect. Besides, the computation overheads of Re-Shuffle under two kinds of poisoning attack detection schemes are evaluated. The results show that Re-Shuffle can provide privacy protection for the poisoning attacks detection scheme at an acceptable cost.
-
一直以来,高性能计算机(high performance computer, HPC)都是解决科学研究各领域实际问题的重要工具,依靠HPC的强大计算能力,能使很多求解空间极大的科研问题在现实可见的时间内完成解算.
最近20年,科学研究已经从计算科学时代进入数据科学范式时代,科学家需要从海量的数据中去探索科学规律和突破科学发展瓶颈,这就意味着传统的用高密度计算去模拟复杂现象进行科学研究的方法需要创新发展,用高性能计算与人工智能相融合的新方法(HPC+AI)去解决实际问题,正逐渐成为一种行之有效的科研方法,例如2020年的戈登贝尔高性能计算应用奖就颁发给基于深度学习实现1亿原子分子动力学的应用[1].
人工智能应用的开发和运行,往往依赖于人工智能编程框架,如TensorFlow[2],Pytorch[3]等,这些框架在本质上均是数据流计算系统,它们将神经网络模型组织成数据流图,并利用图节点融合、图剪枝、常量传播等技术进行图优化,然后再通过运行系统将图节点调度到实际的计算资源上执行. 换言之,数据流计算系统是支撑人工智能应用的重要基础软件,但是,要在国产高性能计算机上支持高效的数据流系统,则面临着严峻的挑战.
从底层硬件的角度来说,国产异构众核处理器具有独特的复杂结构,新一代国产异构处理器sw26010pro[4-5]具有多级计算资源、多层次存储和多级互联网络结构,在体系架构上与传统的多核CPU、众核GPU以及专用的人工智能处理器相比有着本质的区别.
要在sw26010pro上高效执行数据流系统,需重点解决2个问题:
1)如何充分利用sw26010pro的众核计算资源. 计算核心阵列是国产异构众核处理器的性能来源,具有众多的精简核心和强大算力,但也存在着访存效率低、片上缓存小和管理复杂等实际问题. 为实现数据流图的高效执行,就需要实现自适应的众核阵列加速方法,能够自动加速数据流图中的关键节点,充分利用众核计算资源.
2)如何设计高效的两级并行策略,充分利用国产异构众核处理器的全片计算资源.sw26010pro采用全片多核组集成的体系结构,每个核组都是同构的众核阵列,多核组之间可以共享全局存储,数据流图中的节点执行以单核组为基本单元. 要充分结合硬件结构特性,实现两级并行策略,通过相应的图优化和调度方法,确保多核组能够并行执行数据流图,提升系统性能.
对于上层用户而言,传统高性能计算机的软件环境也很难满足HPC+AI领域应用的动态化和智能化需求,并且,用户更希望将重心放在上层算法设计上,而非底层体系结构相关的优化上.
为此,本文提出了一种面向国产异构众核处理器的数据流计算系统swFLOWpro,支持使用TensorFlow接口构建数据流计算和深度学习典型模型,并实现了对用户透明的众核并行加速,可以支持数据流程序的高效开发,在运行时充分利用国产异构众核处理器的硬件能力.
本文的主要贡献有4点:
1)在国产异构众核处理器上构建了功能完备的数据流计算系统swFLOWpro,能够支持以深度学习为代表的数据流应用的开发和运行;
2)设计并实现了一种专门针对国产异构众核处理器的核心计算加速引擎swHMAE,将之与数据流计算系统松耦合,实现自动化的众核并行加速及算子分析、调试功能;
3)针对sw26010pro的多核组共享内存结构,设计了一种面向异构融合体系结构的两级并行策略,结合图分裂技术,能充分利用全片核组的计算资源;
4)基于swFLOWpro进行Alexnet,ResNet,VGG,Inception等典型CNN神经网络模型训练测试,实验结果表明本文设计的数据流计算系统能够获得很好的异构众核并行加速效果.
1. 相关工作
1.1 数据流计算
传统的冯•诺依曼计算机以控制流为执行模型,而数据流计算则采用了不同的思路,将程序组织成有向图,每个图节点表示一个算子,边则代表节点之间的依赖关系,数据在边上流动,当一个节点的所有输入数据均已就绪时,该节点就会被启动. 数据流计算由程序本身的数据依赖关系来激活计算,更有利于充分发挥其天然的可并行性.
20世纪90年代,麻省理工大学提出一种基于数据流思想的处理器设计方案,该方案没有共享存储和寄存器的设计,数据直接在计算部件之间流动. 当一条指令所有操作数均已就绪时,即可以进入执行状态. 这种体系架构能够充分挖掘程序的指令级可并行性,但也存在着运行开销大、并行粒度过小等实际问题,与传统计算机系统的天渊之别也限制了其进一步发展.
相关研究[6]还提出了一种硬件集成数据流芯片和冯•诺依曼架构芯片的体系结构设计,程序在编译系统的支持下,可以在运行过程中动态调度到不同的芯片架构上去. 这种处理器架构设计比较新颖,但对编译和硬件实现的环境要求比较高.
纯硬件的数据流计算系统面临着诸多问题,最本质的问题在于其与传统计算机软硬件生态无法兼容,发展严重受限. 于是,数据流计算机逐渐向与冯•诺依曼架构融合的方向发展,出现了“类数据流”计算机,这一类计算机融合了控制流和数据流的思想,将程序组织成一系列的宏指令或者代码块,每个宏指令或代码块内部采用数据流执行模式,而在宏指令和代码块之间依然采用传统的控制流思想进行组织管理,该类计算机包括TRIPS[7],T3,EVX等. 类数据流计算机将数据流的思想用于最底层的指令层面,在程序层面则保持着和传统架构相同的程序逻辑,例如EDGE[8]架构执行模型,就是将程序编译成由超块组成的控制流图,将超块内部的代码编译成数据流指令,数据直接在计算部件之间流动而不通过寄存器,但EDGE架构必须运行在专门的类数据流处理器架构上,通用性较差. 目前,最常见的数据流系统是在传统冯•诺依曼架构上实现的软件数据流系统.
Codelet[9-10]执行模型由特拉华大学提出,它是一种针对E级计算机的需求而进行设计的细粒度并行、事件驱动的程序执行模型. Codelet模型从数据流执行模型中得到启发,结合传统的冯•诺依曼体系架构,形成了一种在通用计算机上运行的数据流程序执行系统.
TensorFlow是一款具有数据流思想的软件计算系统,该系统运行于通用处理器架构上,并对众核GPU和人工智能专用芯片TPU有后端支持.TensorFlow是人工智能领域非常热门的编程框架,它将人工智能的算法模型组织成数据流图,并通过运行支持数据流图的高效映射和资源分配.TensorFlow给用户提供了丰富的API接口来构建数据流计算,对深度学习的支持也比较完善,不过缺乏对于国产异构众核架构的后端支持.
1.2 在国产异构众核处理器上的数据流计算系统
在国产异构众核处理器上,关于数据流计算系统的研究也一直在进行中.
SunwayFlow[11]是基于神威太湖之光高性能计算机系统开发的数据流计算系统,该系统将Codelet执行模型移植到国产处理器上,并使用高性能共轭梯度基准测试(HPCG)作为测试数据,获得10.32倍的加速效果. 但SunwayFlow支持的Codelet模型适用范围有限,特别是对深度学习的支持严重不足.
swCaffe[12-13]是面向国产异构众核处理器的深度学习编程框架,它在底层通过swDNN库支持众核加速,针对VGG-16有4倍的加速效果. 但是Caffe框架[14]的编程接口已逐渐被淘汰,而swCaffe要实现众核加速,对模型的参数也有严格的限制,已无法适应数据流计算和深度学习应用的实际需求.
swFLOW[15]是2021年推出的针对国产异构众核处理器的数据流计算系统,该系统重构了TensorFlow框架,支持在sw26010处理器上执行数据流计算,针对典型神经网络模型有10.42倍的加速. 不过,swFLOW在功能上只支持TensorFlow的C++接口,在优化设计上重点考虑面向大规模计算资源的分布式训练,缺乏针对单进程的深度优化,也没有针对全片多核组运行模式的优化支持,实际使用效果有待增强.
针对上述多款数据流计算系统软件的缺陷,本文设计并实现了面向国产异构众核处理器sw26010pro的新一代数据流计算系统swFLOWpro.该系统在编程接口支持上复用了TensorFlow的前端模块,可以完全兼容TensorFlow的Python和C++编程接口,提升系统易用性,在后端则通过独立的核心计算加速引擎模块来提供针对数据流图节点的执行加速,除此之外,还针对sw26010pro的多核组共享内存设计,开发了一种面向异构融合的两级并行方法,从而提升全片计算资源的应用效率.
1.3 面向数据流计算的相关研究
Megatron-LM[16]主要讨论如何在大规模GPU集群上通过tensor/pipline/data等多种并行模式高效实现大模型的训练,通过并行模式的混合能够提升10%的数据吞吐量,在3072个GPU上训练1万亿参数模型,单GPU峰值效率达到52%.
Gspmd[17]提出一种基于编译器的自动化机器学习并行系统,可以在单节点代码上通过添加编译指示实现自动化并行代码生成,在2048块TPUv3上达到了50%~62%的计算利用率.
DAPPL[18]面向大模型提出了结合数据并行和流水线并行方法的并行训练框架,主要解决的问题是针对模型结构和硬件配置决策最优并行策略,如何调度数据流计算的不同流水线阶段.
Alpa[19]针对分布式深度学习训练提出了算子内和算子间并行策略,通过系统化的方式将分布式并行策略的优化空间结构化,并在这个优化空间中寻找最优策略并实现自动化.Alpa以计算图为输入,输出并行方案,主要考虑如何划分子图和计算任务调度.
目前,面向数据流计算的相关研究大多是针对大模型和大规模并行系统,专注于如何切割数据流图并将其调度到各计算节点上,本文则主要针对sw26010pro的异构众核结构和普通深度学习模型,专注于单处理器内部的计算流程,通过算子内和算子间的两级并行策略,高效利用单处理器计算能力. 在后续工作中,swFLOWpro会在寻找最优并行策略以及调度模型的优化上加强研究.
2. swFLOWpro:新一代数据流计算系统
本节主要介绍国产异构众核处理器sw26010pro的结构特点,以及swFLOWpro的整体架构和工作流程.
2.1 sw26010pro架构
sw26010pro是一款国产异构众核处理器,它包含6个核组(core group , CG),核组之间通过片上环网互连,每个核组包含2种异构核心,一种是管理核心(management processing element,MPE),另一种是计算核心(computing processing elements, CPE),1个MPE和1个8×8的CPE组成1个异构计算阵列. 一般而言,MPE主要负责计算任务、全局内存和运算核心的管理;CPE负责计算任务的执行,每个CPE通过一个软件管理的片上便签存储器(LDM)来提升访存效率. sw26010pro结构如图1所示.
sw26010pro采用SW64自主指令集设计. 其中, MPE具有32 KB L1指令缓存、32 KB L1数据高速缓存和512 KB L2高速缓存;CPE支持512 b的SIMD运算,支持双精度、单精度和半精度浮点及整数等多种数据类型的向量运算,每个CPE具有独立的指令缓存和片上LDM存储,其中LDM可以配置为L1数据缓存,也可以配置为用户管理的局存空间,支持通过DMA方式实现LDM和全局内存之间的数据传输;支持通过RMA方式实现不同CPE之间的LDM存储传输.
sw26010pro全处理器包含6个同构的核组,6核组之间可以共享全局内存. 通常情况下,1个进程运行在1个核组上,多个核组之间通过MPI消息进行通信,但这样会导致单进程可用的内存空间和计算能力都较小,频繁的MPI通信也会造成性能损失. 事实上,通过多核组的共享全局内存,可以结合多线程管理和核组资源分配,实现全片视角的统一编程,这样能大幅度提升单进程的可用内存空间和计算能力,减少进程间通信造成的性能损失.
与常规的处理器设计不同,sw26010pro将更多的硬件逻辑用于计算,从而最大程度地提升计算密度,精简的CPE核心设计导致了其计算能力很强,但访存能力较弱. sw26010pro提供了用户可以显式管理的LDM存储来弥补访存与计算能力不匹配的问题,从而支持用户充分挖掘异构众核的计算能力. 不过,这种设计模式就意味着程序的高效运行需要更加复杂的优化策略和更加全面的算法改造.
对于数据流计算和深度学习领域的编程用户来说,他们更关注的是数据流图的结构、模型的构造以及训练模型的超参数调整等上层算法设计,而非底层硬件细节和体系结构相关优化技术.
为此,swFLOWpro的主要设计目标就是构建国产异构众核处理器与用户之间的桥梁,提供可移植性强、功能丰富的编程接口,并将底层硬件细节对用户透明,实现自动化的众核并行加速.
2.2 swFLOWpro结构设计
swFLOWpro数据流计算系统的整体架构图如图2所示.swFLOWpro系统可以划分为2个子模块:前端模块和后端模块. 中间层由C-API桥接.
前端模块是一个支持多语言的编程环境,它提供基于数据流图的编程模型,方便用户使用TensorFlow 的Python和C++编程接口构造各种复杂的计算图,从而实现各种形态的模型搭建.
C-API是桥接前端模块和后端模块的中间层次,主要是通过SWIG(simplified wrapper and interface generator)机制支持前端多语言编程环境与C++实现的后端模块之间的通道.
为保证系统的易用性和提升深度学习程序的可移植性,swFLOWpro框架的前端模块和C-API复用了TensorFlow框架的相应模块,主要是为了保持对TensorFlow编程的兼容性.
后端模块则是体系结构相关的运行模块,也是swFLOWpro针对sw26010pro架构特点重点开发的模块.swFLOWpro的后端模块主要包括数据流图优化、运行时系统、算子(OP)实现层等子模块. 其中,数据流图优化模块支持面向异构众核处理器的混合精度训练优化和节点融合优化,混合精度训练优化在数据流图中插入数据类型转化节点,将单精度运算转换为效率更高、精度更低的半精度运算,而在更新参数节点等对精度要求更高的节点之前,再将半精度转化为单精度,从而支持混合精度训练;图节点融合优化则将多个图节点融合,形成更大的计算单元,减少内存管理开销,提升运行效率. 运行时系统主要负责计算图节点的管理、调度、执行以及内存分配,根据图中依赖关系依次执行各个节点. OP实现层则是针对sw26010pro的存储层次和结构特点,将OP的定义和执行解耦,通过独立的异构众核加速引擎(swHMAE)实现对关键性能OP的众核加速,这一部分将在2.3节中详细介绍.
2.3 异构众核加速引擎(swHMAE)
swHMAE是一个独立于swFLOWpro系统之外的独立模块,其设计目的是为数据流计算系统提供一个松耦合的、体系结构相关深度优化的核心计算加速框架. 框架整体结构如图3所示.
swHMAE提供了一系列性能关键计算的调用接口,这些接口在swFLOWpro的算子实现层进行调用,而其真正实现则集成于一个独立的动态库中.
swHMAE提供的这些接口是完全虚拟化的,仅用来描述要完成哪种运算和需要哪些参数,swHMAE可以向上支持不同的人工智能编程框架或数据流系统的图节点实现模块,向下则可以调用多种众核加速算法库,也可以集成用户自定义的众核算法,具有很好的可扩展性.
在swHMAE中,针对不同的计算类型,主要完成2方面的工作:1)收集核心计算的参数. 2)根据参数类型、参数特性及输入规模,判断是否适合使用众核加速,如不适合,则该API返回失败,swFLOWpro将调用默认的实现算法;否则,swHMAE将根据不同的参数类型和规模自适应地选择最优的异构众核加速算法.
swHMAE支持的核心计算类型涵盖了数据流计算常见的计算类型,核心计算类型既有深度学习领域的常见计算,例如卷积、矩阵乘、激活、归一化等,这类计算的众核加速主要是通过swDNN,swBLAS,Sw_OPs等第三方库来支持,又有一些更通用的数据流计算节点类型,如批量数据的基础运算、数据的Padding,tile,slice等访存操作,以及其他一些定制的计算类型.
swHMAE的工作原理算法如算法1所示:
算法1. swHMAE工作原理算法.
输入:计算类型OP-type, 张量t1
,t 2,…,数据类型 data-type,常量参数params;输出:计算结果张量t-results.
① if notSuitforMC(OP-type,params,t1,t2,…)
② return false;/* 如果该OP不适合众核加速返 回false,执行swFLOWpro的默认计算模式 */
③ end if
④ timing_or_debug_this_op_start();
⑤ if OP-type ∈ {SW_Conv,SW_Activate, SW_Pooling}
⑥ t-results = swDNN(OP-type,params,t1,t2,…);
⑦ else if OP-type ∈ {SW_Matmul}
⑧ t-results = swBLAS(OP-type,params, t1,t2,…);
⑨ else
t-results=MC_accelete_op(OP-type,params, t1,t2,…);
⑩ end if
⑪ timing_or_debug_this_op_end();
⑫ return true.
swHMAE是面向国产异构众核处理器的数据流计算后端,作为一个独立模块,它将关键计算的众核加速与数据流系统的整体框架解耦,既能够高效利用swDNN, swBLAS,sw_OPs等众核计算库,由于本身也集成了一系列众核优化算子,也能够对更多的核心计算进行众核加速.
swHMAE针对非计算密集类运算实现了众核加速算法,其主要思想是通过数据分割将运算任务分配到各CPE上执行,通过DMA数据传输机制将具有局部性的数据显式地搬运到CPE的片上内存LDM中,并通过2个数据传输缓冲的动态切换,实现数据传输与数据计算的并行操作,其算法思想如图4所示.
除此之外,swHMAE还可以通过多种方式对关键计算进行调试、错误定位和性能分析,进一步提升易用性.
swHMAE的松耦合和模块化设计使得用户可以更加方便地集成新的众核计算到swFLOWpro系统中去. 事实上,swHMAE还可以支持其他的数据流计算系统,其仅需要在原始系统中做极少量的修改.
3. 面向异构融合的两级并行策略
在异构融合的众核处理器上执行数据流图的基本流程为:MPE负责数据流图的生成、优化和调度管理;在执行过程中,将已满足执行需求的图节点分配到众核阵列上执行.
有2种任务分配方法可以考虑:1)将每个节点调度到1个CPE上,CPE阵列协同完成整个数据流图的执行过程;2)将CPE阵列视为一个整体部件,所有计算核心共同完成数据流图中的一个节点.
第1种任务分配方法与异构融合众核架构的适应性并不好,其主要原因有3点:1)单CPE的访存能力有限,其LDM的容量大小也很难承载一个完整的图节点计算逻辑,比如卷积、矩阵乘等常用算子,在单CPE上执行效率较差;2)数据流图的可并行性有限,考虑某些具有强相关性的数据流图,每个节点都依赖于上一个节点的计算结果,则程序在这种模式下执行的效率就会很差,因为大部分时间内CPE可能因为依赖另一个CPE的计算结果而处于等待状态;3)负载均衡问题,由于每个数据流图节点运算量相差较大,保证各计算核心的负载均衡也是个难以解决的问题.
本文主要采用第2种任务分配方法,也就是将CPE阵列视为整体部件,所有CPE协同完成一个图节点的执行过程,这样每个CPE的计算任务量都在可以接受的范围之内,而在每个图节点内部,主要通过数据分割的方式将输入数据映射到各个CPE上,这样能保证LDM空间够用和保证各计算节点的负载均衡性. 并且,由于并行发生在图节点内部,整体效率不会受限于数据流图本身的可并行性.
图5是在sw26010pro的单核组上运行一个数据流图的示例.
输入数据的后继图节点是Reshape,该节点是为了改变输入形状,属于功能类算子,所以将其调度到MPE上执行即可;其后的Matmul,Biasadd,Softmax都是计算密集的图节点,需要调度到CPE阵列上进行众核并行计算,例如,CPE在执行Matmul图节点的时候,首先将矩阵进行分块,每个CPE执行子矩阵乘法运算,再通过CPE阵列内部的RMA操作进行全局通信,获得原始矩阵的乘法运算结果.
sw26010pro异构众核芯片采用多核组设计,处理器内部包含6个同构的核组,每个核组都有一个MPE和一个8×8的CPE阵列. 因此,要在6核组结构上实现更高层次的并行.
在单核组内部,我们将1个图节点分配到1个MPE或者1个CPE阵列上执行,实现了低层次的图节点内并行;在基于全片视角的多核组上,利用6个等价队列分别维护由上层图计算过程产生的计算任务;在运行核组选择过程中采用Round-Robin的轮询调度策略;在计算任务选择中采用先入先出(FIFO)方法,进而支持高层次的图节点间并行. 这就是本节提出的两级并行策略,该策略能够充分适应sw26010pro的异构融合架构.
值得注意的是,图节点间的并行要求图节点之间没有数据依赖关系,但实际上一般单输入的数据流计算图可并行性并不高,如果将不同的图节点调度到不同核组上,由于图节点之间的数据依赖关系,会导致部分核组处于空闲状态,需要等待其他核组的计算结果才能开始计算.
为此,本文设计了一种图分裂优化方法,首先将输入数据进行平均分割,分割之后的每个输入都进行相同的数据流图执行流程,在输出结果时再进行归并,从而生成并行性更好的数据流计算图.
以图5的数据流图为例,将split值设置为2,经过图分裂之后的数据流图如图6所示.
经过图分裂之后,数据并行输入到不同的数据流子图中,每个子图都是原数据流图的一个复制,各个子图之间没有强相关性,从而具有很好的可并行性,可以映射到不同的处理器分区上执行.
图分裂是一种与体系结构无关的图变换技术,分裂值split可以调整,以适应不同的硬件体系结构. 如果众核处理器集成更多的核组数,只需要提升分裂值,无需改变整体算法就能充分利用硬件计算资源.
在具体实现上,本文采用多线程机制来管理图节点的调度,根据核组数来确定线程个数. 在sw26010pro上会启动6个线程来执行数据流图,每个线程绑定在1个核组上运行,这样能保证各线程不存在资源冲突问题.
调度器将所有图节点组织成任务池,并记录每个节点的前继节点. 在执行过程中,一个图节点可能处于不可用、可用、执行中、完成中这4种状态的一种. 每种状态对应一个任务池.
初始情况下,将没有前继节点的图节点状态设置为“待命”,其余节点状态均设置为“不可用”. 线程函数从任务池里通过抢占方式获取一个图节点任务,如果该图节点的已处于可用状态(所有前继节点均已完成),则执行该节点,并将该节点状态设置为“执行中”,完成后则设置状态为“完成”. 值得注意的是,线程选择下一个执行节点时,优先从该节点的后继节点中选取,如果后继节点不可用,则从该节点前继节点的其他后继节点中选择. 这种搜索方法可以使得单个相对独立的数据流子图在一个线程内部完成.
图节点状态变换关系如图7所示.
4. 实 验
本文选择6种典型神经网络模型作为数据流计算的输入,通过TensorFlow编程接口编写数据流程序,实现这些模型的训练过程,这些模型及其变种也是HPC+AI领域应用经常使用的模型. 具体模型信息如表1所示.
表 1 6种典型神经网络模型Table 1. Six Typical Neural Network Models测试硬件平台为sw26010pro处理器,其包含6个核组,6个MPE和384个CPE,全片主存空间大小为96 GB,每个CPE的片上高速缓存LDM大小为256 KB.
软件环境为swFLOWpro数据流计算系统、swHMAE核心计算加速引擎,以及swPython编程环境.
本文选择众核加速比ManyAccRatio作为主要的性能评价指标,其定义为:
ManyAccRatio=MPE_timeCPE_time×100%, 其中MPE_time表示在MPE主核上的运行时间,CPE_time表示在单核组阵列上的运行时间. 由于sw26010pro结构的特殊性,其与GPU,TPU等人工智能专用芯片的性能对比意义不大,通过众核加速比可以体现SwFlowpro在sw26010pro独特的异构融合结构上的适配性和优化效果.
4.1 swHMAE针对典型模型核心计算的众核加速效果
本文使用swFLOWpro构建了6种典型模型,并统计了模型中所有核心计算(数据流图节点)类型,选择7种典型核心计算类型,通过swHMAE引擎进行众核加速. 具体统计信息如表2所示.其中Conv2D, Conv2DBackpropFilter, Conv2DBackpropInput都是卷积类计算,Matmul是矩阵乘计算,Relu是激活类计算,Poolmax是池化类计算,ApplyGradientDescent是训练更新参数计算.
表 2 典型核心计算Table 2. Typical Core Computing核心计算类型 分类 Conv2D SW_Conv Conv2DBackpropFilter SW_Conv Conv2DBackpropInput SW_Conv Matmul SW_Matmul Relu SW_Activate Poolmax SW_Pooling ApplyGradientDescent SW_OPs 在表1的6种典型模型中,统计了典型核心计算在sw26010pro的单核组CPE上的运行时间,通过对比swFLOWpro未经众核优化的MPE运行时间,并获得众核加速比.详细测试数据如表3所示.通过计算,获得的各类型的典型核心计算众核加速比如图8所示.
表 3 典型模型中的典型核心计算测试时间Table 3. Test Time of Typical Core Computing in Typical Modelsms 模型 Conv2D Conv2DBackpropFilter Conv2DBackpropInput Matmul Relu Poolmax ApplyGradientDescent Alexnet-MPE 153470 141700 51100 20260 352 340 528 Alexnet-CPE 611 1320 238 548 11 23 21 VGG16-MPE 1629210 1114340 718380 37430 5260 2120 1080 VGG16-CPE 3140 1910 2310 1120 119 172 50 ResNet50-MPE 250690 285090 152940 181 2170 373 250 ResNet50-CPE 652 1690 1690 9 56 24 14 ResNet101-MPE 578400 552900 303010 182 3410 372 449 ResNet101-CPE 1060 2200 2220 9 90 24 25 Inception3-MPE 489790 443940 216850 86 2140 3730 215 Inception3-CPE 1160 1480 1540 3 61 278 16 Inception4-MPE 1019110 1010510 472480 21 3610 6370 413 Inception4-CPE 2670 2960 3660 0.8 101 503 26 卷积类运算是实验的6种典型模型的关键,也是swHMAE实现众核加速的重点运算.swHMAE会根据输入规模和相关参数,自适应选择swDNN库中最优的算法实现. 由图8实验结果可以看出,Conv2D的众核加速比达250~545,Conv2DBackpropFilter的众核加速比达107~583,Conv2DBackpropInput的众核加速比达90~310,加速效果良好.
其他核心计算类型的众核加速比测试数据如图9所示.
针对矩阵乘类核心计算,swHMAE从swBLAS库中自适应选择众核算法. 测试表明,矩阵乘核心计算的众核加速比仅有26.1~38.7,由表3可以看出,本文选择的典型模型都是卷积类神经网络,矩阵乘的计算量很小,不能充分发挥CPE从核阵列的全部计算能力. 除此之外,swBLAS库中矩阵是按列优先模式存储,在接入模型时还需要先进行矩阵转置. 所以,矩阵乘的实际众核加速比效果远低于卷积类算子,在后续工作中可以针对矩阵转置进行优化.
针对Relu激活类运算,swHMAE通过swDNN库进行加速,众核加速比达到26.1~38.7.
除了计算密集类运算之外,模型中也会用到一些其他算子,这类算子虽然计算量小,但如果不进行众核优化,则会成为性能瓶颈. 如本文实验选择的更新参数操作(ApplyGradientDescent),是模型训练中常见的算子类型,但缺乏专属的算法库支持. 本文选择在swHMAE中直接集成其众核优化算法,实验表明众核加速比达13.9~25.2.
测试结果表明,在sw26010pro上,卷积类运算的众核加速比要远高于其他运算类型,这主要是因为国产异构众核的架构设计对于卷积这类计算密集类运算的适应性更好.
4.2 swFLOWpro+swHMAE针对典型模型训练的众核加速效果
本文使用swFLOWpro+swHMAE运行6种典型模型的训练过程,单步训练batch大小统一设置为32.
实验分别测试在sw26010pro的单MPE和单CPE阵列上的单步训练时间,并计算众核加速比. 测试数据如表4所示.
表 4 典型模型的单步训练测试数据Table 4. Single Step Training Test Data of Typical Models典型模型 MPE运行时间/s CPE运行时间/s 众核加速比 Alexnet 379.8 3.1 123 VGG16 3525.5 10.2 346 ResNet50 973.6 8.2 119 ResNet101 1876.6 12.1 155 Inception3 1373.1 11.9 115 Inception4 2996.9 20.1 149 由图10可见,VGG16模型的众核加速比最高,达到346,其余的模型加速比相差不大,在115~155之间.
模型的性能与模型中各类型核心计算的性能紧密相关,由4.1节测试结果可知,在sw26010pro上,卷积类运算的众核加速比要远高于其他运算,所以卷积类运算占比较高的模型,在sw26010pro上的整体加速比也更高.
本文统计了在6种典型模型中,卷积类和非卷积类核心计算的运行时间占比,如表5所示. 这6种典型模型都属于卷积神经网络,它们的卷积类运算占比为82.5%~97.4%.
表 5 典型模型的卷积类和非卷积类核心运算占比Table 5. Core Computing Proportion of Convolutional and Non-Convolutional of Typical Models% 典型模型 Conv2D Conv2DBackpropFilter Conv2DBackpropInput 非卷积类运算 Alexnet 11.5 27.2 54.8 6.5 VGG16 11.1 37.2 49.1 2.6 ResNet50 9.2 25.3 48 17.5 ResNet101 10.1 23.7 51.3 14.9 Inception3 11.8 31.6 40.5 16.1 Inception4 11.6 29.7 45.2 13.5 表5中,VGG16的卷积类运算占比最高,达到了97.4%(11.1%+37.2%+49.1%),所以这个模型的众核加速比也最高,Alexnet的卷积类运算虽然占比高达93.5%(11.5%+27.2%+54.8%),但由于其卷积类运算的计算量较小,不能充分发挥sw26010pro的计算能力,所以整体众核加速比只有123.
实验表明,针对典型模型的训练过程,swFLOWpro+swHMAE比原始运行模型,特别是卷积类计算占比较高的模型(如实验中的VGG16)有显著的众核加速效果.
4.3 两级并行优化效果
我们将sw26010pro的单处理器(包含6个核组)作为一个执行单元,测试6种典型模型经过面向全片的两级并行优化之后的加速效果.
首先,测试不使用图分裂技术的6个核组并行加速效果,在这种模式下,6个核组的利用效率受限于不同模型构建出的数据流图本身的可并行性,测试数据如图11所示.
加速比最高的是Inception4模型,达1.49;最低的是Alexnet模型,达1.19.这是因为,Inception模型本身的数据流图具有不错的可并行性,而模型结构简单的Alexnet模型可并行性并不好.
整体而言,在不使用图分裂的情况下,6核组的加速比较低,这是因为计算图的核心计算节点之间存在依赖关系,导致高层次的节点间并行不能同时进行计算,限制了并行效果,这也是本文提出图分裂技术的主要原因.
然后,使用图分裂技术进行优化,将split值分别设为2,4,6,并测试典型模型在全片6核组上运行对比单核组(split = 1)运行的加速比,测试数据如图12所示.
图12中加速效果最好的是ResNet50(split = 6),加速比达4.96,并行效率达到了82.6%. 通过使用图分裂技术,选择合适的参数split,典型模型全片加速比能达到1.78~4.96.
图分裂技术结合面向异构融合的两级并行策略,在sw26010pro的多核组异构众核结构上取得了很好的并行效果,测试表明,图分裂技术针对典型模型的性能提升效果最高达到246%(ResNet50),最低也能达到50%(AlexNet).
值得一提的是,从实验数据中也可以看出2个问题:1)sw26010pro的众核结构对模型和核心计算的计算量要求较高,一些轻量级的模型无法充分利用众核资源,所以Alexnet的单核组和6核组加速比都不理想. 2)图分裂结束也会带来图节点数量的大幅度增长,会增大内存需求,对于Inception这种本身就具有一定并行性的计算图,会出现图节点膨胀的现象,进而增大节点调度和分配的开销,所以其6核组并行加速比只有2.54~2.88,这也是图分裂技术目前存在的缺陷.
5. 结 论
本文提出了一种面向新一代国产异构众核处理器的数据流计算系统swFLOWpro,该系统通过核心计算加速引擎swHMAE支持在国产异构众核处理器上的并行加速,并提出面向异构融合的两级并行策略,支持面向国产异构众核处理器全芯片视角的调度和并行方法. 实验表明,swHMAE针对卷积类核心计算,众核加速比达90~545,针对其他核心计算,众核加速比达13.9~38.7;swFLOWpro+swHMAE支持典型模型在sw26010pro上的高效执行,VGG16模型众核加速比可达346;通过面向异构融合的数据流调度策略,全片ResNet50加速比达4.96倍,6核组并行效率达到82.6%.
未来的工作主要包括3个方面:1)继续拓展swHMAE支持的核心计算类型;2)优化面向全片多核组的两级并行策略,优化图分裂算法,探索更高效的数据流调度算法,提升图节点间并行效率;3)完善系统,支持更多种类的神经网络模型高效运行,并引入新的优化算法.
作者贡献声明:肖谦提出了技术方案,实现系统和撰写论文;赵美佳和李名凡负责核心计算众核优化实现和论文完善;沈莉和陈俊仕负责数据流调度算法实现和优化;周文浩和王飞负责部分实验代码编写;安虹提出指导意见并修改论文.
-
表 1 符号定义
Table 1 Notations Definition
符号 定义 PS 参数服务器 CA 证书认证机构 Pi 第i个参与者 U 在线参与者列表 NP 参与者的数量 Ndrop 掉线参与者数量 WTi 参与者Pi在T轮的本地训练模型 WTg 在T轮的全局模型 GTi 参与者Pi在T轮的梯度数据 α 学习率 k 用户可选位置个数 s 模型位置 LW 模型列表 L 请求列表 t 秘密分享阈值 ri 参与者Pi的模型掩码 yi,j Pi发送给Pj的ri秘密分享份额 (pkp,skp) 参数服务器的公私钥 (pki,ski) 参与者Pi的公私钥 表 2 现有工作对比
Table 2 Comparison of Existing Work
方案 梯度隐私 毒化攻击
防御扩展抗共谋 隐私保护方法 掉线恢复 PPDC √ √ √ 源匿名 × PPDL √ × × 同态加密 PPML √ × √ 秘密分享 √ EPFDL √ × √ 差分隐私/
同态加密Re-Shuffle √ √ √ 不经意传输/
秘密分享√ 注: "√"表示具有特性;"×"表示不具有特性. 表 3 计算开销对比
Table 3 Comparison of Computation Cost
方案 服务器开销 参与者开销 PPDC O(δNplogNp) O(δ) PPML O(δN2p) O(N2p+δNp) PPDL O(δNp) O(δ) EPFDL O(N2p+δNp) O(δ) Re-Shuffle O(δN2p) O(δNp) -
[1] Sadhu P K, Yanambaka V P, Abdelgawad A. Internet of things: Security and solutions survey[J]. Sensors, 2022, 22(19): 7433
[2] Rind Y M, Raza M H, Zubair M, et al. Smart energy meters for smart grids, an Internet of things perspective[J]. Energies, 2023, 16(4): 1974
[3] Garg S, Mehrotra D, Pandey H M, et al. Static to dynamic transition of RPL protocol from IoT to IoV in static and mobile environments[J]. Cluster Computing, 2023, 26(1): 847−862 doi: 10.1007/s10586-022-03689-x
[4] Zhang Caiming, Lu Yang. Study on artificial intelligence: The state of the art and future prospects[J]. Journal of Industrial Information Integration, 2021, 23: 100224 doi: 10.1016/j.jii.2021.100224
[5] Dey R, Tang Cong, Ross K, et al. Estimating age privacy leakage in online social networks[C]//Proc of 2012 IEEE INFOCOM. Piscataway, NJ: IEEE, 2012: 2836−2840
[6] Zhu Youwen, Zhang Yue, Li Xingxin, et al. Improved collusion-resisting secure nearest neighbor query over encrypted data in cloud[J]. Concurrency and Computation: Practice and Experience, 2019, 31(21): e4681
[7] Li Fenghua, Li Hui, Niu Ben, et al. Privacy computing: Concept, computing framework, and future development trends[J]. Engineering, 2019, 5(6): 1179−1192 doi: 10.1016/j.eng.2019.09.002
[8] McMahan B, Moore E, Ramage D, et al. Communication-efficient learning of deep networks from decentralized data[C]//Proc of the Artificial Intelligence and Statistics. New York: PMLR, 2017: 1273−1282
[9] Kumar R, Khan A A, Kumar J, et al. Blockchain-federated-learning and deep learning models for Covid-19 detection using CT imaging[J]. IEEE Sensors Journal, 2021, 21(14): 16301−16314 doi: 10.1109/JSEN.2021.3076767
[10] Li Yijing, Tao Xiaofeng, Zhang Xuefei, et al. Privacy-preserved federated learning for autonomous driving[J]. IEEE Transactions on Intelligent Transportation Systems, 2021, 23(7): 8423−8434
[11] Yu Shuai, Chen Xu, Zhou Zhi, et al. When deep reinforcement learning meets federated learning: Intelligent multitimescale resource management for multiaccess edge computing in 5G ultradense network[J]. IEEE Internet of Things Journal, 2020, 8(4): 2238−2251
[12] Aono Y, Hayashi T, Wang Lihua, et al. Privacy-preserving deep learning via additively homomorphic encryption[J]. IEEE Transactions on Information Forensics and Security, 2017, 13(5): 1333−1345
[13] Bonawitz K, Ivanov V, Kreuter B, et al. Practical secure aggregation for privacy-preserving machine learning[C]//Proc of the 2017 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2017: 1175−1191
[14] Liu Xiaoyuan, Li Hongwei, Xu Guowen, et al. Privacy-enhanced federated learning against poisoning adversaries[J]. IEEE Transactions on Information Forensics and Security, 2021, 16: 4574−4588 doi: 10.1109/TIFS.2021.3108434
[15] Xu Guowen, Li Hongwei, Liu Sen, et al. Verifynet: Secure and verifiable federated learning[J]. IEEE Transactions on Information Forensics and Security, 2019, 15: 911−926
[16] Hardy S, Henecka W, Ivey-Law H, et al. Private federated learning on vertically partitioned data via entity resolution and additively homomorphic encryption[J]. arXiv preprint, arXiv: 1711. 10677, 2017
[17] Bagdasaryan E, Veit A, Hua Yiqing, et al. How to backdoor federated learning[C]//Proc of the Int Conf on Artificial Intelligence and Statistics. New York: PMLR, 2020: 2938−2948
[18] Zhang Yuan, Chen Qingjun, Zhong Sheng. Privacy-preserving data aggregation in mobile phone sensing[J]. IEEE Transactions on Information Forensics and Security, 2016, 11(5): 980−992 doi: 10.1109/TIFS.2016.2515513
[19] Blanchard P, El Mhamdi E M, Guerraoui R, et al. Machine learning with adversaries: Byzantine tolerant gradient descent[C]. Advances in Neural Information Processing Systems New York: Curran Associates, Inc, 2017:119−129
[20] Liu Yining, Wang Yanping, Wang Xiaofen, et al. Privacy-preserving raw data collection without a trusted authority for IoT[J]. Computer Networks, 2019, 148: 340−348 doi: 10.1016/j.comnet.2018.11.028
[21] Yin Dong, Chen Yudong, Kannan R, et al. Byzantine-robust distributed learning: Towards optimal statistical rates[C] //Proc of the Int Conf on Machine Learning. New York: ACM, 2018: 5650−5659
[22] Xu Guowen, Li Hongwei, Liu Sen, et al. VerifyNet: Secure and verifiable federated learning[J]. IEEE Transactions on Information Forensics and Security, 2019, 15: 911−926
[23] Zhang Li, Xu Jianbo, Vijayakumar P, et al. Homomorphic encryption-based privacy-preserving federated learning in iot-enabled healthcare system[J]. IEEE Transactions on Network Science and Engineering, 2022[2023−08−18].http://dx.doi.org/10.1109/TNSE.2022.3185327
[24] Mothukuri V, Parizi R M, Pouriyeh S, et al. A survey on security and privacy of federated learning[J]. Future Generation Computer Systems, 2021, 115: 619−640 doi: 10.1016/j.future.2020.10.007
[25] Warnat-Herresthal S, Schultze H, Shastry K L, et al. Swarm learning for decentralized and confidential clinical machine learning[J]. Nature, 2021, 594(7862): 265−270 doi: 10.1038/s41586-021-03583-3
[26] Feng Lei, Zhao Yiqi, Guo Shaoyong, et al. Blockchain-based asynchronous federated learning for internet of things[J]. IEEE Transactions on Computers, 2021, 99: 1
[27] Li Yuzheng, Chen Chuan, Liu Nan, et al. A blockchain-based decentralized federated learning framework with committee consensus[J]. IEEE Network, 2020, 35(1): 234−241
[28] Geyer R C, Klein T, Nabi M. Differentially private federated learning: A client level perspective[J]. arXiv preprint, arXiv: 1712. 07557, 2017
[29] Yang Ziqi, Shao Bin, Xuan Bohan, et al. Defending model inversion and membership inference attacks via prediction purification[J]. arXiv preprint, arXiv: 2005.03915, 2020
[30] Park C, Itoh K, Kurosawa K. Efficient anonymous channel and all/nothing election scheme[C]//Proc of Workshop on the Theory and Application of of Cryptographic Techniques. Berlin: Springer, 1993: 248−259
[31] Li Yang, Zhao Yunlong, Ishak S, et al. An anonymous data reporting strategy with ensuring incentives for mobile crowd-sensing[J]. Journal of Ambient Intelligence and Humanized Computing, 2018, 9(6): 2093−2107 doi: 10.1007/s12652-017-0529-x
[32] Chen Jingxue, Liu Gao, Liu Yining. Lightweight privacy-preserving raw data publishing scheme[J]. IEEE Transactions on Emerging Topics in Computing, 2020, 9(4): 2170−2174
[33] Zhao Xinxin, Li Lingjun, Xue Guoliang, et al. Efficient anonymous message submission[J]. IEEE Transactions on Dependable and Secure Computing, 2016, 15(2): 217−230
[34] Shamir A. How to share a secret[J]. Communications of the ACM, 1979, 22(11): 612−613 doi: 10.1145/359168.359176
[35] Lai Jianchang, Mu Yi, Guo Fuchun, et al. Efficient k-out-of-n oblivious transfer scheme with the ideal communication cost[J]. Theoretical Computer Science, 2018, 714: 15−26 doi: 10.1016/j.tcs.2017.12.019
[36] Hao Meng, Li Hongwei, Xu Guowen, et al. Towards efficient and privacy-preserving federated deep learning[C] // Proc of 2019 IEEE Int Conf on Communications(ICC). Piscataway, NJ: IEEE, 2019: 1−6
[37] LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278−2324 doi: 10.1109/5.726791
[38] Akinyele J A, Garman C, Miers I, et al. Charm: A framework for rapidly prototyping cryptosystems[J]. Journal of Cryptographic Engineering, 2013, 3(2): 111−128 doi: 10.1007/s13389-013-0057-3
[39] Rouselakis Y, Waters B. Efficient statically-secure large-universe multi-authority attribute-based encryption[C] // Proc of 2019 IEEE Int Conf on Communications(ICC). Piscataway, NJ: IEEE, 2019: 1−6
-
期刊类型引用(1)
1. 张秀再,邱野,沈涛. 基于改进SSD算法的地铁场景小行人目标检测. 计算机研究与发展. 2025(02): 397-407 . 本站查看
其他类型引用(0)