科学的规划

PDF
科学的规划/2019年/文章

研究文章|开放获取

体积 2019年 |文章的ID 7807860 | https://doi.org/10.1155/2019/7807860

Andrew Attwood Mike Ashworth格雷厄姆·d·莱利约翰·马维尔, 第一步在移植LFRic天气和气候模型的fpga EuroExa架构”,科学的规划, 卷。2019年, 文章的ID7807860, 18 页面, 2019年 https://doi.org/10.1155/2019/7807860

第一步在移植LFRic天气和气候模型的fpga EuroExa架构

客座编辑:羌族关
收到了 2019年3月29日
接受 2019年7月31日
发表 2019年10月13日

文摘

近年来,已经有兴趣重燃的使用现场可编程门阵列(fpga)用于高性能计算(HPC)。在本文中,我们探索所需要的技术传统HPC程序员在HPC应用程序移植到fpga中,使用例如LFRic天气和气候模型。我们报告的第一步的fpga移植LFRic EuroExa架构。我们使用Vivado高层Syntheusywwi实现矩阵向量从LFRic内核代码在Xilinx UltraScale +开发板包含一个XCZU9EG多处理器芯片系统。我们描述代码的移植,讨论优化决策,并报告5.34 Gflop / s的性能与双精度和5.58 Gflop / s单精度。我们讨论的效率低下,与峰值性能比较,比较与CPU和GPU性能(考虑到权力和价格),与出版技术,与发布的性能和比较,我们得出一些评论未来发展的前景与FPGA天气预报模型的加速度。实际的实现exascale-class高性能computinems需要显著改善能源效率的这种系统及其组件。这产生了兴趣,计算机体系结构,利用加速器与传统的cpu。fpga作为加速器提供巨大的潜力,可以为科学应用提供性能在高水平的能源效率。EuroExa项目开发和构建一个高性能cpu架构基于ARM与FPGA加速针对exascale-class性能在一个现实的功率预算。

1。介绍

科学和工程的许多领域使用高性能计算(HPC)获得高水平的计算性能仿真和建模确定了需要进展exascale水平的性能(1018每秒浮点运算)。实现exascale CPU-based技术技术上是可行的,但会导致不可接受的电力需求(1]。因此,近年来已经有相当大的兴趣在小说架构系统,利用加速器与cpu大幅提高性能,同时提供改进的功率效率。

现场可编程门阵列(fpga)最近吸引了研究者的注意在学术界和产业界的候选人加速器大规模高性能计算(HPC)应用程序(2,3]。限制fpga可编程性和易用性的大规模科学计算最近减轻通过高级工具的发展4]。Escobar等人分析了一系列计算矮人是否适合加速使用fpga [5]。尽管fpga通常运行在一个较低的频率与cpu和gpu相比,他们提供极具竞争力的性能,尤其是当考虑到其较低的功率要求;例如,丛等人使用Rodinia套件FPGA和GPU性能相比,优化了GPU,和发现,“6 15移植内核,今天的FPGA可以提供类似的性能甚至比GPU实现更好的性能,而消费平均28%的GPU力量”(6]。

传统的硬件描述语言(hdl)编程的fpga过去限制这种技术有经验的硬件工程师由于其复杂性和较低的抽象级别。然而,在过去的十年中,高级语言和高级合成(HLS)工具提出了提高抽象层次和fpga的开发可访问性7- - - - - -10]。这些使硬件配置产生高层次的描述,也就是说,C, c++, OpenCL,和Java,利用fpga以最小的硬件设计经验。丛等人已经证明“HLS解决方案可以实现11%的FPGA资源使用与改进设计生产力减少-31%相比,手工设计”(11]。

例如,Xilinx Vivado HLS编译器和工具(之前自动驾驶仪)提供了转换行为描述用C / c++编写的RTL语言通过支持所有的fpga设计阶段(12]。在另一个例子,博世等人提出了一个omps异构系统的编程模型,目标包括cpu、gpu, fpga (13]。类似OpenMP, omps允许程序员注释他们的应用程序编译器指令表达任务并行使用Xilinx FPGA配置文件生成Vivado或阿尔特拉第四的。李等人提出了一个directive-based OpenACC FPGA翻译框架,它提供了一种利用FPGA(高级编程模型14]。这个框架建立在OpenARC顶部的编译器,这意味着OpenACC OpenCL,可能会被编译的阿尔特拉OpenCL编译器。所有这些解决方案旨在提供便携式跨异构系统性能。与cpu和gpu相比,时间分配在FPGA设计方案相对比较长。但是,这一次已经大大减少了HLS工具,从而吸引研究人员广泛的HPC社区加速大规模fpga上的应用程序。

线性代数无处不在在几乎所有的科学领域,HPC应用程序和矩阵运算形成更高层次的基础算法,如偏微分方程的解决方案。线性代数的基本子程序(bla)为了规范定义一系列的矩阵运算用于计算算法和分类根据他们的计算强度。矩阵向量操作已经被归类为二级巴拉斯的结果计算一个向量(行或列)一次15,16]。实施可能与向量优化增加向量长度结果缓存之前回到记忆中被重用。电脑与分层记忆和并行计算机,进一步的机会,发现更高层次的优化,即。三级布拉斯特区,矩阵与矩阵的操作可能会阻止这样的子矩阵是在缓存或在本地内存中重用(17]。

大多数工作在线性代数子程序的实现fpga一直专注于矩阵与矩阵的乘法,三级布拉斯特区操作。窦等人提出了一个通用块矩阵乘法算法,增强了数据的局部性和可重用性,认为本地存储的局限性和I / O (18]。该算法适用于任意矩阵的使用尺寸和支持一个可伸缩的线性阵列12-stage管线式处理元素(PEs)。整合39 PEs到Virtex xc2vp125-7运行频率为200 MHz的FPGA达到15.6的性能Gflop为双精度为1.6 MB / s本地内存和400 MB / s的外部内存带宽。

Kumar等人提出了两种设计的FPGA加速器IEEE 754双精度浮点矩阵乘法在Virtex-5 SX240T FPGA (19]。第一个设计受限于I / O带宽要求高;第二减少通过加强体育的利用率。Xilinx ISE 10.1 sp1和ModelSim 6.2 e被用来实现和模拟设计。模拟性能29.8 Gflop / s报道40 PEs的频率373 MHz和750 MB / s 5.9 GB / s带宽要求设计1和2,分别。

约万诺维奇和Milutinovic FPGA的架构和实现加速器使用双精度矩阵与矩阵的乘法IEEE浮点运算(20.]。算法被最小化资源利用率和最大限度地提高时钟频率。作者比较设计矩阵乘法的高性能的库,如MKL ACML, GotoBLAS, Atlas Intel和AMD处理器上实现。FPGA设计优于CPU的性能报告203.1 Gflop / s使用252 PEs 403 MHz。

我们也注意到另一个身体的工作集中在fpga上实现稀疏矩阵的操作,例如,(21),但在计算特征稀疏方法不同稠密矩阵操作的考虑。

使用低精度数据格式可以减少资源利用率,减少内存带宽需求,并增加电路的频率,从而提供更高的计算密集型应用程序的性能。太阳等人调查使用mixed-precision算法为了利用reduced-precision数据格式尽可能不失精度(22]。他们实现了一个陆直接解算器与迭代优化选择三种不同精度的迭代循环:标准64位双精度和32位和16位浮点表示。使用精度提供两到三倍的性能降低,可以运行更高的时钟频率为16位(140 MHz和64位120 MHz),并使用更少的资源嵌入乘数(32块128 16位和64位)。

本文中描述的工作的上下文中进行了EuroExa项目部分中描述2。部分3本文描述了LFRic天气模型关注的使用矩阵向量更新和他们如何提取了FPGA加速度。节4,我们描述FPGA评价平台,实现的细节和FPGA的矩阵向量的优化代码。部分5报告性能结果,部分6我们讨论结果,包括低效率的来源,比较峰值性能,比较与CPU和GPU性能考虑权力和价格,与发布技术比较,比较性能和结论发表一些评论未来发展的前景与FPGA天气预报模型的加速度。

2。EuroExa项目

EuroExa项目(http://www.euroexa.eu;EuroExa已经收到了欧盟的资助下地平线2020研究和创新计划资助协议。754337)题为“协同创新和弹性Exascale系统计算在欧洲:从应用程序到硅”提出了一种高性能计算体系结构具有可扩展性Exascale性能水平和提供世界领先的功率效率。这是通过使用低功耗ARM处理器和FPGA可编程组件紧密耦合。EuroExa结合最先进的计算组件使用一个开创性的系统架构,应用设计的灵活性UNIMEM [23),选择应用程序提供高水平的性能,和平衡计算资源与资源需求的应用程序。通过实现技术之间的合作设计,系统软件和应用程序,EuroExa是提供一个创新的解决方案,实现了两个极端的极端数据处理和计算。该解决方案将通过设计、施工、测试和评估三个实验系统在整个项目的持续时间。这将使EuroExa将导致创建一个exascale计算机在2021年。

为了展示设计的功效,EuroExa伙伴正在评估使用一组丰富的应用程序性能。一个这样的应用程序是新的天气和气候模型,LFRic理查森(为了纪念路易斯炒),这是由英国气象局及其合作伙伴的作战部署在未来十年(24]。高质量预测天气和气候的全球、区域、和地方尺度的重视广泛的人类活动,和开发的最新进展在HPC一直是至关重要的天气预报和气候研究的社区。

为了准备执行EuroExa试验台系统,我们已经移植的关键组件LFRic模型Zynq UltraScale + ZCU102评价平台(25]。方法是研究LFRic代码在三个层面:完整的应用程序,紧凑的应用程序或“迷你应用程序,”和关键计算内核。内核的一个例子是矩阵向量产品很大程度上有助于亥姆霍兹解算器和其他地方的执行时间(见部分3.2),这个内核形成本文的重点。

EuroExa项目已经确定了五个编程模型可以用于实现HPC应用程序在Xilinx FPGA硬件。他们(按字母顺序列出)如下:(我)Maxeler MaxCompilerMPT开发环境(26,27](2)OmpSs@FPGA [28](3)OpenStream [29日](iv)SDSoC [30.]或SDAccel [31日与OpenCL](v)Vivado高级合成和Vivado设计套件32]

对于这个工作使用LFRic模型,我们选择使用Vivado高级合成(HLS)生成IP块运行的Vivado UltraScale + FPGA设计。HLS允许直接合成高级C语言代码,可以获得天气模型代码,和当时可用的研究对于我们的目标架构,Xilinx UltraScale +开发平台(见部分4.1)。EuroExa项目内的其他合作伙伴看着上面列出的其他编程模型,因此,在整个项目作为一个整体,我们将在一个好的位置比较性能、易用性、健壮性和成熟度的工具。

3所示。LFRic天气和气候模型

3.1。总体描述

LFRic大气模型,是一个新开发的英国气象局,同时支持天气预报和气候模拟。气象局当前的操作模式,统一模型,使用一个经度网格线的经度收敛在两极,导致性能和可伸缩性的问题,特别是在现代高度并行高性能计算系统。前体之间的项目气象局,自然环境研究委员会、科学与技术设施理事会,称为GungHo,新的动力核心开发使用cube-sphere网格覆盖全球以统一的方式(33]。

GungHo代码也被专门维护开发性能在高和低分辨率和高、低CPU核心。实现这个目标的关键技术是分离关注点,科学的代码分开平行,绩效的代码。科学编写代码符合一个特定的应用程序编程接口(API),和PSyclone代码生成工具是用来自动生成针对不同的计算机体系结构的代码。LFRic天气和气候模型是基于GungHo与其PSyclone动力核心软件技术(24]。

LFRic使用数据分解与光环交易所跨并行多节点集群子域之间使用消息传递接口(MPI)。介绍了FPGA加速度方法的一个简单的内核,是计算元素的情况下一个多节点集群。为一个完整的运行在一个大型多节点并行预测模型系统,这将是增加了许多倍。这项工作关系到MPI分解和光环交换子域之间进一步的章节中讨论6.6

3.2。LFRic概要和调用图

LFRic可以运行在很多配置代表一系列天气和气候的场景在低,中,高分辨率。为了描述的性能,我们跑和异形斜压测试用例,开发了气象局作为绩效评估过程的一部分。LFRic的版本仅用于这个工作实现了部分的科学模型,即动力学和个人内核。LFRic动力学仍在发展这项工作的时候,和重要的优化算法的性能,如提供多栅的预调节器是不完整的。此外,额外的科学模块如物理、海洋耦合,和数据同化也将在未来需要解决。

进行剖析气象局合作系统,克雷XC40,运行在一个单一的核心。运行模型首先向gprof2dot gprof和管道的输出。py和那里点,产生调用图,如图1。调用图框的颜色是根据大量的CPU时间,用红色的和蓝色的最低最高,包括称为例程。

大多数CPU时间是花在亥姆霍兹解算器,用于计算的压力。两个叶子节点,扩展在图所示2,占比50%的CPU时间的测试用例。这两个子程序花大部分的时间执行双精度矩阵向量乘法在外部循环内的垂直水平之上的气氛。因此,移植LFRic作为第一步,我们主要关注在FPGA上运行一个矩阵向量乘法的内核,使用数据被从一个真正的LFRic执行。

我们注意,使用fpga作为加速器为提高性能提供了相当大的范围使用降低精度,精度降低算术运算消耗更少的资源,可以工作在更高的时钟频率22]。最新天气模型使用双精度,但有积极的研究的使用减少了精密计算的某些部分,例如,(34]。对于这个工作,虽然当前LFRic代码使用双精度,我们已经测试了我们的实现单和双精度,预期的好处mixed-precision解决方案(然而,看到报告的结论部分4.7)。

3.3。矩阵向量更新LFRic

矩阵向量更新已经提取到一个内核测试程序,转换为c之间有依赖关系的一些更新整个水平网格,和图形着色方案用于LFRic这样节点在一个“颜色”没有依赖性,可以同时计算。亚当斯等人描述色彩是用于生产独立计算的多线程OpenMP [24]。这种并行性也可以利用FPGA的加速度。技术与所有基于硬件加速的解决方案,一个关键的优化策略是减少传输数据的开销在CPU和FPGA之间。

测试网格是一个非常粗糙的代表的全球cube-sphere电网6组成的“面孔”每12×12有限元细胞,引起864细胞水平,挤压成垂直列40垂直水平(见图1 (24])。今天的全球气候模型运行10公里分辨率的顺序使用这个网格将拥有大约600万个细胞水平。这些模型通常是分布在高度并行多处理器的数千个节点,所以测试网格是一个很好的例子,次网格大小可能会发现在一个CPU上运行。

作为确定的亥姆霍兹解算器的一部分压力,每个细胞上的代码执行一个矩阵向量更新,对于每一个垂直的水平。矩阵的大小是8×6;这可以增加如果高阶方法用于有限元discretisation的解决方案。因此每次更新由一个向量x 6元素,一个矩阵的8×6元素,和一个输出或小(lh) 8元素的向量。lhs-vector更新,所以它的输入和输出,尽管当前的FPGA实现矩阵向量积,让手臂CPU上执行更新。

对于每一个更新,因此(8 + 6 + 48) 864年 40 8 b = 17和8 MB的输入数据 864年 40 8 b = 2 MB的输出数据。我们将描述部分4.6如何管理数据的本地内存约束FPGA设计。

4所示。对FPGA移植和优化加速度

4.1。开发平台和环境

