高效能异构流水线系统的设计与优化
发布时间:2021-07-27 14:52
随着新兴智能计算领域的高速发展,包括计算视觉、语音识别、自然语言处理等领域,不仅应用本身的复杂度不断增加,而且对系统的计算能效,即单位能耗的计算性能,要求也越来越高。在这样的背景下,如何针对人工智能应用设计出高效能的实时并行系统已经成为了工业界和研究界高度关注的重点领域。异构流水线架构成为实现该类系统的一个有前途的解决方案。以深度神经网络为例,随着网络结构的不断加深,流水线设计已成为提升系统性能的重要手段;同时,由于应用子结构间具有显著性差异,为了降低能耗,异构平台能够为应用量身定制能耗最低的解决方案。虽然目前已有大量工作探索软件层的应用结构搜索空间,以及硬件层的异构加速器设计空间,但是独立地探索这两个空间并不能保证最终合成的完整系统达到最高能效。为此,本文致力于软硬件协同设计,针对不同应用与不同硬件平台的特性,开展异构流水线系统的设计与优化研究。相较于已有的科研工作,本文将探索各类异构平台,包括基于现场可编程门阵列(FPGA)集群系统、基于通用计算处理器的多核片上系统、以及基于异构通信的大规模分布式系统,全面地开展软硬件系统的协同设计与优化工作。通过设计高效最优解算法,充分挖掘软件内...
【文章来源】:重庆大学重庆市 211工程院校 985工程院校 教育部直属院校
【文章页数】:132 页
【学位级别】:博士
【部分图文】:
展示了软硬件协同设计的整体框架,包括上层的软件层、中间层的协同设计层与下层的硬件层
文6在这个例子中,任务之间的依赖关系用一个比较简单的有向无环图(DirectedAcyclicGraph,DAG)表示,如图1.3(a)所示。流水线阶段(PipelineStage)划分实际上就是在任务图的依赖边上如何放置缓冲的问题,两个缓冲之间的任务图子集是一个流水线阶段。在流水线执行时,流水线阶段缓冲(PipelineStageBuffer)为多个批次的任务在流水线中的交叠执行传递正确的任务数据。图1.3(b)显示了每个任务分别在两种异构处理单元上的执行时间和开销。假设流水线周期时间限制是9个单位时间,那么我们可以有多个不同的流水线划分方案,图1.4显示了四种不同的划分方案,以及把各个流水线阶段分配到两种不同的处理单元执行的流水线周期时间和开销。前三个方案把图1.3(a)中的任务图划分为四个流水线阶段,第四种方案只划分了三个阶段。流水线周期时间是由最慢的阶段所决定的,因此,划分方案1的周期时间超过了时间限制条件,是不可行的解;假设两种处理单元的数量足够多,方案2的周期时间可以满足时间性能要求,此时系统开销为110;方案3的周期时间同样可以满足要求,系统开销则降低到100;而方案4只用了三个流水线阶段,就可以达到性能要求,并且系统整体开销最校由于流水线阶段较少,数据缓冲的额外开销也校由于要同时考虑缓冲放置和异构资源分配两个问题,异构流水线划分方案的搜索空间巨大,假设任务图有100个任务节点和60条边,任意一条边都可以放置一个缓冲,每个任务有3个处理单元可以选择,那么,设计空间里就有3100×260≈1065个可能的解决方案,如何在这么大的搜索空间内快速有效地找到最优或近似最优的方案是我们需要面对的挑战。在本文中,我们将对流水线划分、异构资源图1.4不同的流水线划分方案Fig.1.4Differentstrategiesofpipelinepar
1绪论7分配、任务调度等一系列优化问题的本质特性、复杂度、最优算法和近似最优解算法做深入的基础研究和论证,建立理论框架,研发出一套高效的异构流水线系统优化技术。接下来,我们将在1.2.2小节与1.2.3小节介绍同步异构流水线系统的研究现状,并在1.2.4小节介绍异步异构流水线系统的研究现状。1.2.2神经网络结构搜索与FPGA硬件加速器设计的研究现状分析近年来,随着深度神经网络在各种人工智能应用中取得长足突破,针对神经网络结构与硬件加速器设计已然成为炙手可热的研究话题。图1.5分别展示了在软件层的神经网络结构搜索(NeuralArchitectureSearch)、硬件层的基于FPGA神经网络加速器设计(FPGA-basedAccelerator)、以及软硬件协同设计层的硬件感知神经网络结构搜索(Hardware-awareNAS)的发展历程。图中,x轴下方表示硬件层设计加速器的工作,x轴上方最上层为软件层,包括了神经网络结构探索的工作,中间层为软硬件协同设计层,包括硬件感知的神经网络结构探索。从图中可以清晰看到,硬件层的设计从2015年开始,由加州大学洛杉矶分校的JasonCong团队在2015提出使用FPGA实现卷积神经网络加速器[22]。其后,在2017年,纽约州立大学石溪分校Shen等人发现神经网络的计算不均匀,提出将一块FPGA被划分成多个运算块,并根据运算量分配硬件资源以提升资源使用率[20];每个流水线阶段被映射到FPGA上的一个运算块;多个运算块以流水线的方式执行,以提高神经网络在测试阶段的吞吐量。2018年,Zhang等人提出了DNNBuilder,自动在FPGA上生成一个给定神经网络结构[21]。图1.5神经网络结构搜索与基于FPGA的神经网络加速器发展Fig.1.5DevelopmentofNeuralArchitectureSeachandFPGAacceleratordesigns
本文编号:3306001
【文章来源】:重庆大学重庆市 211工程院校 985工程院校 教育部直属院校
【文章页数】:132 页
【学位级别】:博士
【部分图文】:
展示了软硬件协同设计的整体框架,包括上层的软件层、中间层的协同设计层与下层的硬件层
文6在这个例子中,任务之间的依赖关系用一个比较简单的有向无环图(DirectedAcyclicGraph,DAG)表示,如图1.3(a)所示。流水线阶段(PipelineStage)划分实际上就是在任务图的依赖边上如何放置缓冲的问题,两个缓冲之间的任务图子集是一个流水线阶段。在流水线执行时,流水线阶段缓冲(PipelineStageBuffer)为多个批次的任务在流水线中的交叠执行传递正确的任务数据。图1.3(b)显示了每个任务分别在两种异构处理单元上的执行时间和开销。假设流水线周期时间限制是9个单位时间,那么我们可以有多个不同的流水线划分方案,图1.4显示了四种不同的划分方案,以及把各个流水线阶段分配到两种不同的处理单元执行的流水线周期时间和开销。前三个方案把图1.3(a)中的任务图划分为四个流水线阶段,第四种方案只划分了三个阶段。流水线周期时间是由最慢的阶段所决定的,因此,划分方案1的周期时间超过了时间限制条件,是不可行的解;假设两种处理单元的数量足够多,方案2的周期时间可以满足时间性能要求,此时系统开销为110;方案3的周期时间同样可以满足要求,系统开销则降低到100;而方案4只用了三个流水线阶段,就可以达到性能要求,并且系统整体开销最校由于流水线阶段较少,数据缓冲的额外开销也校由于要同时考虑缓冲放置和异构资源分配两个问题,异构流水线划分方案的搜索空间巨大,假设任务图有100个任务节点和60条边,任意一条边都可以放置一个缓冲,每个任务有3个处理单元可以选择,那么,设计空间里就有3100×260≈1065个可能的解决方案,如何在这么大的搜索空间内快速有效地找到最优或近似最优的方案是我们需要面对的挑战。在本文中,我们将对流水线划分、异构资源图1.4不同的流水线划分方案Fig.1.4Differentstrategiesofpipelinepar
1绪论7分配、任务调度等一系列优化问题的本质特性、复杂度、最优算法和近似最优解算法做深入的基础研究和论证,建立理论框架,研发出一套高效的异构流水线系统优化技术。接下来,我们将在1.2.2小节与1.2.3小节介绍同步异构流水线系统的研究现状,并在1.2.4小节介绍异步异构流水线系统的研究现状。1.2.2神经网络结构搜索与FPGA硬件加速器设计的研究现状分析近年来,随着深度神经网络在各种人工智能应用中取得长足突破,针对神经网络结构与硬件加速器设计已然成为炙手可热的研究话题。图1.5分别展示了在软件层的神经网络结构搜索(NeuralArchitectureSearch)、硬件层的基于FPGA神经网络加速器设计(FPGA-basedAccelerator)、以及软硬件协同设计层的硬件感知神经网络结构搜索(Hardware-awareNAS)的发展历程。图中,x轴下方表示硬件层设计加速器的工作,x轴上方最上层为软件层,包括了神经网络结构探索的工作,中间层为软硬件协同设计层,包括硬件感知的神经网络结构探索。从图中可以清晰看到,硬件层的设计从2015年开始,由加州大学洛杉矶分校的JasonCong团队在2015提出使用FPGA实现卷积神经网络加速器[22]。其后,在2017年,纽约州立大学石溪分校Shen等人发现神经网络的计算不均匀,提出将一块FPGA被划分成多个运算块,并根据运算量分配硬件资源以提升资源使用率[20];每个流水线阶段被映射到FPGA上的一个运算块;多个运算块以流水线的方式执行,以提高神经网络在测试阶段的吞吐量。2018年,Zhang等人提出了DNNBuilder,自动在FPGA上生成一个给定神经网络结构[21]。图1.5神经网络结构搜索与基于FPGA的神经网络加速器发展Fig.1.5DevelopmentofNeuralArchitectureSeachandFPGAacceleratordesigns
本文编号:3306001
本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/3306001.html