CN118012496A - 面向软件抽象的控制流实现系统 - Google Patents
面向软件抽象的控制流实现系统 Download PDFInfo
- Publication number
- CN118012496A CN118012496A CN202410245386.6A CN202410245386A CN118012496A CN 118012496 A CN118012496 A CN 118012496A CN 202410245386 A CN202410245386 A CN 202410245386A CN 118012496 A CN118012496 A CN 118012496A
- Authority
- CN
- China
- Prior art keywords
- predicate
- data
- instruction
- processing unit
- output
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 85
- 238000004364 calculation method Methods 0.000 claims abstract description 36
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 125000004122 cyclic group Chemical group 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 230000001788 irregular Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000004335 scaling law Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种面向软件抽象的控制流实现系统,该系统包括:面向软件抽象的粗粒度可重构系统和编译工具链;编译工具链用于将源代码进行编译,形成软件抽象,并映射至面向软件抽象的粗粒度可重构系统,形成输入数据和/或数据流向指令;面向软件抽象的粗粒度可重构系统包括:处理单元用于:按照数据流向指令和处理单元内的计算指令对输入数据进行逻辑运算处理,按照数据流向指令发送输出数据和输出谓词;谓词控制模块用于:按照数据选择指令和谓词控制模块内的指令进行谓词计算,按照数据流向指令发送输出谓词;控制流片上网络用于传输输出谓词;数据流片上网络用于传输输出数据。本发明可以支持各种不同类型的复杂的控制流。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种面向软件抽象的控制流实现系统。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
高性能计算的迅速发展,加上摩尔定律的放缓和登纳德缩放定律的终结,对加速器的性能和功耗提出了更高的要求。以粗粒度可重构架构(CGRA)为代表的空间架构在高能效、灵活性和低一次性工程(NRE)成本方面拥有显著优势。CGRA在处理数字信号处理、生物医学和汽车等应用领域备受关注,因为在这些应用中能源、效率和灵活性都至关重要,并且业界已经在尝试利用CGRA来加速低功耗的AI和DSP芯片。
在当代应用程序的计算模式中,大多数模式都包含了非常丰富的控制行为,包括嵌套分支和循环,这对体系结构处理控制流的能力提出了极高的要求。为了能在CGRA上部署此类计算模式,软件应用程序被转换为控制流图(CFG)和数据流图(DFG)以便编译。它们组合形成控制数据流图(CDFG),图中的节点表示操作,边表示数据或控制依赖关系。CGRA编译器分别为节点和边分配适当的处理元件(PE)和互连线,确保所有数据和控制关系都能正确分配。由此可知编译器在充分利用架构资源进行加速方面发挥着关键作用,不仅可以执行指令调度以提升执行效率,还可以通过整体的编译优化为代码带来整体性能优势。然而,CGRA编译时间过长一直是一个长期存在且难以解决的问题。
尽管CGRA已显示出满足不同领域需求的潜力,但现有CGRA仍然缺乏对复杂控制流的有效支持。它们要么只执行内部循环并需要与主机进行设备外通信来执行复杂的控制操作,要么依赖高代价的硬件层面的标签匹配(tag-matching)。许多相关工作一直在努力缩小与真正的通用CGRA的差距。例如在PE和NoC中实现一组控制流算子,以支持任意控制流;或是设计一种可以进行灵活控制流信号(predicate)传递的控制流平面。尽管如此,这些工作针对深度嵌套循环和分支的支持仍然不尽人意。此外,由于控制流硬件的复杂性,编程和编译变得相当费力,因此需要编译友好的软硬件抽象。
总之,目前的CGRA与理想中真正的通用CGRA之间仍存在相当大的差距,难以充分支持各种不同类型的复杂的控制流(例如不规则循环、嵌套循环以及嵌套分支)。
发明内容
本发明实施例提供一种面向软件抽象的控制流实现系统,可支持各种不同类型的复杂的控制流(例如不规则循环、嵌套循环以及嵌套分支),该系统包括:
面向软件抽象的粗粒度可重构系统和编译工具链;
面向软件抽象的粗粒度可重构系统包括多个模块,所述多个模块包括多个处理单元、设于每个处理单元内的谓词控制模块、数据片上网络、与数据片上网络互联结构相同的控制流片上网络;
编译工具链用于:将源代码进行编译,形成软件抽象,并映射至面向软件抽象的粗粒度可重构系统,形成每个模块的输入数据和/或数据流向指令;
处理单元用于:按照数据流向指令和处理单元内的计算指令,对输入数据进行逻辑运算处理,获得输出数据和输出谓词,按照数据流向指令对输出数据和输出谓词进行发送;
谓词控制模块用于:按照数据选择指令和谓词控制模块内的指令,进行谓词计算,获得输出谓词,并按照数据流向指令发送输出谓词;
控制流片上网络用于:连接处理单元,以传输输出谓词;
数据流片上网络用于:连接处理单元,以传输输出数据。
本发明实施例中,谓词控制模块可以将处理单元原来的多个条件分支被转换为单个分支指令。将谓词组合计算重新定位到由简单的与门组成的谓词控制模块,可以减少处理单元的使用,这样可以使编译变得更加容易,更多的操作可以同时映射到面向软件抽象的粗粒度可重构系统上,同时性能也可以得到提高,因为谓词组合操作不必经历完整的处理单元执行周期。谓词组合还可以并行化if语句的计算,进一步减少了程序周期。额外添加的控制流片上网络可以方便地进行映射。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有的粗粒度可重构架构的示意图;
图2为本发明实施例中面向软件抽象的控制流实现系统的示意图;
图3为本发明实施例中循环处理单元的示意图;
图4为本发明实施例中谓词控制模块的示意图;
图5为本发明实施例中编译流程的原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
首先对本发明实施例涉及的术语进行解释。
CGRAs,coarse-grained reconfigurable arrays,粗粒度可重构阵列;
CGRA,coarse-grained reconfigurable architecture,粗粒度可重构架构;
NRE,nonrecurring engineering,一次性工程;
DFG,data flow graph,数据流图;
CFG,control flow graph,控制流图;
PE,processing element,处理单元;
AI,artificial intelligence,人工智能;
DSP,digital signal processor,数字信号处理器;
CDFG,control data flow graph,控制数据流图;
ISA,Instruction Set Architecture,指令集架构;
NoC,network on chip,片上网络。
图1为现有的粗粒度可重构架构的示意图,现有的粗粒度可重构架构可以支持普通循环、具有固定初始化间隔的循环间依赖关系的循环,以及循环变量可以通过其他指令动态更改的循环。本发明实施例提出的面向软件抽象的控制流实现系统不仅可以支持普通循环、具有固定初始化间隔的循环间依赖关系的循环,以及循环变量可以通过其他指令动态更改的循环,还可以通过多个循环单元之间的交互实现深度嵌套的循环。
图2为本发明实施例中面向软件抽象的控制流实现系统的示意图,包括:
面向软件抽象的粗粒度可重构系统和编译工具链;
面向软件抽象的粗粒度可重构系统包括多个模块,所述多个模块包括多个处理单元、设于每个处理单元内的谓词控制模块、数据片上网络、与数据片上网络互联结构相同的控制流片上网络;
编译工具链用于:将源代码进行编译,形成软件抽象,并映射至面向软件抽象的粗粒度可重构系统,形成每个模块的输入数据和/或数据流向指令;
处理单元用于:按照数据流向指令和处理单元内的计算指令,对输入数据进行逻辑运算处理,获得输出数据和输出谓词,按照数据流向指令对输出数据和输出谓词进行发送;
谓词控制模块用于:按照数据选择指令和谓词控制模块内的指令,进行谓词计算,获得输出谓词,并按照数据流向指令发送输出谓词;
控制流片上网络用于:连接处理单元,以传输输出谓词;
数据流片上网络用于:连接处理单元,以传输输出数据。
本发明实施例中,谓词控制模块可以将处理单元原来的多个条件分支被转换为单个分支指令。将谓词组合计算重新定位到由简单的与门组成的谓词控制模块,可以减少处理单元的使用,这样可以使编译变得更加容易,更多的操作可以同时映射到面向软件抽象的粗粒度可重构系统上,同时性能也可以得到提高,因为谓词组合操作不必经历完整的处理单元执行周期。谓词组合还可以并行化if语句的计算,进一步减少了程序周期。额外添加的控制流片上网络可以方便地进行映射。下面进行详细介绍。
在一实施例中,所述处理单元分为基础处理单元和循环处理单元;
基础处理单元能够对输入数据进行第一类逻辑运算处理,第一类逻辑运算处理不包括循环运算,循环运算包括嵌套循环、动态循环等;
循环处理单元能够对输入数据进行第二类逻辑运算处理,第二类逻辑运算处理包括循环运算;
编译工具链用于:根据软件抽象,确定面向软件抽象的粗粒度可重构系统所映射的基础处理单元和循环处理单元。
第一类逻辑运算处理包括加减乘除等普通运算。
第二类逻辑运算处理包括普通循环、具有固定初始化间隔的循环间依赖关系的循环,以及循环变量可以通过其他指令动态更改的循环。
图3为本发明实施例中循环处理单元的示意图,在一实施例中,循环处理单元包括:
配置缓冲模块,用于存储循环处理单元对应的数据流向指令和循环处理单元内的计算指令;
多个寄存器,用于存储循环处理单元对应的输入数据,所述输入数据包括循环变量和循环遍历上届值;
累加器,用于根据计算指令、数据流向指令和寄存器存储的输入数据进行循环变量的更新计算,获得输出数据,所述输出数据为更新的循环变量;
计数器,用于根据计算指令、数据流向指令和寄存器存储的输入数据进行谓词计算,获得输出谓词。
具体实施时,循环处理单元支持嵌套循环和动态循环。当前循环的外循环和内循环的谓词控制模块中的加法器和减法器来自外部源(例如,由循环内的指令导出)的循环变量和循环边界可以直接发送到循环处理单元以更新当前值。与其他处理单元一样,循环处理单元的输入和输出的指令和互连路线由编译器静态指定。
图3中,j_p为当前循环的里层循环里得到的谓词,m_p为当前循环的外层循环得到的谓词,Reg为寄存器,ALU为加法或减法计算,SUB为减法计算,i为循环变量,i_c为循环遍历上届值。例如,对于如下逻辑:
for(i=0;i<i_c;i++)
累加器计算如下:
i'=i_p?0:j_p?i+1:i
计数器计算如下:
i_p=(i_c-i')>0?0:1
其中,i'为输出数据,也就是更新的循环变量;i_p为输出谓词。
在一实施例中,累加器用于:
根据计算指令和数据流向指令,以及当前循环的里层循环里得到的谓词和外层循环得到的谓词,对寄存器存储的输入数据进行循环变量的更新计算,获得输出数据,所述输出数据为更新的循环变量;
计数器用于:根据计算指令和数据流向指令,以及当前循环的里层循环里得到的谓词和外层循环得到的谓词,对寄存器存储的输入数据进行谓词计算,获得输出谓词。
表1为本发明实施例中计算指令格式示意图。
表1
在一实施例中,所述计算指令包括模式和启动间隔;
累加器用于:
在第一种模式下,根据计算指令和数据流向指令,对寄存器之前存储的输入数据,周期进行循环变量的更新计算,其中,第一种模式下每次迭代之间没有依赖性;之前存储的输入数据即第一立即数和第二立即数。
在第二种模式下,根据计算指令和数据流向指令,对寄存器之前存储的输入数据,以固定的启动间隔进行循环变量的更新计算,其中,第二种模式下迭代之间存在依赖性;
在第三种模式下,根据计算指令和数据流向指令,以及当前循环的里层循环里得到的谓词和外层循环得到的谓词,对寄存器本次存储的输入数据进行循环变量的更新计算。其中,寄存器本次存储的输入数据即循环处理单元外部输入数据。
具体实施时,While循环会转换为等效的for循环。第一种模式编码为00,第二种模式编码为01,第三种模式编码为10。
在一实施例中,所述计算指令还包括操作码;
累加器用于:
根据操作码确定对循环变量的更新计算方式,所述更新计算方式为加法或减法。
具体实施时,操作码确定如何计算循环变量更新(例如递增/递减等),输入数据包括循环变量和循环变量上届值。例如,在for(i=0;i<10;i++)的情况下,操作码为“加”,输入数据包括循环变量值(为1)以及循环变量上届值(为10)。
使用多个循环处理单元使结构能够执行复杂的不完美嵌套循环和不规则循环。不同级别(内外层)和迭代次(i=1,i=2)的循环可以同时执行,另外同级的几个循环也可以由编译器合并(for…for…=>for……)。
图4为本发明实施例中谓词控制模块的示意图。
在一实施例中,谓词控制模块包括:
第一输入通道,用于接收来自所述谓词控制模块对应的处理单元或其他谓词控制模块的第一谓词;
第二输入通道,用于接收来自所述谓词控制模块对应的处理单元或其他谓词控制模块的第二谓词;
寄存器,用于存储谓词控制模块对应的数据选择指令;
组合谓词操作模块,用于根据第一谓词和第二谓词,进行谓词计算,获得第三谓词;
多路选择器,用于读取寄存器中的数据选择指令,从第一谓词和第三谓词中确定输出谓词。
具体实施时,谓词控制模块实际上是控制处理单元的,所有处理单元的执行启动均由谓词(predicate)控制模块控制。该谓词可以来自数据相关的前级处理单元,也可以来自其他谓词控制模块。非分支语句将直接把其谓词传递给下一级处理单元,而分支语句会将新计算的谓词发送给下一级。
在一实施例中,多路选择器用于:
在数据流向指令为0时,将第一谓词作为输出谓词;
在数据流向指令为1时,将第三谓词作为输出谓词。
在一实施例中,谓词控制模块在空闲时的接收状态为准备状态,在准备状态时,能够接收第一谓词和第二谓词;
谓词控制模块在接收到第一谓词和第二谓词后的接收状态为验证状态,在验证状态时,不再接收谓词。
具体实施时,谓词流和数据流分别通过控制片上网络(NoC)(1-bit)和数据片上网络NoC并行传播。处理单元计算指令的触发由谓词控制模块中的谓词以及准备状态/验证状态信号控制。这在两个分支的指令都存储在单个处理单元中的情况下至关重要。
在多个嵌套条件分支的情况下,可以组合谓词操作以提供单个分支。
if((a==b)&&(b<10)&&(a>5))
如上面的语句,原来的三个条件分支被转换为单个分支指令。将谓词组合计算重新定位到由简单的与门组成的谓词控制单元,可以减少处理单元的使用。这样可以使编译变得更加容易,更多的操作可以同时映射到CGRA结构上。同时性能也可以得到提高,因为谓词组合操作不必经历完整的处理单元执行周期。谓词组合还可以并行化if语句的计算,进一步减少了程序周期。
本发明实施例中,考虑到原始CGRA的网络拓扑形状会影响算子的映射位置,从而影响谓词的传播轨迹。由于一些控制依赖关系通过if转换变为数据依赖关系,并且数据流和控制流通常在在复杂循环中重叠,因此额外添加的控制流网络始终使用与原始数据流网络相同的拓扑,可以方便地进行映射。
在一实施例中,编译工具链包括软件抽象和编译流程;其中,软件抽象为采用有向图表示的抽象控制数据流图;
编译流程的步骤包括:
将源代码中的每条for语句抽象为一个单独的for算子,作为有向图的节点;
将源代码中的每条运算语句抽象为一个单独的算子,作为有向图的节点;
将源代码中的if语句转换为数据依赖,将该控制数据依赖抽象为有向图中与基础数据依赖不同性质的边。
图5为本发明实施例中编译流程的原理图,图5中的(a)为源代码,图5中的(b)为抽象控制数据流图,图5中的(c)为抽象控制数据流图在面向软件抽象的粗粒度可重构系统的映射。图5中,一个for循环抽象成了一个F节点,一个减法抽象成了一个S节点,一个加法抽象成了一个A节点,整个源代码的控制逻辑对应多个节点之间的控制流和数据流。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向软件抽象的控制流实现系统,其特征在于,包括:面向软件抽象的粗粒度可重构系统和编译工具链;
面向软件抽象的粗粒度可重构系统包括多个模块,所述多个模块包括多个处理单元、设于每个处理单元内的谓词控制模块、数据片上网络、与数据片上网络互联结构相同的控制流片上网络;
编译工具链用于:将源代码进行编译,形成软件抽象,并映射至面向软件抽象的粗粒度可重构系统,形成每个模块的输入数据、数据流向指令或数据选择指令;
处理单元用于:按照数据流向指令和处理单元内的计算指令,对输入数据进行逻辑运算处理,获得输出数据和输出谓词,按照数据流向指令对输出数据和输出谓词进行发送;
谓词控制模块用于:按照数据选择指令和谓词控制模块内的指令,进行谓词计算,获得输出谓词,并按照数据流向指令发送输出谓词;
控制流片上网络用于:连接处理单元,以传输输出谓词;
数据流片上网络用于:连接处理单元,以传输输出数据。
2.如权利要求1所述的系统,其特征在于,所述处理单元分为基础处理单元和循环处理单元;
基础处理单元能够对输入数据进行第一类逻辑运算处理,第一类逻辑运算处理不包括循环运算;
循环处理单元能够对输入数据进行第二类逻辑运算处理,第二类逻辑运算处理包括循环运算;
编译工具链用于:根据软件抽象,确定面向软件抽象的粗粒度可重构系统所映射的基础处理单元和循环处理单元。
3.如权利要求2所述的系统,其特征在于,循环处理单元包括:
配置缓冲模块,用于存储循环处理单元对应的数据流向指令和循环处理单元内的计算指令;
多个寄存器,用于存储循环处理单元对应的输入数据,所述输入数据包括循环变量和循环遍历上届值;
累加器,用于根据计算指令、数据流向指令和寄存器存储的输入数据进行循环变量的更新计算,获得输出数据,所述输出数据为更新的循环变量;
计数器,用于根据计算指令、数据流向指令和寄存器存储的输入数据进行谓词计算,获得输出谓词。
4.如权利要求3所述的系统,其特征在于,累加器用于:
根据计算指令和数据流向指令,以及当前循环的里层循环里得到的谓词和外层循环得到的谓词,对寄存器存储的输入数据进行循环变量的更新计算,获得输出数据,所述输出数据为更新的循环变量;
计数器用于:根据计算指令和数据流向指令,以及当前循环的里层循环里得到的谓词和外层循环得到的谓词,对寄存器存储的输入数据进行谓词计算,获得输出谓词。
5.如权利要求4所述的系统,其特征在于,所述计算指令包括模式和启动间隔;
累加器用于:
在第一种模式下,根据计算指令和数据流向指令,对寄存器之前存储的输入数据,周期进行循环变量的更新计算,其中,第一种模式下每次迭代之间没有依赖性;
在第二种模式下,根据计算指令和数据流向指令,对寄存器之前存储的输入数据,以固定的启动间隔进行循环变量的更新计算,其中,第二种模式下迭代之间存在依赖性;
在第三种模式下,根据计算指令和数据流向指令,以及当前循环的里层循环里得到的谓词和外层循环得到的谓词,对寄存器本次存储的输入数据进行循环变量的更新计算。
6.如权利要求5所述的系统,其特征在于,所述计算指令还包括操作码;
累加器用于:
根据操作码确定对循环变量的更新计算方式,所述更新计算方式为加法或减法。
7.如权利要求1所述的系统,其特征在于,谓词控制模块包括:
第一输入通道,用于接收来自所述谓词控制模块对应的处理单元或其他谓词控制模块的第一谓词;
第二输入通道,用于接收来自所述谓词控制模块对应的处理单元或其他谓词控制模块的第二谓词;
寄存器,用于存储谓词控制模块对应的数据选择指令;
组合谓词操作模块,用于根据第一谓词和第二谓词,进行谓词计算,获得第三谓词;
多路选择器,用于读取寄存器中的数据选择指令,从第一谓词和第三谓词中确定输出谓词。
8.如权利要求7所述的系统,其特征在于,多路选择器用于:
在数据流向指令为0时,将第一谓词作为输出谓词;
在数据流向指令为1时,将第三谓词作为输出谓词。
9.如权利要求7所述的系统,其特征在于,谓词控制模块在空闲时的接收状态为准备状态,在准备状态时,能够接收第一谓词和第二谓词;
谓词控制模块在接收到第一谓词和第二谓词后的接收状态为验证状态,在验证状态时,不再接收谓词。
10.如权利要求1所述的系统,其特征在于,编译工具链包括软件抽象和编译流程;其中,软件抽象为采用有向图表示的抽象控制数据流图;
编译流程的步骤包括:
将源代码中的每条for语句抽象为一个单独的for算子,作为有向图的节点;
将源代码中的每条运算语句抽象为一个单独的算子,作为有向图的节点;
将源代码中的if语句转换为数据依赖,将该控制数据依赖抽象为有向图中与基础数据依赖不同性质的边。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410245386.6A CN118012496A (zh) | 2024-03-04 | 2024-03-04 | 面向软件抽象的控制流实现系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410245386.6A CN118012496A (zh) | 2024-03-04 | 2024-03-04 | 面向软件抽象的控制流实现系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118012496A true CN118012496A (zh) | 2024-05-10 |
Family
ID=90952107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410245386.6A Pending CN118012496A (zh) | 2024-03-04 | 2024-03-04 | 面向软件抽象的控制流实现系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012496A (zh) |
-
2024
- 2024-03-04 CN CN202410245386.6A patent/CN118012496A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307873B2 (en) | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US10380063B2 (en) | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator | |
US10445451B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US10817291B2 (en) | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator | |
Gokhale et al. | NAPA C: Compiling for a hybrid RISC/FPGA architecture | |
KR100998586B1 (ko) | 구성가능한 실행 유닛들을 구비한 고성능 하이브리드프로세서 | |
JP6059413B2 (ja) | 再構成可能命令セル・アレイ | |
US20190004878A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features | |
Huang et al. | Liquid metal: Object-oriented programming across the hardware/software boundary | |
US11029958B1 (en) | Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator | |
US10459866B1 (en) | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator | |
US20220100680A1 (en) | Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits | |
Gokhale et al. | FPGA computing in a data parallel C | |
Ferreira et al. | A run-time modulo scheduling by using a binary translation mechanism | |
Chaudhuri et al. | SAT-based compilation to a non-vonNeumann processor | |
Gokhale et al. | Co-synthesis to a hybrid RISC/FPGA architecture | |
WO2022053152A1 (en) | Method of interleaved processing on a general-purpose computing core | |
Chen et al. | An integrated system for rapid prototyping of high performance algorithm specific data paths | |
Cardoso | Dynamic loop pipelining in data-driven architectures | |
CN118012496A (zh) | 面向软件抽象的控制流实现系统 | |
Barnwell et al. | The Georgia Tech digital signal multiprocessor | |
Capalija et al. | A coarse-grain fpga overlay for executing data flow graphs | |
Javaid et al. | Multi-mode pipelined mpsocs for streaming applications | |
Curtis et al. | Rapid prototyping on the Georgia Tech digital signal multiprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |