CN115291949A - 一种面向计算流体力学的加速计算装置和加速计算方法 - Google Patents

一种面向计算流体力学的加速计算装置和加速计算方法 Download PDF

Info

Publication number
CN115291949A
CN115291949A CN202211171216.5A CN202211171216A CN115291949A CN 115291949 A CN115291949 A CN 115291949A CN 202211171216 A CN202211171216 A CN 202211171216A CN 115291949 A CN115291949 A CN 115291949A
Authority
CN
China
Prior art keywords
instruction
differential operation
register
instructions
differential
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211171216.5A
Other languages
English (en)
Other versions
CN115291949B (zh
Inventor
龚艳琼
刘必慰
赵玉新
黄东昌
郭阳
江豪龙
赖雯
王洁
杨益斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202211171216.5A priority Critical patent/CN115291949B/zh
Publication of CN115291949A publication Critical patent/CN115291949A/zh
Application granted granted Critical
Publication of CN115291949B publication Critical patent/CN115291949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/28Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/08Fluids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces

Abstract

本申请涉及计算流体力学和计算机技术领域的一种面向计算流体力学的加速计算装置和加速计算方法。所述加速计算装置包括:若干个专用的差分运算单元,用于执行根据待解决的流体力学问题采用指令集设计的程序,完成流场中节点差分运算;差分运算单元包括多个传输通道,传输通道用于将所有差分运算单元组合在一起,并行完成流场中所有节点差分运算。该装置硬件结构简单,差分运算单元间设置数据传输通道进行差分计算,减少了数据通过全局存储器传输带来的大量延时,同时去除数据存储器很大程度上减少计算资源的使用,还具有灵活可编程的优点。

Description

一种面向计算流体力学的加速计算装置和加速计算方法
技术领域
本申请涉及计算流体力学和计算机技术领域,特别是涉及一种面向计算流体力学的加速计算装置和加速计算方法。
背景技术
计算流体力学(Computational Fluid Dynamics,简称CFD)主要利用计算机求解流体力学的基本控制方程,可以相对容易且准确仿真出复杂流场的流动特性。在运用CFD进行数值计算分析仿真的离散化方法中,有限差分法是数值解法中的典型方法,通过对时间和空间差分格式的组合,可以组合成不同的差分计算格式。但当前CFD要求的几何外形、数值方法、物理化学模型等日益复杂和精细,对大规模计算提出了极高要求。而且对于真实流动的准确模拟,计算量十分巨大,特别是对于全尺寸模型的精确数值模拟,目前的计算能力依然无法做到。
为了加速CFD计算,各国学者开展了众多研究,有效推动了CFD的发展。但由于计算机的计算能力有限,基于通用计算硬件上实现CFD高性能仍然面临着严峻挑战。
发明内容
基于此,有必要针对上述技术问题,提供一种硬件结构简单、计算能效高、灵活可编程的一种面向计算流体力学的加速计算装置和加速计算方法。
一种面向计算流体力学的加速计算装置,所述加速计算装置包括:若干个专用的差分运算单元,用于执行根据待解决的流体力学问题采用指令集设计的程序,完成流场中节点差分运算。
所述差分运算单元包括多个传输通道,所述传输通道用于将相邻的所述差分运算单元组合在一起,并行完成流场中所有节点差分运算。
进一步的,所述差分运算单元还包括:
指令控制器,用于控制所需执行指令的地址。
指令存储器,用于存储所需执行的指令。
多个通用寄存器,用于存放寄存器数据。
算术逻辑运算单元,用于对操作数进行逻辑运算。
进一步的,所述指令控制器包括:一个自加一的加法器和一个二选一的多路选择器。
进一步的,所述差分运算单元执行一条指令包含取址、译码、执行和写回四个时钟周期。
在取址阶段,根据指令控制器的值从指令存储器中读取一条指令,并送入指令寄存器;
在译码阶段,对送入指令寄存器的指令进行译码,根据操作码从指令中提取对应的操作数,并将提取的两个操作数放入两个临时寄存器中。
在执行阶段,根据操作码在算术逻辑运算单元中对两个临时寄存器及进行运算,将运算结果存入第三个临时寄存器,根据指令功能和运算结果设置标志寄存器的值;所述标志寄存器的值用于指令控制器判断下一条指令是顺序执行还是跳转执行。
在写回阶段,根据操作码以及所述运算结果进行判断是否需要修改寄存器的值,如果需要修改,则将第三个临时寄存器的值存入通用寄存器对应位置。
进一步的,所述差分运算单元包括的传输通道的数量为4个,所述传输通道是通过在所述差分运算单元中配置通讯寄存器得到的。
所述四个所述通讯寄存器位于所述差分运算单元的四个边缘;四个所述通讯寄存器与同一个内部通用寄存器相连;相邻所述差分运算单元通过离它最近的所述通讯寄存器进入传输通道进行数据通信。
进一步的,所述差分运算单元中通用寄存器的数量为60个,通用寄存器的宽度均为64bit。
进一步的,所述差分运算单元采用的指令集是根据计算流体力学算法的特性设置的。
所述差分运算单元采用的指令集为16位RISC指令集编码格式,其中指令为三地址格式,操作码长度为4bit,有两个长度均为6bit的操作数。
进一步的,所述指令集根据操作数的不同分为三种类型,包括:寄存器类型、立即数类型、和混合类型。
进一步的,根据指令的功能对所述指令集进行分类,所述指令集包括:控制类指令、运算类指令以及数据搬移类指令。
其中:所述控制类指令包括:空指令、停止指令、分支跳转指令;所述运算类指令包括:定点立即数相加指令、定点立即数相减指令、定点比较指令、立即数跳转指令、浮点寄存器相加指令、浮点寄存器相减指令、浮点寄存器相乘指令;所述数据搬移类指令包括:移动指令。
一种面向计算流体力学的加速计算方法,所述方法用于采用上述的加速计算装置实现面向计算流体力学的加速计算;所述方法包括:
根据待求解的流体方程采用有限差分法在时间和空间上进行展开,得到迭代计算公式。
根据所述迭代计算公式确定所需差分运算单元的数量和传输通道,在时间上进行迭代确定程序循环次数。
将所有差分运算单元通过所述传输通道组合在一起,设置初始化数据存入差分运算单元的通用寄存器。
根据所述迭代计算公式和所述程序循环次数设置指令内存中的指令及执行顺序,得到计算程序;指令内存中的指令用于实现不同的差分计算格式。
运行所述计算程序,输出流场中所有节点在不同时刻的差分运算结果。
上述面向计算流体力学的加速计算装置和加速计算方法中,所述加速计算装置包括:若干个专用的差分运算单元,用于执行根据待解决的流体力学问题采用指令集设计的程序,完成流场中节点差分运算;差分运算单元包括多个传输通道,传输通道用于将所有差分运算单元组合在一起,并行完成流场中所有节点差分运算。该装置硬件结构简单,差分运算单元间设置传输通道进行差分计算,减少了数据通过全局存储器传输带来的大量延时,同时去除数据存储器很大程度上减少计算资源的使用,还具有灵活可编程的优点。
附图说明
图1为一个实施例中面向计算流体力学的加速计算装置的结构示意图;
图2为一个实施例中面向计算流体力学的运算单元结构图;
图3为一个实施例中面向计算流体力学的传输通道示意图;
图4为另一个实施例中面向计算流体力学的加速计算方法的流程示意图;
图5为一个实施例中面向计算流体力学求解二维线性对流方程的加速计算装置结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种面向计算流体力学的加速计算装置,该加速计算装置包括:若干个专用的差分运算单元,用于执行根据待解决的流体力学问题采用指令集设计的程序,完成流场中节点差分运算。其中,差分运算单元(DPE)是根据计算流体力学广泛使用的有限差分法的计算特点设计的,差分运算单元的数量是根据要解决的流体力学问题的流体力学方程在空间上展开的情况确定的。
差分运算单元包括多个传输通道,传输通道用于将相邻的差分运算单元组合在一起,并行完成流场中所有节点差分运算。可以通过传输通道将众多的专用运算单元组合在一起,根据计算流体力学算法特性改变组合的差分运算单元阵列大小,同时改变指令内存器中的指令即可实现不同的差分计算格式,具有灵活可编程的优点。
指令集是根据计算流体力学利用有限差分法进行计算的特性设计的,该指令集是能够完成差分运算的最小集。其指令集为16位RISC指令集编码格式,指令内存为128×16bit,即所有指令编码均为16位等长。
上述面向计算流体力学的加速计算装置中,所述加速计算装置包括:若干个专用的差分运算单元,用于执行根据待解决的流体力学问题采用指令集设计的程序,完成流场中节点差分运算;差分运算单元包括多个传输通道,传输通道用于将所有差分运算单元组合在一起,并行完成流场中所有节点差分运算。该装置硬件结构简单,差分运算单元间设置传输通道进行差分计算,减少了数据通过全局存储器传输带来的大量延时,同时去除数据存储器很大程度上减少计算资源的使用,还具有灵活可编程的优点。
进一步的,差分运算单元还包括:指令控制器,用于控制所需执行指令的地址;指令存储器,用于存储所需执行的指令;多个通用寄存器(gerneral register,简写:gr),用于存放寄存器数据;算术逻辑运算单元,用于对操作数进行逻辑运算。
硬件结构简单,在硬件结构上取消了数据存储器,每个DPE只包含指令控制器、指令存储器、通用寄存器和算术逻辑运算单元四个部分。
进一步的,指令控制器包括:一个自加一的加法器和一个二选一的多路选择器。
进一步的,差分运算单元执行一条指令包含取址、译码、执行和写回四个时钟周期;在取址阶段,根据指令控制器的值从指令存储器中读取一条指令,并送入指令寄存器;在译码阶段,对送入指令寄存器的指令进行译码,根据操作码从指令中提取对应的操作数,并将提取的两个操作数放入两个临时寄存器中;在执行阶段,根据操作码在算术逻辑运算单元中对两个临时寄存器及进行运算,将运算结果存入第三个临时寄存器,根据指令功能和运算结果设置标志寄存器的值;标志寄存器的值用于指令控制器判断下一条指令是顺序执行还是跳转执行;在写回阶段,根据操作码以及运算结果进行判断是否需要修改寄存器的值,如果需要修改,则将第三个临时寄存器的值存入通用寄存器对应位置。
在一个具体的实施例中,如图2所示,面向计算流体力学的差分运算单元DPE包含指令控制器、指令存储器、通用寄存器和算术逻辑运算单元四个部分,其中指令控制器用于控制所需执行指令的地址,包含一个自加一的加法器和一个二选一的多路选择器,指令存储器用于存储所需执行的指令,通用寄存器用于存放寄存器数据,位宽32bit,深度为60,算数逻辑运算单元用于对操作数进行逻辑运算,一条指令的执行包含取址IF、译码ID、执行EX和写回WB四个时钟周期,具体过程如下:
1)取址(IF):
取址阶段根据PC值从指令内存中读取一条指令,并送入指令寄存器(ID_ir),同时设置下一周期PC的值,指令可以顺序执行,也可以跳转到某个特定的地址执行。
2)译码(ID):
译码阶段进行指令译码,根据指令功能(即操作码)从指令中提取对应的操作数,并将提取的操作数放入寄存器A(reg_A)和寄存器B(reg_B)中。
3)执行(EX):
EX阶段根据指令功能在算术逻辑运算单元ALU中对reg_A和reg_B进行运算,将运算结果存入寄存器C(reg_C)中,根据指令功能和运算结果设置标志寄存器flag的值为0还是为1,用于指令控制器判断下一条指令是顺序执行还是跳转执行,即下一时钟周期PC的值是自加一还是reg_C中的值。
4)写回(WB):
WB阶段根据指令的功能以及EX阶段的结果决定是否要修改寄存器的值以及如何修改,如果需要修改,则将reg_C的值存入通用寄存器对应位置。此阶段只对需要修改寄存器值的指令有效。
进一步的,差分运算单元包括的传输通道的数量为4个,传输通道是通过在差分运算单元中配置通讯寄存器得到的;四个通讯寄存器位于差分运算单元的四个边缘;四个通讯寄存器与同一个内部通用寄存器相连;相邻差分运算单元通过离它最近的通讯寄存器进入传输通道进行数据通信。
具体的,如图3所示。专用的差分运算单元(DPE)配置四个通讯寄存器(Communication register,简写:cr)并位于DPE的四个边缘,形成四个传输通道,四个通讯寄存器(cr0-cr4)与内部通用寄存器55(gr55)相连,gr58用于存放DPE需要进行差分运算的数值,相邻DPE通过离它最近的通讯寄存器进入传输通道进行数据通信,通讯寄存器的位宽为32bit。为每个DPE添加四个输入端口与内部的通用寄存器56- 59(gr56-gr59)相连,添加四个输出端口分别连接四个通讯寄存寄存器,以DPE_X_Y为例,其中_X_Y代表该DPE所处的位置,DPE_X_Y通过添加的输入输出端口与相邻的四个DPE对应连接,获取邻近点的数据,同时将数据传给邻近点。
进一步的,差分运算单元中通用寄存器的数量为60个,通用寄存器的宽度均为64bit。
进一步的,差分运算单元采用的指令集是根据计算流体力学算法的特性设置的;差分运算单元采用的指令集为16位RISC指令集编码格式,其中指令为三地址格式,操作码长度为4bit,有两个长度均为6bit的操作数。
进一步的,指令集根据操作数的不同分为三种类型,包括:寄存器类型(R type)、立即数类型(I type),和混合类型(RI type)。面向计算流体力学的指令集编码格式如表1所示。
表1面向计算流体力学的指令集编码格式
Figure 958208DEST_PATH_IMAGE001
进一步的,根据指令的功能对指令集进行分类,指令集包括:控制类指令、运算类指令以及数据搬移类指令;其中:控制类指令包括:空指令、停止指令、分支跳转指令;运算类指令包括:定点立即数相加指令、定点立即数相减指令、定点比较指令、立即数跳转指令、浮点寄存器相加指令、浮点寄存器相减指令、浮点寄存器相乘指令;数据搬移类指令包括:移动指令。
具体的,针对计算流体力学算法特性设置并实现了3大类14条机器指令。其中,控制类指令:空指令(NOP)、停止指令(HALT)、分支跳转指令(BZ、BNZ、BN、BNN);运算类指令:定点立即数相加指令(ADDI)、定点立即数相减指令(SUBI)、定点比较指令(CMP)、立即数跳转指令(JUMPI)、浮点寄存器相加指令(ADDF)、浮点寄存器相减指令(SUBF)、浮点寄存器相乘指令(MULF);数据搬移类指令:移动指令(MOV)。面向计算流体力学的指令集具体格式与操作如表2所示。
表2 面向计算流体力学的指令集具体格式与操作一览表
Figure 536824DEST_PATH_IMAGE002
在一个实施例中,如图4所示,提供了一种面向计算流体力学的加速计算方法,所述方法用于采用上述任一加速计算装置实现面向计算流体力学的加速计算;方法包括:
步骤400:根据待求解的流体方程采用有限差分法在时间和空间上进行展开,得到迭代计算公式。
步骤402:根据迭代计算公式确定所需差分运算单元的数量和传输通道,在时间上进行迭代确定程序循环次数。
步骤404:将所有差分运算单元通过传输通道组合在一起,设置初始化数据存入差分运算单元的通用寄存器。
步骤406:根据迭代计算公式和程序循环次数设置指令内存中的指令及执行顺序,得到计算程序;指令内存中的指令用于实现不同的差分计算格式。
步骤408:运行计算程序,输出流场中所有节点在不同时刻的差分运算结果。
在一个集体的实施例中,首先根据计算流体力学广泛使用的有限差分法的计算特点首先设计专用的差分运算单元(DPE)和指令集;其次,为运算单元设置传输通道(Chanel),使相邻的差分运算单元间可以传输数据,进行差分运算;最后,通过传输通将众多的差分运算单元组合在一起,并行完成流场中所有节点差分运算。如图5所示,以二维线性对流方程为例,具体过程为:
(1)根据二维线性对流方程特性,将二维线性对流方程在空间上进行展开确定所需DPE单元个数和传输通道,在时间上进行迭代确定程序循环次数。
二维线性对流方程的表达式为:
Figure 503643DEST_PATH_IMAGE003
通过有限差分法,其中在时间上前向差分,在空间上后向差分,变形后得到
Figure 212973DEST_PATH_IMAGE004
的速度计算公式:
Figure 84983DEST_PATH_IMAGE005
其中,
Figure 701910DEST_PATH_IMAGE006
表示当前流场速度,
Figure 523235DEST_PATH_IMAGE007
为下一时刻的流场速度,
Figure 685357DEST_PATH_IMAGE008
为时间,
Figure 592133DEST_PATH_IMAGE009
为二维空间坐标,
Figure 481592DEST_PATH_IMAGE010
Figure 423003DEST_PATH_IMAGE011
Figure 254562DEST_PATH_IMAGE012
为离散化的步长,为已知常数,设置初始时刻的流场速度为:
Figure 648634DEST_PATH_IMAGE013
,边界条件为:
Figure 341784DEST_PATH_IMAGE014
,由此便可迭代计算出之后任意时刻的流场速度。
设置
Figure 606543DEST_PATH_IMAGE015
,使用6400个(80行×80列)DPE用于计算某一时刻在二维空间中所有离散点的速度,共计迭代100次。
(2)将6400个((0-79)行×(0-79)列)运算单元(DPE)通过传输通道组合在一起,设置初始化数据存入通用寄存器,具体如下:
6400个((0-79)行×(0-79)列)运算单元(DPE)通过传输通道组合在一起后,将初始时刻的流场速度存于gr1中,设置第19行19列到第39行39列DPE中gr1的值为2(转为32为二进制单精度浮点数为32'b0_10000000_00000000000000000000000,下同),其余DPE中gr1的值为1(32'b0_01111111_00000000000000000000000),所有DPE的gr2中存放流场速度为
Figure 107538DEST_PATH_IMAGE016
Figure 988906DEST_PATH_IMAGE017
),所有DPE的gr3存放迭代次数为32’d100(次数不需要进行浮点运算)。此外,将第0行的所有列、第79行的所有列、第0列的所有行、第79列的所有行的gr56和gr57两个寄存器约束为1(32'b0_01111111_00000000000000000000000),因为二维线性对流方程的差分特性只用到了上一级的数据,所以这里只用到了cr2和cr3两个通讯寄存器,cr0和cr1不使用。
(3)设置指令内存器的指令,指令内存中的指令设置的伪代码如表3所示。
表3:指令内存中的指令设置的伪代码
Figure 485747DEST_PATH_IMAGE018
(4)运行程序,输出结果:输出流场中所有节点在不同时刻的差分运算结果。
综上,本发明的面向计算流体力学的加速计算装置及方法具有硬件结构简单、计算能效高、灵活可编程等优点,可对计算流体力学进行加速。以完成二维线性对流方程为例,组合了6400个DPE运算单元,程序长度为22条指令(循环长度为19条),运行时间为1908个时钟周期,每个DPE使用了11个通用寄存器和2个通讯寄存器。针对CFD算法特性,改变组合的DPE阵列大小,同时改变指令内存器中的指令即可实现不同的差分计算格式,灵活可编程。
应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种面向计算流体力学的加速计算装置,其特征在于,所述加速计算装置包括:若干个专用的差分运算单元,用于执行根据待解决的流体力学问题采用指令集设计的程序,完成流场中节点差分运算;
所述差分运算单元包括多个传输通道,所述传输通道用于将相邻的所述差分运算单元组合在一起,并行完成流场中所有节点差分运算。
2.根据权利要求1所述的加速计算装置,其特征在于,所述差分运算单元还包括:
指令控制器,用于控制所需执行指令的地址;
指令存储器,用于存储所需执行的指令;
多个通用寄存器,用于存放寄存器数据;
算术逻辑运算单元,用于对操作数进行逻辑运算。
3.根据权利要求2所述的加速计算装置,其特征在于,所述指令控制器包括:一个自加一的加法器和一个二选一的多路选择器。
4.根据权利要求2所述的加速计算装置,其特征在于,所述差分运算单元执行一条指令包含取址、译码、执行和写回四个时钟周期;
在取址阶段,根据指令控制器的值从指令存储器中读取一条指令,并送入指令寄存器;
在译码阶段,对送入指令寄存器的指令进行译码,根据操作码从指令中提取对应的操作数,并将提取的两个操作数放入两个临时寄存器中;
在执行阶段,根据操作码在算术逻辑运算单元中对两个临时寄存器及进行运算,将运算结果存入第三个临时寄存器,根据指令功能和运算结果设置标志寄存器的值;所述标志寄存器的值用于指令控制器判断下一条指令是顺序执行还是跳转执行;
在写回阶段,根据操作码以及所述运算结果进行判断是否需要修改通用寄存器的值,如果需要修改,则将第三个临时寄存器的值存入通用寄存器对应位置。
5.根据权利要求2所述的加速计算装置,其特征在于,所述差分运算单元包括的传输通道的数量为4个,所述传输通道是通过在所述差分运算单元中配置通讯寄存器得到的;
四个所述通讯寄存器位于所述差分运算单元的四个边缘;四个所述通讯寄存器与同一个内部通用寄存器相连;相邻所述差分运算单元通过离它最近的所述通讯寄存器进入传输通道进行数据通信。
6.根据权利要求2所述的加速计算装置,其特征在于,所述差分运算单元中通用寄存器的数量为60个,通用寄存器的宽度均为64bit。
7.根据权利要求1所述的加速计算装置,其特征在于,所述差分运算单元采用的指令集是根据计算流体力学算法的特性设置的;
所述差分运算单元采用的指令集为16位RISC指令集编码格式,其中指令为三地址格式,操作码长度为4bit,有两个长度均为6bit的操作数。
8.根据权利要求7所述的加速计算装置,其特征在于,所述指令集根据操作数的不同分为三种类型,包括:寄存器类型、立即数类型和混合类型。
9.根据权利要求7所述的加速计算装置,其特征在于,根据指令的功能对所述指令集进行分类,所述指令集包括:控制类指令、运算类指令以及数据搬移类指令;
其中:所述控制类指令包括:空指令、停止指令、分支跳转指令;所述运算类指令包括:定点立即数相加指令、定点立即数相减指令、定点比较指令、立即数跳转指令、浮点寄存器相加指令、浮点寄存器相减指令、浮点寄存器相乘指令;所述数据搬移类指令包括:移动指令。
10.一种面向计算流体力学的加速计算方法,其特征在于,所述方法用于采用权利要求1-9任一项所述的加速计算装置实现面向计算流体力学的加速计算;所述方法包括:
根据待求解的流体方程采用有限差分法在时间和空间上进行展开,得到迭代计算公式;
根据所述迭代计算公式确定所需差分运算单元的数量和传输通道,在时间上进行迭代确定程序循环次数;
将所有差分运算单元通过所述传输通道组合在一起,设置初始化数据存入差分运算单元的通用寄存器;
根据所述迭代计算公式和所述程序循环次数设置指令内存中的指令及执行顺序,得到计算程序;指令内存中的指令用于实现不同的差分计算格式;
运行所述计算程序,输出流场中所有节点在不同时刻的差分运算结果。
CN202211171216.5A 2022-09-26 2022-09-26 一种面向计算流体力学的加速计算装置和加速计算方法 Active CN115291949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211171216.5A CN115291949B (zh) 2022-09-26 2022-09-26 一种面向计算流体力学的加速计算装置和加速计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211171216.5A CN115291949B (zh) 2022-09-26 2022-09-26 一种面向计算流体力学的加速计算装置和加速计算方法

Publications (2)

Publication Number Publication Date
CN115291949A true CN115291949A (zh) 2022-11-04
CN115291949B CN115291949B (zh) 2022-12-20

Family

ID=83833618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211171216.5A Active CN115291949B (zh) 2022-09-26 2022-09-26 一种面向计算流体力学的加速计算装置和加速计算方法

Country Status (1)

Country Link
CN (1) CN115291949B (zh)

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001038832A2 (en) * 1999-11-24 2001-05-31 S.C. Ack S.R.L. System for metering fluids
US20030212712A1 (en) * 2002-05-13 2003-11-13 Jinsheng Gu Byte-level file differencing and updating algorithms
CN1787376A (zh) * 2004-12-07 2006-06-14 奥特拉股份有限公司 适用于以差分输入电路方式实现硬连线译码器的技术
CN102842222A (zh) * 2012-08-30 2012-12-26 西北工业大学 基于Phillips宏观交通流模型的FPGA在线预测控制方法
CN102930730A (zh) * 2012-11-19 2013-02-13 西安费斯达自动化工程有限公司 基于FPGA及改进Phillips模型的在线交通瓶颈预测控制方法
US20140200833A1 (en) * 2011-09-21 2014-07-17 Fujitsu Limited Object motion analysis apparatus, object motion analysis method, and storage medium
CN104639310A (zh) * 2014-12-31 2015-05-20 东华大学 一种检测sha-1算法抵御差分故障攻击的方法
CN105264779A (zh) * 2013-01-22 2016-01-20 阿尔特拉公司 使用simd指令的数据压缩和解压
JP2018136255A (ja) * 2017-02-23 2018-08-30 セイコーエプソン株式会社 物理量センサー、電子機器及び移動体
CN111797045A (zh) * 2016-12-21 2020-10-20 艾尔默斯半导体股份公司 用于初始化差分双线数据总线的方法及传送数据的方法
US20200362839A1 (en) * 2019-05-15 2020-11-19 Leistritz Pumpen Gmbh Method for determining a flow volume of a fluid delivered by a pump
CN112098273A (zh) * 2020-08-14 2020-12-18 山东大学 一种基于近场动力学的渗透注浆过程模拟方法及***
CN112099762A (zh) * 2020-09-10 2020-12-18 上海交通大学 快速实现sm2密码算法的协处理***及方法
CN112818494A (zh) * 2021-02-10 2021-05-18 西北工业大学 基于微分求积法的功能梯度输流管模态及响应分析方法
CN112842312A (zh) * 2021-02-01 2021-05-28 上海交通大学 心率传感器及其自适应心跳锁环***和方法
WO2021245101A1 (en) * 2020-06-05 2021-12-09 Politecnico Di Milano A computing platform for preventing side channel attacks
CN113935258A (zh) * 2021-10-15 2022-01-14 北京百度网讯科技有限公司 计算流体动力学加速方法、装置、设备以及存储介质
WO2022046761A1 (en) * 2020-08-26 2022-03-03 Tpe Midstream Llc Configurable fluid compression apparatus, control, and associated methods
CN115049529A (zh) * 2021-03-08 2022-09-13 上海联影医疗科技股份有限公司 一种图像梯度确定方法、装置、设备及存储介质

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001038832A2 (en) * 1999-11-24 2001-05-31 S.C. Ack S.R.L. System for metering fluids
US20030212712A1 (en) * 2002-05-13 2003-11-13 Jinsheng Gu Byte-level file differencing and updating algorithms
CN1787376A (zh) * 2004-12-07 2006-06-14 奥特拉股份有限公司 适用于以差分输入电路方式实现硬连线译码器的技术
US20140200833A1 (en) * 2011-09-21 2014-07-17 Fujitsu Limited Object motion analysis apparatus, object motion analysis method, and storage medium
CN102842222A (zh) * 2012-08-30 2012-12-26 西北工业大学 基于Phillips宏观交通流模型的FPGA在线预测控制方法
CN102930730A (zh) * 2012-11-19 2013-02-13 西安费斯达自动化工程有限公司 基于FPGA及改进Phillips模型的在线交通瓶颈预测控制方法
CN105264779A (zh) * 2013-01-22 2016-01-20 阿尔特拉公司 使用simd指令的数据压缩和解压
CN104639310A (zh) * 2014-12-31 2015-05-20 东华大学 一种检测sha-1算法抵御差分故障攻击的方法
CN111797045A (zh) * 2016-12-21 2020-10-20 艾尔默斯半导体股份公司 用于初始化差分双线数据总线的方法及传送数据的方法
JP2018136255A (ja) * 2017-02-23 2018-08-30 セイコーエプソン株式会社 物理量センサー、電子機器及び移動体
US20200362839A1 (en) * 2019-05-15 2020-11-19 Leistritz Pumpen Gmbh Method for determining a flow volume of a fluid delivered by a pump
WO2021245101A1 (en) * 2020-06-05 2021-12-09 Politecnico Di Milano A computing platform for preventing side channel attacks
CN112098273A (zh) * 2020-08-14 2020-12-18 山东大学 一种基于近场动力学的渗透注浆过程模拟方法及***
WO2022046761A1 (en) * 2020-08-26 2022-03-03 Tpe Midstream Llc Configurable fluid compression apparatus, control, and associated methods
CN112099762A (zh) * 2020-09-10 2020-12-18 上海交通大学 快速实现sm2密码算法的协处理***及方法
CN112842312A (zh) * 2021-02-01 2021-05-28 上海交通大学 心率传感器及其自适应心跳锁环***和方法
CN112818494A (zh) * 2021-02-10 2021-05-18 西北工业大学 基于微分求积法的功能梯度输流管模态及响应分析方法
CN115049529A (zh) * 2021-03-08 2022-09-13 上海联影医疗科技股份有限公司 一种图像梯度确定方法、装置、设备及存储介质
CN113935258A (zh) * 2021-10-15 2022-01-14 北京百度网讯科技有限公司 计算流体动力学加速方法、装置、设备以及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘胜等: "一种自主设计的面向E级高性能计算的异构融合加速器", 《计算机研究与发展》 *
陶小涵等: "基于SW26010处理器的FT程序的性能优化", 《计算机科学》 *

Also Published As

Publication number Publication date
CN115291949B (zh) 2022-12-20

Similar Documents

Publication Publication Date Title
Wong et al. ρ-VEX: A reconfigurable and extensible softcore VLIW processor
Ren et al. FPGA acceleration of the pair-HMMs forward algorithm for DNA sequence analysis
CN104699458A (zh) 定点向量处理器及其向量数据访存控制方法
Qi et al. Accelerating framework of transformer by hardware design and model compression co-optimization
CN109144469B (zh) 流水线结构神经网络矩阵运算架构及方法
EP2372587B1 (en) Apparatus and method for simulating a reconfigurable processor
CN102081513B (zh) Aes加密算法中列混淆过程指令优化方法及其指令集处理器
TWI724545B (zh) 用於影像處理之設備及方法
Cho et al. FARNN: FPGA-GPU hybrid acceleration platform for recurrent neural networks
CN115291949B (zh) 一种面向计算流体力学的加速计算装置和加速计算方法
JP4477959B2 (ja) ブロードキャスト型並列処理のための演算処理装置
KR102649933B1 (ko) 벡터 자리올림이 있는 가산 명령
Hilewitz et al. Bit matrix multiplication in commodity processors
Conceição et al. Efficient emulation of quantum circuits on classical hardware
CN110914800B (zh) 基于寄存器的复数处理
WO2021250392A1 (en) Mixed-element-size instruction
Lei et al. FPGA implementation of an exact dot product and its application in variable-precision floating-point arithmetic
CN103677735B (zh) 一种数据处理装置及数字信号处理器
Arnold Improved DNA-sticker arithmetic: tube-encoded-carry, Logarithmic Number System and Monte-Carlo methods
Jungeblut et al. Resource efficiency of hardware extensions of a 4-issue VLIW processor for elliptic curve cryptography
Hou et al. System level power consumption modeling and optimization for coarse-grained reconfigurable architectures
Jiang et al. Dynamic Multi-bit Parallel Computing Method Based on Reconfigurable Structure
Andrzejczak An Improved Architecture of a Hardware Accelerator for Factoring Integers with Elliptic Curve Method
Rutzig et al. Balancing reconfigurable data path resources according to application requirements
Singh et al. Design and Analysis of High Speed RISC Processor Using Pipelining Technique

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant