论文部分内容阅读
设计人员将赛灵思多款FPGA互联,可以开发出新一类超级计算机,并通过定制用于多种应用领域的工作。
在过去的20年里,许多超级计算机架构都同时采用了微处理器和FPGA,由微处理器发挥系统大脑的作用,FPGA则通常负责从CPU处卸载部分计算任务。事实上,对一代又一代超级计算机而言,这种将FPGA与独立的微处理器相搭配的方式被证明是一种成功的组合方案。
但近期,在南联邦大学Kalyaev科研所多处理器计算机系统部(位于俄罗斯Taganrog)工作的科研小组,主要以赛灵思FPGA为基础,设计出了一种可重配置的计算机系统(RCS)。通过将多个FPGA联,就能够开发出专用的计算结构,非常适合用于解决大量应用领域中存在的问题。
基于FPGA的RCS有几项值得注意的设计事项与优势。其核心部分是连接在一起以构成单个计算系统的数个FPGA。在我们的可重配置系统中,我们使用了正交通信系统,将FPGA布置在矩形格点上。相邻的FPGA采用直接链路相互连接。
另外,采用计算机辅助设计工具和结构化编程工具,在FPGA计算域内创建了并行流水线计算机构。这种并行流水线计算结构架构与任务架构相似,而这种相似性可确保RCS的最高性能。
如果由于硬件的限制,不能映射我们力图完成的任务或尝试解决的问题的整个信息图,那么系统将自动把信息图拆分为一系列子图。该系统的计算域将每个子图视为独立的计算结构,并将子图按顺序组织起来并逐个处理。图1显示了该RCS的计算结构流程图及数据输入和输出的程序。您可以看到,每个子图的大小都与一个FPGA域的大小相称。我们针对结构化编程开发的工具则能够自动将问题信息图拆分为数量较少的较大子图,并将其映射给硬件进行有效处理,从而显着提升RCS的性能。
详细地说,就是系统将给定工作或问题的信息图解读成为一系列同构的基本子图,子图之间既可彼此独立,也可相互依存(即具有信息相关性)。该系统将每个信息子图转换为某种特殊的计算结构,称为“cadr”。基本上,一个cadr就是一个硬连接的任务子图,有一个操作数流(operands flow)从其间经过。每一组操作数(或结果)与序列中具体子图的输入(或输出)节点相对应。由专门的并行程序(我们也称“过程”)负责执行cadr序列。整个RCS/U~需要一个并行程序。
我们采用模块化架构设计我们用于高性能计算的RCS。RCS由基本模块构成,基本模块内合计算域片段,并与其他模块和辅助子系统相连。图2显示了南联邦大学多核计算机系统部Kayaev科研所(sRl MCSSFU)设计的几种基本模块。
基本模块中的FPGA通过LVDS信道进行通信,运行频率为1,2GHz。在RCS中的所有模块均通过这些通道通信。每个基本模块还包含有离散的分布式存储单元和用于执行资源管理的基本模块控制器,其功能包括将并行应用的片段加载到分布式存储控制器中以及处理数据输入和输出。
RCS由基本模块构成,基本模块内合计算域片段,并与其他模块和辅助子系统相连。
16V5-75是我们RCS系列的主模块。RCS系统的性能水平可从50 g‘tga flop(使用16个赛思Virtex-5FPGA)到6 teraflop(使用1,280个Virtex-5 FPGA)。高端型号采用5个ST-1 R机架,每个机架安装了4个RCS-0,2-CB的6u模块,每个模块由4个1 6V5—75基本模块组成。每个基本模块的峰值性能可达200gigaflop(对单精度数据而言)。故ST-1 R机架的计算域包含了256个由高速LVDS(图3)连接的Virtex-5FPGA(XC5VLX110)。
同时Orion RCS(图4)具有20 tera flops的性能。它由布置在1 9英寸机架上的1,536个Virtex-5 FPGA构成。该系统的主要部件是性能为250 g‘tga flops的1 6V5-1 250R基本模块。基本模块通过高速LVDS连接到单个计算资源。4个1 6V5-1 250R基本模块可连接成一个1u模块。与1 6V5-75基本模块不同,1 6V5-75基本模块内的1 6个FPGA中,只有4个可以与其它基本模块连接,而1 6V5-1 250R基本模块的所有1 6个FPGA都可通过LVDS扩展计算域。这样就能够为Orion模块中的基本模块间提供较高的数据交换速率。
表1显示了RCS-0,2-CB和Orion模块在解决数字信号处理、线性代数和数学物理等不同任务时的实际性能。
RCS的编程
RCS的编程与传统的基于集群的超级计算机架构编程大相径庭。传统的超级计算机架构采用固定的硬件电路,一般只能由软件工程师在软件层编程。而基于FPGA的RCS则同时拥有可编程的硬件和软件。因此,我们可把RCS的编程工作分为两大类:结构化编程和过程化编程。结构化编程就是把信息图映射到RCS结构的计算域(FPGA编程)。而过程化编程则指的是传统的编程工作,由用户在系统中描述计算过程的组织架构。一般来说,当提及FPGA编程时,软件工程师常常有所畏惧,因为要想胜任此项工作必须具备特定的硬件设计技能。
基于此,我们力图通过开发一个专用软件套件来降低RCS编程的难度。该套件可以让用户在不具备任何FPGA和硬件设计的专业知识的情况下即可完成RCS系统的编程。软件工程师在采用该套件后,解决问题的速度要比通过线路设计、或采用传统方法和工具来解决相同问题的工程师快2到3倍。
该套件系从用于线路设计的Fire!Constructor开发环境发展而来,采用名为COLAMO的高级编程语言和Argus集成开发环境。用户可先在COLAMO中完成程序的开发工作,然后内置的编译器/转译器/合成器利用计算单元和接口的lP库可自动为结构部件和过程部件创建代码。
由基本模块描述、单元描述和整个RCS描述(RCS通行证)组成的库可帮助将并行应用从各种架构平台上导入RCS。COLAMO转译器可将系统描述拆分为4个数据类别:控制、过程、流和结构。
控制数据被转译成Pascal语言,在主控制器中执行。根据RCS硬件平台的不同,主控制器或位于基本模块中,或位于计算块中。控制数据的作用是根据手头的计算任务配置FPGA,对分布式存储器进行编程,以及映像计算块和基本模块之间的数据交换。
同时,过程部件和流组件被转译成Argus汇编语言。它们由分布式存储器控制器负责执行。分布式存储器控制器的作用是规定cadr的执行,以及在cadr计算结构中创建并行数据流。
该套件中最值得一提的特性是名为Fi re!Constructor的综合工具,帮助用户对FPGA进行编程。通过使用lP库,Fire!Constructor可为RCS中的每一个FPGA生成一个VHDL描述(*.vhd文件)。赛灵思ISE套件使用这些文件可为所有的FPGA创建配置文件(*.bit)。
有效解决问题
在“结构一过程”计算方法的帮助下,我们能够在RCS上有效地解决各种问题。最适宜解决的是那种算法曲线参数为常数,输入的数据变化的问题。举例来说,药物设计、数字信号处理、数学仿真等类似问题特别适用于RCS解决方案。
一家名为超级计算机及神经计算机科研中心(俄罗斯Taganrog)的分立公司负责交付这些可重配置系统,每套RCS都按照预订的规格制造。该公司每月可制造大约1 00套。我们的RCS的性能,根据采用Virtex-5和Virtex-6FPGA的情况,范围可从100Gflops到10Tflops不等。
总而言之,采用FPGA的可重配置计算机系统在解决各类问题方面具有得天独厚的优势。采用RCS后,用户可定制计算,迅速解决问题。
如欲了解有关Rcs的更多信息,敬请访问http://paral le.ru/index_eng.html。
在过去的20年里,许多超级计算机架构都同时采用了微处理器和FPGA,由微处理器发挥系统大脑的作用,FPGA则通常负责从CPU处卸载部分计算任务。事实上,对一代又一代超级计算机而言,这种将FPGA与独立的微处理器相搭配的方式被证明是一种成功的组合方案。
但近期,在南联邦大学Kalyaev科研所多处理器计算机系统部(位于俄罗斯Taganrog)工作的科研小组,主要以赛灵思FPGA为基础,设计出了一种可重配置的计算机系统(RCS)。通过将多个FPGA联,就能够开发出专用的计算结构,非常适合用于解决大量应用领域中存在的问题。
基于FPGA的RCS有几项值得注意的设计事项与优势。其核心部分是连接在一起以构成单个计算系统的数个FPGA。在我们的可重配置系统中,我们使用了正交通信系统,将FPGA布置在矩形格点上。相邻的FPGA采用直接链路相互连接。
另外,采用计算机辅助设计工具和结构化编程工具,在FPGA计算域内创建了并行流水线计算机构。这种并行流水线计算结构架构与任务架构相似,而这种相似性可确保RCS的最高性能。
如果由于硬件的限制,不能映射我们力图完成的任务或尝试解决的问题的整个信息图,那么系统将自动把信息图拆分为一系列子图。该系统的计算域将每个子图视为独立的计算结构,并将子图按顺序组织起来并逐个处理。图1显示了该RCS的计算结构流程图及数据输入和输出的程序。您可以看到,每个子图的大小都与一个FPGA域的大小相称。我们针对结构化编程开发的工具则能够自动将问题信息图拆分为数量较少的较大子图,并将其映射给硬件进行有效处理,从而显着提升RCS的性能。
详细地说,就是系统将给定工作或问题的信息图解读成为一系列同构的基本子图,子图之间既可彼此独立,也可相互依存(即具有信息相关性)。该系统将每个信息子图转换为某种特殊的计算结构,称为“cadr”。基本上,一个cadr就是一个硬连接的任务子图,有一个操作数流(operands flow)从其间经过。每一组操作数(或结果)与序列中具体子图的输入(或输出)节点相对应。由专门的并行程序(我们也称“过程”)负责执行cadr序列。整个RCS/U~需要一个并行程序。
我们采用模块化架构设计我们用于高性能计算的RCS。RCS由基本模块构成,基本模块内合计算域片段,并与其他模块和辅助子系统相连。图2显示了南联邦大学多核计算机系统部Kayaev科研所(sRl MCSSFU)设计的几种基本模块。
基本模块中的FPGA通过LVDS信道进行通信,运行频率为1,2GHz。在RCS中的所有模块均通过这些通道通信。每个基本模块还包含有离散的分布式存储单元和用于执行资源管理的基本模块控制器,其功能包括将并行应用的片段加载到分布式存储控制器中以及处理数据输入和输出。
RCS由基本模块构成,基本模块内合计算域片段,并与其他模块和辅助子系统相连。
16V5-75是我们RCS系列的主模块。RCS系统的性能水平可从50 g‘tga flop(使用16个赛思Virtex-5FPGA)到6 teraflop(使用1,280个Virtex-5 FPGA)。高端型号采用5个ST-1 R机架,每个机架安装了4个RCS-0,2-CB的6u模块,每个模块由4个1 6V5—75基本模块组成。每个基本模块的峰值性能可达200gigaflop(对单精度数据而言)。故ST-1 R机架的计算域包含了256个由高速LVDS(图3)连接的Virtex-5FPGA(XC5VLX110)。
同时Orion RCS(图4)具有20 tera flops的性能。它由布置在1 9英寸机架上的1,536个Virtex-5 FPGA构成。该系统的主要部件是性能为250 g‘tga flops的1 6V5-1 250R基本模块。基本模块通过高速LVDS连接到单个计算资源。4个1 6V5-1 250R基本模块可连接成一个1u模块。与1 6V5-75基本模块不同,1 6V5-75基本模块内的1 6个FPGA中,只有4个可以与其它基本模块连接,而1 6V5-1 250R基本模块的所有1 6个FPGA都可通过LVDS扩展计算域。这样就能够为Orion模块中的基本模块间提供较高的数据交换速率。
表1显示了RCS-0,2-CB和Orion模块在解决数字信号处理、线性代数和数学物理等不同任务时的实际性能。
RCS的编程
RCS的编程与传统的基于集群的超级计算机架构编程大相径庭。传统的超级计算机架构采用固定的硬件电路,一般只能由软件工程师在软件层编程。而基于FPGA的RCS则同时拥有可编程的硬件和软件。因此,我们可把RCS的编程工作分为两大类:结构化编程和过程化编程。结构化编程就是把信息图映射到RCS结构的计算域(FPGA编程)。而过程化编程则指的是传统的编程工作,由用户在系统中描述计算过程的组织架构。一般来说,当提及FPGA编程时,软件工程师常常有所畏惧,因为要想胜任此项工作必须具备特定的硬件设计技能。
基于此,我们力图通过开发一个专用软件套件来降低RCS编程的难度。该套件可以让用户在不具备任何FPGA和硬件设计的专业知识的情况下即可完成RCS系统的编程。软件工程师在采用该套件后,解决问题的速度要比通过线路设计、或采用传统方法和工具来解决相同问题的工程师快2到3倍。
该套件系从用于线路设计的Fire!Constructor开发环境发展而来,采用名为COLAMO的高级编程语言和Argus集成开发环境。用户可先在COLAMO中完成程序的开发工作,然后内置的编译器/转译器/合成器利用计算单元和接口的lP库可自动为结构部件和过程部件创建代码。
由基本模块描述、单元描述和整个RCS描述(RCS通行证)组成的库可帮助将并行应用从各种架构平台上导入RCS。COLAMO转译器可将系统描述拆分为4个数据类别:控制、过程、流和结构。
控制数据被转译成Pascal语言,在主控制器中执行。根据RCS硬件平台的不同,主控制器或位于基本模块中,或位于计算块中。控制数据的作用是根据手头的计算任务配置FPGA,对分布式存储器进行编程,以及映像计算块和基本模块之间的数据交换。
同时,过程部件和流组件被转译成Argus汇编语言。它们由分布式存储器控制器负责执行。分布式存储器控制器的作用是规定cadr的执行,以及在cadr计算结构中创建并行数据流。
该套件中最值得一提的特性是名为Fi re!Constructor的综合工具,帮助用户对FPGA进行编程。通过使用lP库,Fire!Constructor可为RCS中的每一个FPGA生成一个VHDL描述(*.vhd文件)。赛灵思ISE套件使用这些文件可为所有的FPGA创建配置文件(*.bit)。
有效解决问题
在“结构一过程”计算方法的帮助下,我们能够在RCS上有效地解决各种问题。最适宜解决的是那种算法曲线参数为常数,输入的数据变化的问题。举例来说,药物设计、数字信号处理、数学仿真等类似问题特别适用于RCS解决方案。
一家名为超级计算机及神经计算机科研中心(俄罗斯Taganrog)的分立公司负责交付这些可重配置系统,每套RCS都按照预订的规格制造。该公司每月可制造大约1 00套。我们的RCS的性能,根据采用Virtex-5和Virtex-6FPGA的情况,范围可从100Gflops到10Tflops不等。
总而言之,采用FPGA的可重配置计算机系统在解决各类问题方面具有得天独厚的优势。采用RCS后,用户可定制计算,迅速解决问题。
如欲了解有关Rcs的更多信息,敬请访问http://paral le.ru/index_eng.html。