在准备访问EuroExa试验台系统,我们一直使用Xilinx Zynq UltraScale + ZCU102评价平台(25]。在其核心,这个板包含一个多处理器芯片系统(MPSoC)组成,除了其他处理器,一只手臂皮层A53四核CPU 1.3 GHz和Zynq UltraScale XCZU9EG-FFVB1156 FPGA。FPGA包含大约600 k逻辑细胞,2520 DSP(数字信号处理)片,大约3.5 MB的布拉姆(随机存取内存块,这是一个小,快速记忆在FPGA中实现织物)。手臂CPU运行Ubuntu 16.04.5,和我们使用Vivado设计套件35HLS[]和Vivado36),在版本2017.4水平,产生IP模块和FPGA比特流。

4.2。开始代码

LFRic用Fortran编写利用Fortran 2003标准的许多特性(37]。Vivado HLS不接受Fortran代码,所以矩阵向量内核被翻译成c .我们有硬编码矩阵大小和循环长度使用# define语句,以便HLS能产生最有效的实现和控制逻辑的要求是最小化。

翻译后生成的启动代码与固定C和数据大小如图3

4.3。优化代码Vivado HLS

Vivado HLS包括编译器分析C代码,安排操作时间序列在FPGA硬件(合成),然后写过户水平(RTL)代码形成一个IP(知识产权)块可以添加到一个IP库供以后使用Vivado设计套件包含在设计中。

在完成C合成工艺,Vivado HLS生成综合报告包含性能指标。指标包括任务延迟(时间从开始到完成的任务)和任务间隔(连续两个任务的开始时间之间的时间),以时钟周期。一个参数设置在HLS目标时钟周期,和HLS也报告估计基于计时时钟周期实现合成的设计;因此,它总是可以在时钟周期的表现转化为预期的时间。也有消息发送到控制台窗口提供优化的信息或未执行,原因缺乏成功的优化和关键路径通过代码的位置。

使用这个HLS反馈,可以优化代码不执行,实现大量减少报告的延迟。优化的目标是以下几点:(我)实现流媒体数据的IP块和一个64位的目标词每个时钟周期(2)实现流水线乘法与加法算术运算和重叠的实现一个64位的乘法和一个64位的每一辆自行车(3)尽量减少使用FPGA资源

以下进行优化:(我)循环在垂直交换使k-index水平最内层循环(2)数据数组转置,确保数据运行所需k-index顺序在内存中;和上面的一起,这确保了一个连续的循环长度为40元素(3)HLS展开的编译指示应用最内层循环;手工展开也试过但没有被证明导致额外的好处(iv)HLS管道编译指示应用于最外层的循环(v)只是计算矩阵向量乘积的代码,没有更新小(lh)数组;手臂上的更新可以执行CPU(vi)HLS接口语法被添加为子程序的参数定义的接口;特别是,条款num_read_outstanding = 8, max_read_burst -_length = 64, num_write_outstanding = 8, max_write_burst_length = 64(七)数据读取和写入子程序参数复制到复制从当地工作数组(本地数组使用BRAM_18K逻辑矩阵向量中的元素实现IP块)使用memcpy(八)输入数组x是恒定外df的迭代循环,所以呢x复制到其本地数组一旦开始;片和列的矩阵复制输出lh数组复制在每个迭代的循环

一组全面的优化转换为开发高性能FPGA设计使用HLS在[38]。结果代码如图4

HLS接口语法在代码中定义的端口可以互连矩阵向量IP块的在随后Vivado设计。三个数组参数指定为阿喜(先进的可扩展接口)主端口(m_axi)。阿喜是一种先进的单片机总线架构从手臂有限公司三个接口捆绑在一起成一个单一的端口使用bundle -选项有助于简化互连网络。指定一个接口的返回参数s_axilite产生一个奴隶与AXILite协议端口,它是连接“寄存器”用于控制块(见部分4.5)。

最后两个优化在上面的列表中尤其重要。没有他们,数据读取不流,每个单词读独立的块开始前等待一个阅读完成。与优化,数据流在一个词每循环。我们注意到在特定的利益使用memcpy;HLS承认memcpy和使用“破裂模式”实现它36]。数据流的存在与否突发模态可以被附加在Vivado设计一个集成逻辑分析仪(马尼拉)IP块之间的数据路径矩阵块及其布拉姆。两种情况的截图,没有和数据流的优化,数据所示5(一个)5 (b)

产生的分析报告Vivado HLS包括性能与时间轴显示选项卡的发行和持续时间读取等操作,乘法,和添加。考试的时间显示,后一个初始创业阶段,一个加法(dadd)和乘法(dmul)被发布了每一辆自行车。

指标HLS合成报告详细地报道逻辑元素的利用FPGA芯片上,特别是BRAM元素的数量(BRAM_18K)、数字信号处理器(DSP48Es)、拖鞋(FFs)和查找表(附近地区)。从这个报告中性能和利用数据如表所示1一系列目标时钟时间。慢的时钟(50 ns和更大),HLS使用DSP48Es数量的三倍。


目标时钟(ns) 估计时钟(ns) 延迟(时钟) DSP48E总 DSP48E dadd DSP48E dmul FF 附近地区

One hundred. 87.50 2306年 42 3 11 28960年 9023年
50 43.75 2306年 42 3 11 28960年 9023年
20. 17.50 2312年 14 3 11 20423年 6751年
10 8.75 2315年 14 3 11 20742年 6889年
5 4.99 2321年 14 3 11 21466年 6860年
2 2.89 2334年 10 0 10 23199年 7203年
1 1.96 2336年 10 0 10 23570年 7200年
0.5 1.96 2336年 10 0 10 23570年 7200年

检查性能时间表的Vivado HLS表明,虽然有时能执行在一个周期,三个添加和三个乘法对性能的影响是可以忽略不计的执行整个加载/存储绑定。时钟时间大于2 ns, HLS使用三个DSP48Es双精度的双精度加法和十一DSP48Es乘法。在高时钟速度(时钟2 ns和更少),DSP48Es越来越少使用。言下之意是,在高时钟速度,时间限制不能满足使用的一些DSP48Es,取而代之的,它们的功能是增加使用FFs和附近地区。

2显示所使用的许多逻辑元素合成的矩阵向量代码2 ns时钟周期,与元素的总数相比ZU9 FPGA上可用。矩阵向量块使用一小部分芯片上的可用空间的FFs最多(4%),允许相当大的范围为复制块增加了FPGA的并行性(空间并行)。


逻辑元件 BRAM_18K DSP48E FF 附近地区

矩阵向量块 8 10 23199年 7203年
可用 1824年 2520年 548160年 274080年
使用百分比 0.44 0.4 4.23 2.63

八BRAM_18K逻辑使用元素:四作为主人m_axi端口流的缓冲区的数据数组和四个本地数组空间。

使用代码图开始3HLS报道,Vivado 69841时钟周期的延迟。优化代码,合成的目标时钟周期2 ns,产生2334个周期的延迟,30倍的改善。2.89 ns的实际估计时钟周期(346 MHz)给出了一个准则的最大频率设计包括这个IP块可能会正确操作。

4.4。分析矩阵向量内核的执行时间

对于这些数据情况,矩阵的大小8×6和40垂直水平,矩阵向量内核执行2×8×6×40 = 3840浮点运算(失败);也就是说,有一个加法和乘法矩阵的每个元素。详细检查的性能时间表提供以下分析报告延迟。2334年周期的延迟(在一个时钟周期2 ns)分解如下:有一个初期的371年周期包括启动11个周期后跟读的240个元素x矩阵为本地数组(当地布拉姆)突发模态以每周期(240次)和一个元素数组从本地加载到寄存器每周期两个元素(120次)。

然后,外层循环遍历df执行循环计数的8。执行的循环迭代由管道添加240和240乘法为每个组合multiply-add使用一个周期,所以有240为每个迭代周期的循环。有一个开始/结束43周期成本进行读取填充管(24个周期)和写入空(19周期),但迭代可以执行240周期的时间间隔,所以43-cycle“启动”成本只付一次循环。240 + 8倍的管道启动43周期和一个初始阶段的371周期产量2334周期。

2334周期的执行时间对应1.65失败每个时钟周期,上述费用的理想目标的影响减少每周期2.0失败。

4.5。将矩阵向量块集成到一个Vivado设计

为了执行矩阵向量的IP块,它需要被纳入一个街区设计使用Vivado设计套件[35]。我们从Vivado IP使用IP块目录(39)为了提供数据处理功能的设计,接口与手臂CPU、位、时钟控制,等等。有很多方法可以做到这一点,和相当大的精力消耗在比较不同选项的设计。我们在座的两个设计,结合大量的矩阵向量IP块为了增加可用的并行性,说明一些需要考虑的权衡。

这两款设计包含以下:(我)一个数字,n块,矩阵向量的IP块(2)相同的号码,n块,块内存生成器提供BRAM块内存块,一个内存块矩阵向量(3)相同的号码,n块,阿喜BRAM控制器模块提供一个为每个内存块AXI协议接口(iv)一个Zynq UltraScale + MPSoC IP块,它提供了一个接口的ARM处理器,通过两个AXI4高性能主满负荷运作的领域港口(HPM0 FPD和HPM1 FPD)(v)孵蛋的向导IP块,它提供了一个定制的时钟,用于改变到另一块提供的时钟速度(vi)一个处理器复位系统块

两个设计之间的差异出现在的方式矩阵向量块,位,Zynq MPSoC是相互关联的。64位数据路径的基本要求是以下连接:(我)主Zynq港口到从港口每个矩阵向量IP块,这样手臂CPU访问控制寄存器(2)主Zynq端口,一个奴隶端口在每个BRAM控制器ARM处理器可以访问位(3)主端口在每个矩阵向量IP块从端口在每个BRAM控制器,这样每个矩阵向量IP块可以访问数据位

4.5.1。设计1:完整的互连

这个设计简单地使用AXI互连块提供完整的所有矩阵向量块之间的互连,所有位,Zynq MPSoC。对于小数量的块(n块≤8),这可以用一个AXI互连来实现。我们建立了一个AXI互连块n块+ 1端口连接到主端口的奴隶n阻塞矩阵向量和Zynq主港口之一,和2 n块矩阵向量的主端口连接到从港口块和奴隶的港口BRAM控制器。

AXI互连模块支持最多16主端口和奴隶港口,所以n两块> 8日AXI互连块使用每一个使用不同的主端口Zynq和每个服务n阻塞/ 2矩阵向量n/ 2块布拉姆控制器。这个设计有四个矩阵向量街区的一个例子是图所示6

已完成的设计、开发人员指示Vivado设计套件执行以下的步骤:(我)综合:将RTL-specified设计转换为一个门电路级表示(2)实现:将网表和路由到设备资源,在逻辑、物理、和时间约束的设计(3)比特流生成:生成一个比特流Xilinx设备配置

有两种类型的设计约束:物理约束,承认限制在逻辑设计对象的映射设备资源,频率和时间的约束,它定义的设计要求。不同的物理和时间约束可能需要不同的目标设备。时间报告可以运行在合成设计,这样问题可以固定在实现。

Vivado进行静态时序分析,计算的预期时间电路不需要完整的电路的仿真。时间报告总结分析中发现的任何负面松弛;-松弛时生成的路径太缓慢,必须加快和路径(或信号必须被推迟)如果整个电路工作速度所需的。特别是,该报告提供了最糟糕的负面数据疲软(白鼻综合症),最糟糕的松弛时间路径,和总负松弛(TNS),违反白鼻综合症(的总和40]。如果设计违反这些时间限制,比特流生成将会失败。

4.5.2。设计2:降低互连

测试设计1显示的最大时钟速度设计可以运行之前时间违反诱导失败是相对较低,仅为250 MHz。我们每个矩阵向量IP块提供了自己的布拉姆,它不需要访问其他位和完整的每一个矩阵向量之间的互连和每个内存块不是必需的。2设计实现了一个简化的设计,同时提供上述要求连接。此外,阿喜互连街区有一个高度的内部复杂性包括能力不同AXI协议之间的转换和路径之间有不同的数据宽度。在这个设计中,我们使用,在可能的情况下,阿喜横梁块,内部更简单。

我们正在与双精度浮点数据,所有数据路径的设计被设置为64位。然而,主端口Zynq在128位是固定的。因此,我们从一个AXI互连开始阻止提供转换128位宽HPMx FPD港口到64位宽数据路径矩阵向量阻塞和布拉姆。从一个主AXI互连端口,一个AXI协议块提供AXI4之间的转换和AXI4Lite矩阵向量上的奴隶港口块。这个设计与设计1的不同之处在于,我们使用两个主端口Zynq用于不同的目的;矩阵向量的一个服务的控制寄存器,和其他访问BRAM块。

控制寄存器,一个AXI纵横开关允许MPSoC HPM0 FPD端口向奴隶扇出端口在多个矩阵向量块。第二个AXI纵横开关允许MPSoC HPM1 FPD端口上扇出奴隶港口BRAM控制器。然而,后面这两个连接和矩阵向量上的主端口块需要访问位,所以每个BRAM控制器连接到一个简单的阿喜横梁和两个奴隶港口和一个主端口。这个设计有四个矩阵向量街区的一个例子是图所示7

4.5.3。设计的比较

在前面的两个部分,我们用12块矩阵向量产生了两个设计。布拉姆的ZU9 FPGA有大约3.5 MB。使用12矩阵向量块每个有自己的专用布拉姆导致12位的256 kB或3 MB,利用最可用的布拉姆资源。更少的块矩阵向量将提供有限的并行性。大量的块将意味着减少位到128 kB的容量。此外,我们已经接近时间限制的限制;试验设计与16个矩阵向量块失败时间违规。

互连需求的两个设计的比较如下:设计1:两个AXI互连与7奴隶港口和12块每主端口(7×12)设计2:一个AXI互连块(2×2)一个AXI协议转换器两个AXI横梁块(1×12)12 AXI横梁块(2×1)

4.5.4。管理内存和地址空间

在成功完成的步骤生成一个比特流在Vivado设计套件,我们可以导出硬件平台规范文件。这是最容易使用Xilinx SDK(查看41),这显示了每个矩阵向量块“寄存器”。这是一个地区在内存中包含控制字的部分是用来控制块,例如,AP_START启动块和AP_IDLE测试块是否已经完成了执行和空闲。这个区域还包含接口的地址为每个参数矩阵向量的子程序。设置地址位置在布莱姆。三个数组(矩阵,x开始块之前,lh)有效地“点”块所需的输入和输出数据的位置。

每个HPM FPD主端口与一个地址空间;HPM0 FPD的地址空间从xA0000000开始,HPM1 FPD,地址空间从xB0000000开始。Vivado设计套件地址编辑器(42)用于分配地址范围为每个主界面。设计2,HPM0 FPD只有访问矩阵向量上的奴隶港口块,所以xA0000000用于他们的地址空间。相比之下,HPM1 FPD只有访问记忆,所以它使用从xB0000000空间。BRAM块的大小也是指定的地址编辑器,通过指定的地址范围。

虽然设计和优化过程的主要目标是减少执行时间,还有一个权衡利用FPGA资源。我们已经讨论了在部分4.3HLS显示所使用的资源的利用率报告一个矩阵向量IP块。Vivado设计套件还提供了一个利用整个设计报告。FPGA利用率两个设计如图8。同时利用dsp和位,因为他们来自相同,分别的数量矩阵向量块和布拉姆块的数量,简化的互连设计2相对于设计1导致一个小但在FFs的数量显著减少和附近地区使用。正如我们将看到当看着性能部分5,这将允许更快的时钟速度和/或额外的空间并行性,导致更高的性能。

4.6。CPU驱动代码

FPGA比特流生成的Vivado设计套件是由应用程序代码运行在ARM处理器上。目前,这是一个司机,练习的矩阵向量代码使用真实的数据写入LFRic代码的运行。之前这是一个准备阶段,在手臂上运行完整的LFRic天气模型与内核,包括矩阵向量乘法和其他内核,卸到FPGA。

条款是在Vivado HLS IP专用自动生成的应用程序编程接口(api),特别是C例程可以在ARM处理器上使用控制IP块,例如,初始化开始,监控状态和读写数据43]。我们选择发展自己的API,最初在C矩阵向量内核,但它也实现标准Fortran和根据LFRic应用程序的需求。方法如下:(我)我们把设备/ uio0和/ uio1添加到Linux OS提供港口HPM0 FPD HPM1 FPD(2)我们调用mmap每个设备映射到用户空间(3)我们指定的用户空间指针位置寄存器的每一块空间,在每个布拉姆和数据数组(iv)我们把工作分成组的列将适合FPGA布拉姆(见下文)(v)为每个组的列(见下文),我们执行以下:(一)分配一块矩阵向量(b)输入数据从CPU内存复制到布拉姆(c)设置控制字“寄存器”(d)通过设置AP_START启动块(e)等待看AP_IDLE块完成(f)副本输出数据从BRAM回到CPU内存(vi)在实践中,我们从数据复制时间单独的执行时间填满所有的位,然后运行n阻塞矩阵向量,最后复制输出数据重复(七)我们执行一个执行检查通过比较标准答案的正确性(八)我们时间代码通过执行在一个重复循环来摊销启动成本更大的作品

UltraScale +,我们仅限于大约3.5 MB的BRAM空间。两个FPGA设计部分4.5使用256 kB大小的位,十二位交付3 MB的容量。因此,代码块每个矩阵向量的数据块,适合布拉姆的256 kB。

LFRic数据由垂直列组成水平细胞从有限元网格所有40垂直的水平。与一个输入x6个元素的数组,输出lh 8个元素的数组,和8×6矩阵元素,每一列需要(8 + 6 + 48) 40 8 B = 19840 B约19 kB。我们仅能容纳13列在每个矩阵向量的256 kB BRAM块。手臂上的驱动代码包含代码管理的分配的数量的总计864模型中的列矩阵向量IP块逐块13列的限制。

4.7。修改为32位浮点数据

为了评估影响性能和芯片的利用率降低精度,我们重复上述过程与32位单精度“浮动”数据。唯一的变化需要FPGA一边从双浮动变化的C代码传递给Vivado HLS和改变一些数据路径的宽度在Vivado设计从64位到32位,即。,这些数据路径矩阵向量之间的阻塞和布拉姆和Zynq和布拉姆之间的块。臂驱动程序代码被修改单精度版本的关键数据处理子程序。

单精度的估计性能报告Vivado HLS代码是2328年与2334年相比ns ns双精度,只有0.26%的储蓄。实现在HLS仍然针对每周期无论精度两个失败。我们希望获利在使用单精度所需的逻辑计算预计在芯片消耗更少的资源意味着我们可以实现更多的IP块交付更大的并行性。

3显示了单个的资源利用IP块在两个单引号和双精度和整整一12-block Vivado设计(减少互连)单引号和双精度。事实上,资源利用与单精度大幅减少,使用完整的设计只有30%的DSP48Es FFs的54%,和64%的附近地区。然而,这并不转化为大量的IP块,再一次,时间限制被发现违反的块的数量限制为12和时钟频率333 MHz。


BRAM_18K DSP48E FF 附近地区

双精度的IP块 8 10 23199年 7203年
单精度IP块 4 3 11934年 6391年
单精度IP块资源相对于双精度(%) 50 30. 51 89年
双精度12-block Vivado设计 816年 120年 302606年 204616年
单精度12-block Vivado设计 792年 36 162726年 131758年
ZU9 FPGA可用资源 912年 2520年 548160年 274080年
单精度Vivado设计资源相对于双精度(%) 97年 30. 54 64年

我们前面提到的,使用fpga作为加速器为提高性能提供了相当大的范围使用降低精度,精度降低算术运算消耗更少的资源,可以工作在更高的时钟频率22]。然而,我们试图利用单精度较高的并行性通过复制在FPGA IP块尚未成功,提高的问题是否需要另一种方法来生成更多的并行性。

5。性能

的性能矩阵向量代码时间,不包括ARM处理器和FPGA之间的数据传输。原因是需要传输数据取决于上下文。这个数据集的主要部分,17个MB的19 MB,由矩阵。在任何港口完成LFRic天气模型的FPGA系统,矩阵将生成和使用FPGA,所以永远不会需要被转移。

时间转换为执行利率Gflop / s知道每个8×6矩阵向量乘法需要2×8×6失败;有两个操作,一个加法和乘法,每个矩阵元素。

性能结果如图所示9和表4。性能报告两个设计,完整的互连和降低互连,显示性能扩展使用的矩阵向量块数量,在100 MHz时钟频率,250 MHz和333 MHz。我们还包括设计2(降低互连)单精度在333 MHz的性能扩展。十二块矩阵向量的最大性能达到5.34 Gflop / s双精度为5.58 Gflop / s为单精度。


矩阵向量IP块的数量 设计2(降低互连) 设计1(全互连)
单精度 双精度 双精度
333兆赫 333兆赫 250兆赫 100兆赫 333兆赫 250兆赫 100兆赫

1 515.7 510.6 386.3 157.9 483.1 362.0 148.3
2 1025.5 1016.2 768.7 312.7 950.7 720.7 292.6
3 1512.0 1496.4 1140.2 463.9 1385.9 1048.5 432.7
4 2008.8 1995.7 1508.6 616.8 1808.4 1370.5 562.0
5 2511.3 2477.7 1889.8 772.9 2253.3 1711.1 705.3
6 2947.1 2900.2 2208.0 907.0 2645.9 2007.9 828.2
7 3414.7 3351.6 2545.8 1047.3 3033.7 2314.7 960.4
8 3956.5 3862.6 2944.9 1209.2 3508.4 2666.1 1105.4
9 4390.0 4286.3 3275.1 1351.7 - - - - - - - - - - - - - - - - - -
10 4761.8 4629.6 3527.9 1465.6 - - - - - - - - - - - - - - - - - -
11 5274.2 5040.3 3875.9 1610.0 - - - - - - - - - - - - - - - - - -
12 5580.1 5338.8 4084.6 1707.9 - - - - - - - - - - - - - - - - - -

性能设计2(降低互连)超过8 IP模块设计1 10%,但更重要的是,它的功能正确12 IP块,而设计1仅限于8 IP块,因为违反了时间限制。

设计2,速度增加12块相对于一块10.5 x代表一个并行效率94%,并行效率的地方nIP块,En,被定义为En=T1/ (n·Tn),T1执行时间和一个IP块吗Tn的执行时间nIP块。扩展与时钟速度也不错。以十二块矩阵向量,性能改善从1.71到5.34 (Gflop / s Gflop / s在时钟频率从100兆赫到333兆赫,94%的效率。我们注意到的最大时钟频率DSP48 ZU9EG FPGA逻辑细胞是775 MHz (37]。

为了比较FPGA的性能和先进的CPU性能,运行矩阵向量内核,转换为FPGA C之前修改后,在单个节点上英特尔CPU。CPU是一个英特尔Broadwell e5 8 - 2650 v2 2.60 GHz CPU核心。克雷多处理器系统的一部分,我们使用C编译器从克雷8.5.8编译环境版本,因为这通常比GCC提供更好的性能。OpenMP被用来利用所有八个核心的好处。英特尔CPU的速度增加从1到8核是5.8倍,即,72%的并行效率。性能比较如表所示5。峰Broadwell CPU的性能就是来自16个失败/周期×8芯×2.6 GHz。峰ZCU102 FPGA的性能的研究[45]。这个数字没有考虑中的数据计算的精度,所以可能是一个相当大的高估了64位精度。


硬件 矩阵向量性能(Gflop / s) 峰值性能(Gflop / s) 比例最高

ZCU102 FPGA 5.34 600年 0.9%
英特尔Broadwell e5 - 2650 v2 2.60 GHz 8核的CPU 9.86 332.8 3.0%

FPGA性能Broadwell 8核的CPU的54%;然而,对于比较CPU和FPGA的性能,有必要考虑相对功耗和两个设备的相对价格。这将是完成的部分6.3

6。讨论

6.1。矩阵向量内核的性能

我们已经描述了开发和实现使用Vivado奥软和Vivado设计套件的矩阵向量乘法内核已用于处理一个重要的数据集,864列的40数据,从LFRic天气和气候模型。内核处理单个列的数据(40双精度浮点矩阵向量乘法8×6矩阵)被实现为一个IP块和复制12次在Xilinx ZU9EG FPGA的逻辑单元。由此产生的性能是5.34 Gflop / s双精度的时钟速度333 MHz可编程序逻辑。这是计算的速度从布拉姆布拉姆在FPGA上,忽视了数据传输系统的其他部分。

有三个因素决定,限制了我们的矩阵向量内核的性能:(我)个体的性能在失败/循环矩阵向量IP块(2)矩阵向量的数量在设计IP块(3)用于驱动的时钟频率可编程逻辑(PL),主要是相关的矩阵向量块还块,例如,布拉姆块

个体的性能矩阵向量IP块是针对2失败/周期的峰值1.65失败/周期但实际上是有限的,因为开销与数据传输和管道启动成本(HLS)据Vivado的性能估计。IP块使用的数量和PL的时钟频率是有限的时间限制。特别是,我们希望能够利用所有可用的FPGA逻辑,但发现,在实践中,这些时间限制将限制比所需的资源更严重。换句话说,我们的应用程序中,时间限制超过资源限制。

一个理想或峰值性能图,P0用12块,这种设计运行在333 MHz 2失败/周期××12块333 MHz = 7.99 Gflop / s。实际的性能,P一个,可以获得理想的性能由两个效率因素,单块效率,滚开年代,并行效率与块相结合的设计,滚开p;因此,

再次假设性能估计Vivado HLS是意识到在实践中,eff的值为85%年代,这意味着并行效率图设计,eff吗p,是79%。

有关系,之间的权衡,块的数量和最大的时钟速度。简单的设计,我们可以在一个更高的时钟速度运行代码,但随着矩阵向量块和记忆数量的增加,设计复杂度的增加和最大时钟速度减少。随着时钟速度的增加和/或矩阵向量块数量的增加,设计会达到这样一个点,在这个时间限制成为重要和时机违规导致执行失败。

设计2正确运作的最大时钟频率如表所示6不同数量的矩阵向量街区。对性能的影响,尽管增加块的数量从1到12个潜在提供多达十二倍的提高性能,减少时钟速度从450兆赫到333兆赫,减少74%,所以立即12 x潜在的增加是有限的8.9倍。类似的对性能的影响是Khayyat和Manjikian世卫组织报告指出,“增加系统大小8次,从8到64计算单位,导致最大可从320年到160 MHz频率减半”(46]。


矩阵向量数块 最大时钟频率(MHz) 矩阵向量性能(Gflop / s)

1 450年 0.688
4 400年 2.372
8 333年 3.863
12 333年 5.339

6.2。峰fpga的性能

通常是比较持续的一个算法的性能与处理器的峰值性能处理器为了评估硬件的效率被利用,寻找低效率的来源。峰值性能等fixed-hardware处理器CPU或GPU通过求和得到蛇和乘数的数量,其次是乘以浮点结果他们返回的数量每周期(在流或矢量模式(如果可用的话),然后乘以最大的时钟频率。代表最大的处理速率,这永远不可能达到在实践中,但它是接洽最有效的算法,它能让算法硬件忙尽管数据传输开销,指令调度等。

确定可编程序逻辑的最佳性能,如FPGA硬件,那么简单。硬件的性质意味着蛇的数量和乘数是未知的,是一个实现的输出。此外,几乎无限数量的不同的浮点表示,选择哪一种对浮点性能有影响。理想的性能上面导出我们的设计当然不是高峰FPGA的性能,因为它是被依赖的模块和时钟频率,这是由设计决定的,而不是硬件。

这个问题已经解决的帕克(45),具体的检查了峰值性能的数字信号处理器(dsp), gpu, fpga。关于我们的问题,上面列出,无法利用所有芯片的逻辑资源,因为时间限制,他写道:“…当大量的浮点运算符包装在一起,结果是路由拥塞。这导致大量减少实现设计的时钟频率以及逻辑的使用远远高于可比定点FPGA设计。”

6.3。FPGA与CPU比较

我们有业绩FPGA为双精度矩阵向量内核5.34 Gflop / s和54%的8核的英特尔Broadwell CPU。显然对“加速度”,我们希望超越典型的cpu;然而,我们注意到,这是至关重要的考虑比较功耗和价格这两个设备之间。据报道,gpu实现效率价格从0.07到0.12€/ Gflop / s和功率效率高达20 Gflop / s / W (47),在cpu和gpu的使用加速器系统意味着cpu的效率肯定超过。midclass fpga,相当于数据价格0.29€/ Gflop / s的效率和功率效率超过70 Gflop / s / W (47]。

6.4。与发布技术

丛et al。48)认为,FPGA编程HLS可以容易遵循一组简单的五个“最优”的指导方针或步骤。将我们的工作与这些准则进行比较,发现:(我)数据缓存:我们的数据加载到布拉姆充当FPGA矩阵向量的快速缓存块。(2)流水线:我们使用HLS实现流水线指令。(3)PE重复:我们使用Vivado实现重复处理元素与多个IP块。(iv)计算/通信重叠:我们实现重叠执行通信的胳膊CPU与计算重叠在FPGA上,虽然我们也折扣沟通时间深思熟虑过的原因。(v)便条簿重组:这是我们还没有尝试过的东西。这种技术主要是针对建造更大的数据结构从小型数据类型(例如,8位)摊销成本,我们主要使用64位的数据,这可能是不值得的。丛等人说的64位基准(GEMM和SPMV)速度增加实现的技术是“有限的”。

6.5。与发布的性能比较

的研究论文处理稠密线性代数算法在fpga的实现,有许多报告的性能矩阵与矩阵的乘法(MXM)但很少看矩阵向量乘法(MVM)。为了明智地发表的比较我们的结果和性能数据,我们分析这两种算法的特点和对性能的影响大小的变化问题。

MXM与平方矩阵的秩的标准形式N需要2N3失败,2N2读,N2写,所以有3N2数据移动。还有其他的算法,其中最著名的是Strassen方法,导致更好的失败与矩阵的数字大小的缩放。其他技术对小讨论了矩阵乘法(49]。对于eight-byte双精度元素,计算强度(通信)的比例计算N/ 12失败/字节。因此,当矩阵的大小增加时,计算强度增加和数据访问和数据移动的问题变得更加降低。矩阵的12×12给出了一个失败的计算强度/字节,和大多数论文报告的性能矩阵比这大得多。

然而,MVM的情况是不同的:失败和字节规模N2:2N2失败和2N+N2数据移动,导致计算强度2N/ (8 (2 +N)失败/字节。对于一个大N,这渐近方法0.25失败/字节。因此,即使在最好的情况下,我们必须转移每四个字节浮点运算。

因此,尽管它很容易把我们MVM结果与MXM的性能,它应该记得MXM更计算密集型和MVM性能总是由数据传输成本。

我们前面提到(部分1发表在fpga的性能矩阵与矩阵的乘法。窦等人报道“性能达到15.6 Gflop / s,“例如,(18];然而,仔细检查显示,这是一款高性能的计算2失败/周期39 PEs = 15.6×200 MHz×Gflop / s。Jovanović和Milutinović写“实现203.1 Gflop / s”(20.),但这也是一个计算或模拟图获得(2失败/周期×252 PEs−1)×403.87 MHz = 203.1 Gflop / s。Kumar等人宣称“持续的性能29.8 Gflop / s是可能的。“持续的性能通常指的是一个实际的测量与峰值性能,但在这种情况下,性能也得到2失败/周期PEs××373 MHz = 29.8 Gflop / s。看来,许多作者内容报告或峰值性能而不是实际测量计算。等效计算性能在我们的案例中是2失败/周期×12 PEs×333 MHz = 8.0 Gflop / s,其中5.34 Gflop / s是测量。减少开销的来源,因为这在部分实现的性能进行了讨论6.1

最后一个比较可能由博世等人的论文使用omps编程模型(13]。这个模型提供了一个高层directive-based编程的方法比我们的方法更容易使用但最终使用Vivado工具集,包括Vivado HLS,。测量的性能报告单精度矩阵与矩阵的乘法使用阻塞过程,将更大的矩阵分为块大小为128×128。最佳的性能图13.2 Gflop / s报道指出omps并行模型利用四臂CPU核以及FPGA。考虑到这是我们双精度单精度相比,乘法,矩阵与矩阵的乘法相比我们更少的计算效率矩阵向量乘法,我们相信这集导致光线好的地方。

6.6。天气预报模型的前景

我们已经建立了一个方法实现fpga上的矩阵向量乘法的内核。这种方法是通用和可扩展的,这样类似的好处可以带到其他巴拉斯内核,内核在LFRic天气和气候的代码。在当前和未来的工作,我们继续将这些技术应用到其他LFRic内核和调查对完整LFRic代码的性能的影响。

我们注意,这里描述的编程模型,而程序员不需要一些低级的问题,包括地址操作、设置和检查启动和停止位,设置宽度的数据路径。然而,节中描述3.1,LFRic使用关注点分离,以确保科学家不必担心自己与平行,与平台相关的编码。在未来,为了充分支持一个FPGA端口使用这个方法,PSyclone系统可以被修改以支持FPGA-dependent代码的自动生成。

LFRic可以运行在很多配置代表一系列天气和气候的场景在低,中,高分辨率。斜压测试用例的分析部分所示3.2。亥姆霍兹内核,FPGA apply_hx_variable_code,现在将被卸载。它由一系列的矩阵向量乘法和辅助计算6个输入变量。唯一的区别与矩阵向量内核相比,我们的方法是,这次我们将在标准Fortran编写ARM代码,而不是C,为了更好的适应LFRic编程模型。这个内核和矩阵向量内核,将实现一个设计12个独立IP块能够运行,因此利用空间在FPGA并行性。

LFRic代码的一个关键问题,利用FPGA的加速度潜力,与任何加速器,是减少主机CPU之间的数据传输的开销和FPGA。因此,它毫无意义,孤立地看一个小内核的性能,性能将由数据传输成本。我们需要港口组成的一个完整的工作流序列内核,以便关键数据结构长期存在于FPGA和理想是创建和使用完全在FPGA的记忆。

LFRic使用数据分解跨并行多节点集群使用MPI光环子域进行交流。因此工作流的一部分可能代表如下:(我)内核1(2)x1光环交换变量(3)内核2(iv)光环换取变量x2(v)内核3(vi)x3光环交换变量

在卸载整个工作流中,所以有必要考虑MPI通讯所需的光环。最初,光环主机cpu之间进行交换的数据转移到和fpga。我们注意到光环交流所涉及的数据量远小于整个数据数组边界数据需要被转移。进一步优化一步,MPI通讯可以直接从FPGA FPGA,使用通信库EuroExa正在开发的项目。

数据可用性

使用的数据来支持本研究的发现可以从相应的作者。

信息披露

这项工作的一部分,提出了作为国际研讨会会议文摘在第四异构高性能可重构计算(H2RC 18) SC18举行2018年11月11日(50]。

的利益冲突

作者宣称没有利益冲突。

确认

这项工作进行的支持下EuroExa项目(批准号协议754337年),由欧盟资助的地平线2020研究和创新计划。

引用

  1. k·伯格曼,s .博卡·d·坎贝尔et al .,“Exascale计算机研究:在实现Exascale系统技术挑战,“技术。代表,国防高级研究计划局信息处理技术办公室(美国国防部高级研究计划局IPTO),华盛顿特区,美国,2008年,技术代表。视图:谷歌学术搜索
  2. n . Trifunovic诉Milutinovic、j . Salom和a·科斯”在大数据超级计算范式转变:数据流和控制流,”《大数据,卷2,不。1、p。4、2015。视图:出版商的网站|谷歌学术搜索
  3. n Hemsoth t·p·摩根,在可重构FPGA前沿:新应用计算,下一个媒体平台,旧金山,CA,美国,2017年。
  4. d·f·培根,r·拉巴,舒克拉,“FPGA编程为大众,”ACM的通信卷,56号4,56 - 63,2013页。视图:出版商的网站|谷歌学术搜索
  5. f . a . Escobar x Chang, c . Valderrama”HPC fpga为异构平台的适用性分析,“IEEE并行和分布式系统,27卷,不。2、600 - 612年,2016页。视图:出版商的网站|谷歌学术搜索
  6. j .琮、z方,m . Lo h . Wang j .徐和美国,“理解fpga和gpu的性能差异,”学报2018年IEEE第26届国际研讨会现场可编程定义计算机(FCCM)IEEE,页93 - 96年,博尔德有限公司,美国,2018年4月。视图:谷歌学术搜索
  7. w·Meeus k . Van Beeck t . Goedeme j . Meel d . Stroobandt,“今天的高级合成工具的概述”,为嵌入式系统设计自动化,16卷,不。3,31-51,2012页。视图:出版商的网站|谷歌学术搜索
  8. r . Nane V.-M。硅镁层,c . Pilato et al .,“调查和评估的FPGA高级合成工具,”IEEE计算机辅助设计的集成电路和系统,35卷,不。10日,1591 - 1604年,2016页。视图:出版商的网站|谷歌学术搜索
  9. f . Hannig d·科赫,d .虽然早fpga软件程序员施普林格,柏林,德国,2016年。
  10. c . y .林、江z . c .傅K.-H。h·杨,“FPGA高级合成和叠加,”ACM SIGARCH计算机体系结构的消息,44卷,不。4、92 - 97年,2017页。视图:出版商的网站|谷歌学术搜索
  11. j .琮、b . Liu s neuendorf j·格拉,k .维瑟>,“高级合成fpga:从原型到部署,”IEEE计算机辅助设计的集成电路和系统,30卷,不。4、473 - 491年,2011页。视图:出版商的网站|谷歌学术搜索
  12. Churiwala和海德拉巴,与Xilinx®fpga设计瑞士巴塞尔,施普林格国际出版,2017。
  13. j .博世a Filgueras维达尔。m . d . Jimenez-Gonzalez c·阿尔瓦雷斯和x Martorell”与omps利用gpu的并行性和fpga,”学报第一研讨会为节能HPC系统自动调谐和自适应性的方法,p。4, ACM,波特兰,或美国,2017年9月。视图:谷歌学术搜索
  14. 李,j . Kim和j·s .检查者”OpenACC FPGA:框架directive-based高性能可重构计算,”《2016年IEEE国际并行计算和分布式处理研讨会IEEE,页544 - 554年,芝加哥,2016年5月,美国。视图:谷歌学术搜索
  15. j。j Dongarra, j . Du Croz s Hammarling和r . j .汉森”一组扩展的FORTRAN基本线性代数子程序,”ACM交易的数学软件,14卷,不。1,1卷,1988页。视图:出版商的网站|谷歌学术搜索
  16. j。j Dongarra, j . Du Croz s Hammarling和r . j .汉森”656年算法:一组扩展的基本线性代数子程序:模型实现和测试项目,“ACM交易的数学软件,14卷,不。1、18 32,1988页。视图:出版商的网站|谷歌学术搜索
  17. j。j Dongarra, j . Du Croz s Hammarling和达夫,“一套三级基本线性代数子程序,”ACM交易的数学软件,16卷,不。1,1卷,1990页。视图:谷歌学术搜索
  18. y窦,s . Vassiliadis g·k . Kuzmanov和g . n . Gaydadjiev“64位浮点FPGA矩阵乘法,”学报2005 ACM / SIGDA 13日国际研讨会现场可编程门阵列ACM,页86 - 95年,蒙特利,CA,美国,2005年2月。视图:谷歌学术搜索
  19. v . b . y .库马尔,乔希,s . b . Patkar和h时称,“基于FPGA的高性能双精度矩阵乘法,”国际期刊的并行编程,38卷,不。3 - 4、322 - 338年,2010页。视图:出版商的网站|谷歌学术搜索
  20. Ž。Jovanović和诉Milutinović浮点矩阵乘法的FPGA加速器”,专业电脑和数码技术》第六卷,没有。4、249 - 256年,2012页。视图:出版商的网站|谷歌学术搜索
  21. d .邹y窦、郭s和s .倪“高性能FPGA稀疏矩阵向量乘法,”IEICE电子表达,10卷,不。17日,ID 20130529条,2013年。视图:出版商的网站|谷歌学术搜索
  22. j .太阳、g·d·彼得森和o . o . Storaasli“高性能fpga mixed-precision线性规划求解,”IEEE计算机卷,57号12日,第1623 - 1614页,2008年。视图:出版商的网站|谷歌学术搜索
  23. y . p . m .木匠,勾勒出美国阿达米et al .,”欧洲micro-servers Euroserver:节能节点”学报2014年17 Euromicro数字会议系统设计IEEE,页206 - 213年,维罗纳,意大利,2014年8月。视图:谷歌学术搜索
  24. 美国诉亚当斯,r·w·福特,m . Hambley et al .,“LFRic:会议可伸缩性和性能的可移植性的挑战在天气和气候模型中,“2018年,http://arxiv.org/abs/1809.07267视图:谷歌学术搜索
  25. Xilinx公司“Zynq Ultrascale + MPSoC,”2019年2月,https://www.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html视图:谷歌学术搜索
  26. Maxeler技术,“MaxCompilerMPT”, 2019年2月,https://www.maxeler.com/solutions/low-latency/maxcompilermpt/视图:谷歌学术搜索
  27. o·佩尔和o .察觉男人生存的频率扩展与可重构数据流计算,”ACM SIGARCH计算机体系结构的消息,39卷,不。4,60 - 65、2011页。视图:出版商的网站|谷歌学术搜索
  28. j .博世a Filgueras维达尔。m . d . Jimenez-Gonzalez c·阿尔瓦雷斯和x Martorell”与omps利用gpu的并行性和fpga,”学报第一车间自动调谐和自适应性方法节能HPC系统(也是2017年)2017年9月,波特兰,或美国。视图:出版商的网站|谷歌学术搜索
  29. 答:流行音乐和科恩,“OpenStream:表现力和数据流的编译OpenMP流程序,”ACM交易架构和代码优化(墨西哥),9卷,不。4,页1 - 25,2013。视图:出版商的网站|谷歌学术搜索
  30. 诉Kathail, j .黄w .太阳,y丘比,t .水和j . Carrillo”SDSoC:高级编程环境Zynq SoC和Ultrascale + MPSoC”学报2016 ACM / SIGDA国际研讨会现场可编程门阵列蒙特利,p。4, ACM, CA,美国,2016年2月。视图:谷歌学术搜索
  31. f . b .穆斯林,l . Ma m . Roozmeh和l . Lavagno”高效OpenCL的FPGA实现高性能计算应用程序通过高级合成、”IEEE访问5卷,第2762 - 2747页,2017年。视图:出版商的网站|谷歌学术搜索
  32. 无用的,T。,Vivado design suite, White Paper 5, 2012.
  33. a . Staniforth t·梅尔文和n .木”Gungho !一个新的统一模型的动力核心,”学报ECMWF最新发展研讨会在大气和海洋模型的数值方法2013年9月,阅读,宾夕法尼亚州,美国。视图:谷歌学术搜索
  34. x p·d·Duben f·p·罗素,妞妞,w .——t·n·帕尔默,“使用可编程的硬件和地球系统建模中的数值精度降低,”地球系统建模的发展》杂志上,7卷,不。3、1393 - 1408年,2015页。视图:出版商的网站|谷歌学术搜索
  35. Xilinx公司,Vivado设计套件用户指南:开始,UG910 (v2017.2)加利福尼亚州圣何塞,Xilinx公司,美国,2017年。
  36. Xilinx公司,Vivado设计套件用户指南:高级合成、UG902 (v2017.2)加利福尼亚州圣何塞,Xilinx公司,美国,2017年。
  37. 我们Fortran标准委员会,“j3/04 - 007工作草案,2004年5月,https://j3 fortran.org/doc/year/04/04 - 007. - pdf视图:谷歌学术搜索
  38. j . de好灯,美国Meierhans, t·霍弗勒”高性能计算高级综合转换代码,”2018年,http://arxiv.org/abs/1805.08288视图:谷歌学术搜索
  39. Xilinx公司,Vivado设计套件用户指南:设计与IP UG896 (v2017.2)加利福尼亚州圣何塞,Xilinx公司,美国,2017年。
  40. Xilinx公司,Vivado设计套件用户指南:设计分析和关闭技术,UG906 (v2017.2)加利福尼亚州圣何塞,Xilinx公司,美国,2017年。
  41. Xilinx公司,Zynq UltraScale + MPSoC软件开发者指南,UG1137 (v8.0)加利福尼亚州圣何塞,Xilinx公司,美国,2018年。
  42. Xilinx公司,Vivado设计套件用户指南:设计IP子系统使用IP积分器,UG994 (v2017.2)加利福尼亚州圣何塞,Xilinx公司,美国,2017年。
  43. Xilinx公司,处理器控制Vivado HLS设计,应用注意XAPP745 (v1.0)加利福尼亚州圣何塞,Xilinx公司,美国,2012年。
  44. Xilinx公司,Zynq UltraScale + MPSoC数据表:DC和AC开关特点,DS925 (v1.14)加利福尼亚州圣何塞,Xilinx公司,美国,2018年。
  45. m·帕克”理解浮点计算性能峰值声称,“英特尔公司,圣克拉拉,CA,美国,2014年,技术白皮书wp - 012220 - 1.0。视图:谷歌学术搜索
  46. a . Khayyat和n . Manjikian”分析FPGA浮点矩阵乘法的阻塞和调度分析du blocage et de l一个乘法'ordonnancement matricielle斜杠flottante苏尔联合国FPGA”加拿大电气和计算机工程杂志》上,37卷,不。2、65 - 75年,2014页。视图:出版商的网站|谷歌学术搜索
  47. 伯顿DSP s L。,GPU vs FPGA Performance Comparison, Berton White Paper BWP001 v1.0, 2019,http://www.bertendsp.com/pdf/whitepaper/BWP001_GPU_vs_FPGA_Performance_Comparison_v1.0.pdf
  48. j .琮、z方,y郝et al .,“最优FPGA编程:几步还有很长的路要走,”2018年,http://arxiv.org/abs/1807.01340视图:谷歌学术搜索
  49. 已经雕刻。Drevet, m . Nazrul伊斯兰教和E。Schost,”小矩阵乘法优化技术,”理论计算机科学,卷412,不。22日,第2236 - 2219页,2011年。视图:出版商的网站|谷歌学术搜索
  50. m . Ashworth a . Attwood g·d·莱利和j·马维尔,“第一步在移植LFRic天气和气候模型的fpga EuroExa架构”第四国际研讨会上异构高性能可重构计算(H2RC 18)视图:谷歌学术搜索

版权©2019年迈克Ashworth et al。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。


更多相关文章

PDF 下载引用 引用
下载其他格式更多的
订单打印副本订单
的观点1038年
下载575年
引用

相关文章