CN111124675A - 一种面向图计算的异构存内计算设备及其运行方法 - Google Patents
一种面向图计算的异构存内计算设备及其运行方法 Download PDFInfo
- Publication number
- CN111124675A CN111124675A CN201911272006.3A CN201911272006A CN111124675A CN 111124675 A CN111124675 A CN 111124675A CN 201911272006 A CN201911272006 A CN 201911272006A CN 111124675 A CN111124675 A CN 111124675A
- Authority
- CN
- China
- Prior art keywords
- signal processing
- data
- load
- processing unit
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/18—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2225/00—Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
- H01L2225/03—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
- H01L2225/04—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
- H01L2225/065—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L2225/06503—Stacked arrangements of devices
- H01L2225/06541—Conductive via connections through the device, e.g. vertical interconnects, through silicon via [TSV]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/03—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
- H01L25/04—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
- H01L25/065—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L25/0657—Stacked arrangements of devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种面向图计算的异构存内计算设备,其配置为:根据输入的图数据和图算法进行初始化;构建滑动窗口执行模型,使得存储器控制单元能够根据设定的执行顺序,从动态随机存取存储器中读取图数据;存储器控制单元根据读取的图数据的负载特征及硬件实时占有率,将负载调度至数字信号处理单元或若干个模拟信号处理单元进行执行,在负载调度至数字信号处理单元中进行执行的情况下,数字信号处理单元配置为依次处理负载中对应的每一条边,并更新其对应的顶点数据,或者在负载调度至模拟信号处理单元中进行执行的情况下,存储器控制单元能够将负载转换成矩阵的形式以匹配模拟信号处理单元的计算模式;在图算法不收敛的情况下,执行下一轮迭代。
Description
技术领域
本发明属于计算机体系结构领域的专用加速器设计技术领域,尤其涉及一种面向图计算的异构存内计算设备及其运行方法。
背景技术
图结构能够自然地捕获数据项之间的关系,并允许数据分析师从广泛的应用程序中的数据模式中获取有价值的见解。但是,图计算对存储系统提出了很大的挑战。由于不规则的邻接顶点遍历,导致访存局部性较差;并且对来自内存的数据的计算通常是简单的,对内存带宽要求较高。现有基于通用架构,FPGA和ASIC的图处理框架虽然在技术上取得一定进展,但远远没有解决图处理中出现的内存瓶颈问题。
与具有独立计算-存储层次结构的传统冯·诺依曼架构不同,存内计算通过在存储器中集成计算单元来解决上述“存储墙”挑战,以提高图计算执行效率。当前存内计算主要有两种方案,其一是在存储器附近或内部添加或集成数字信号处理逻辑(例如,非常小的有序核,可重构逻辑等)。其中许多工作将处理逻辑放置在3D堆叠存储器的逻辑层内或存储器控制器中,逻辑层和存储层通过硅通孔技术连接,根据美光公司提供的标准,可提供高达320GB/s内存带宽,并且堆叠后访存距离的缩短,也显著降低了数据移动的开销,通常在1~2个数量级。另外一种存内计算技术则利用存储器单元和单元阵列本身的固有属性和操作原理,通过存储单元之间的相互作用使得单元和/或单元阵列可以执行模拟信号计算。以ReRAM为例,基于模拟忆阻器的存内计算架构可以在其crossbar架构中有效地执行矩阵向量乘法运算。通过在ReRAM单元的电阻中写入图结构边数据,当一组顶点数据被转换为作用在字线上的模拟电压信号时,ReRAM crossbar结构可以立即执行矩阵向量乘操作,并在其位线上产生模拟电流信号。最近的研究表明,图计算可以转换为矩阵向量乘形式,以享受ReRAM的大规模并行性,将计算复杂度为O(n2)的矩阵向量乘操作转换为O(1)。
例如,公开号为CN108563808A的专利文献,其公开了一种基于FPGA的异构可重构图计算加速器系统的设计方法,整个加速器系统包括PC和FPGA两大异构模块,具体步骤:首先加载启动FPGA所需要的驱动模块,将FPGA的PCIe DMA等设备打开;根据所需要处理的图数据的顶点数和边数进行图计算加速器引擎的选择;在选择好加速器引擎之后对图数据进行预处理;将预处理好的图数据通过PCIe DMA传输给FPGA开发板的板载DDR;启动加速器从板载DDR指定的地址开始读取图数据;控制器将图数据分配给不同的处理单元进行处理和计算;在各个处理单元计算和处理完数据之后,将结果发送给计算结果收集模块;收集模块将结果写回板载DDR,在整个图数据处理完之后,PC将结果从板载DDR中读取出。
因此,现有基于存内计算架构的图计算加速器通常采用上述两种存内计算方案。虽然基于模拟计算的存内计算架构并行性很高,但是过度理想化了ReRAM单元的充分利用。实际上,现代图分析工作负载通常是非常不规则的,因为大多数顶点涉及很少的边。将它们映射到ReRAM crossbar结构,对于稀疏的子图,导致存储单元存在大量无效数据。图处理中出现的这些未使用的存储单元严重影响计算效率,会产生数据写入和模拟信号转换等额外能耗开销,并降低图计算执行的实际并行性,影响处理性能。基于数字信号计算的存内计算架构,相比于模拟计算虽然由于堆叠后散热的限制,并行度较低,但是可以自然过滤无效的边,减少冗余的数据传输和计算。因此,这两种技术对于不同的负载互有优劣,图计算负载展现出异构的需求。基于数字信号处理的存内计算架构更适合处理稀疏子图,以保障执行效率,减少冗余计算;而基于模拟信号处理的存内计算架构更适合处理稠密子图,以发挥其高并行性。综上,本发明旨在提供一种能够克服上述缺陷的面向图计算的异构存内计算设备。
此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于发明人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。
发明内容
如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。
针对现有技术之不足,本发明提供一种面向图计算的异构存内计算设备,至少包括:存储层,其至少包括彼此堆叠,并且通过硅通孔进行垂直连接的若干个动态随机存取存储器;逻辑层,其至少包括设定数量的立方库,其中,每一个立方库均包括至少一个数字信号处理单元、至少一个存储器控制单元和若干个模拟信号处理单元,所述异构存内计算设备配置为:根据输入的图数据和图算法进行初始化;构建滑动窗口执行模型,使得所述存储器控制单元能够根据滑动窗口执行模型所限定的执行顺序,依次从所述动态随机存取存储器中读取所述图数据;存储器控制单元根据读取的图数据的负载特征及硬件实时占有率,将负载调度至所述数字信号处理单元或所述若干个模拟信号处理单元进行执行,其中,在负载调度至数字信号处理单元中进行执行的情况下,数字信号处理单元配置为依次处理负载中对应的每一条边,并更新其对应的顶点数据,或者在负载调度至模拟信号处理单元中进行执行的情况下,存储器控制单元能够将负载转换成矩阵的形式以匹配模拟信号处理单元的计算模式;在图算法不收敛的情况下,执行下一轮迭代。
与公开号为CN108563808A的现有技术相比,本发明至少具有区别技术特征A:构建滑动窗口执行模型,使得所述存储器控制单元能够根据滑动窗口执行模型所限定的执行顺序,依次从所述动态随机存取存储器中读取所述图数据。区别技术特征B:存储器控制单元根据读取的图数据的负载特征及硬件实时占有率,将负载调度至所述数字信号处理单元或所述若干个模拟信号处理单元进行执行,其中,在负载调度至数字信号处理单元中进行执行的情况下,数字信号处理单元配置为依次处理负载中对应的每一条边,并更新其对应的顶点数据,或者在负载调度至模拟信号处理单元中进行执行的情况下,存储器控制单元能够将负载转换成矩阵的形式以匹配模拟信号处理单元的计算模式。
本申请要解决的技术问题是:如何保证异构计算端负载均衡。本申请达到的技术效果为:为充分发挥异构计算端执行效率,对负载特征进行分析,设计了轻量且有效的负载调度机制,根据负载的静态图结构特征和动态顶点状态信息,分析负载更合适的计算端;并且考虑到硬件的实时利用率,最终进行负载运行时调度,确保异构计算端负载均衡。
对比文件解决的技术问题为:如何提高带宽利用率和有效计算率。其达到的技术效果为:可以有效的加速图算法,并且具备处理不同规模等级的图数据的能力,处理单元相对于通用处理器有高性能、低功耗特点。
综上,本发明与现有技术解决的技术问题不同,达到的技术效果不同,采用的技术效果也不同。
本发明的有益技术效果:
(1)本发明设计了异构内存计算硬件架构,并提供了负载调度模型与机制软件系统支撑。同时集成数字和模拟两种特征互补的计算单元,以提高计算的执行效率,充分利用模拟计算的并行性,同时保障计算过程中的执行效率。
(2)为充分发挥异构计算端执行效率,对负载特征进行分析,设计了轻量且有效的负载调度机制,根据负载的静态图结构特征和动态顶点状态信息,分析负载更合适的计算端;并且考虑到硬件的实时利用率,最终进行负载运行时调度,确保异构计算端负载均衡。
(3)为降低同步和远程数据访问开销,设计了滑动窗口执行模型。在窗口内部,通过缓存中间数据以减少数据同步次数,降低同步开销;在窗口间,通过预取数据,提前发起访存请求,降低较长访存时延带来的影响,保证整个架构的高效执行。
(4)通过堆叠存储计算单元,从存储角度,缩短了数据访问距离,降低数据移动带来的能耗开销,并提供了相对传统内存系统更高的内存带宽,以满足图计算高带宽需求。
附图说明
图1是本发明优选的面向图计算的异构存内计算设备的硬件架构设计图;
图2是本发明优选的存储器控制单元的工作原理示意图;
图3是本发明优选的数字信号处理单元的工作原理示意图;
图4是本发明优选的模拟信号处理单元的工作原理示意图;
图5是本发明优选的异构存内计算设备的工作原理示意图;
图6是本发明优选的异构存内计算运行时负载调度机制的示意图;和
图7是本发明优选的异构存内计算运行时负载调度模型的示意图。
附图标记列表
1:存储层 2:逻辑层 3:动态随机存取存储器
4:数字信号处理单元 5:存储器控制单元 6:模拟信号处理单元
7:第三预取模块 8:源顶点缓冲模块 9:第一缓冲器
10:第二缓冲器 11:数据处理核
4a:数据处理模块 4b:第二预取模块 4c:寄存器
4d:数据缓存模块 4e:指令缓存模块 4f:电源门控控制逻辑模块
5a:访问请求管理模块5b:第一预取模块 5c:运行时调度模块
6a:输入寄存器 6b:DAC阵列 6c:交叉阵列
6d:采样保持模块 6e:ADC阵列 6f:移位和加模块
6g:逻辑模块 6h:输出寄存器
具体实施方式
下面结合附图进行详细说明。
为了便于理解,将本申请中的技术用语进行说明解释。
Vault:立方库。为了提高架构的并行性,将整个芯片垂直分割为32个vault。每个vault包含最底层的逻辑层,及上层DRAM存储。每个库在功能和操作上都是独立的。
ReRAM crossbar:可变电阻式随机存取存储器交叉阵列。ReRAM的一种组织架构,为了增加密度和减少成本,字线和位线交叉组织,组成存储阵列。
DAC阵列:数模转换器阵列,将离散的数字信号转换为连续变化的模拟信号的器件。本发明中用于将数字信号转换为模拟信号输入ReRAM crossbar进行模拟计算。
ADC阵列:模数转换器阵列,将连续变化的模拟信号转换为离散的数字信号的器件。本发明中用于将ReRAM crossbar位线中电流转换为数字信号。片上eDRAM(DVB):动态随机存取内存,其在大量的DRAM中包括了一小部分的静态RAM(SRAM),因此许多内存存取将会比DRAM更快,本发明中用于缓存目标点数据的中间结果。
滑动窗口执行模型:将图根据目标点划分为若干个子图,每个子图为一个窗口,依次执行每个窗口。
等待负载地址:等待处理的负载存储在DRAM中的地址信息。
源顶点缓冲器:缓存子图对应的源顶点的数据信息。
实施例1
如图1所示,针对现有存内计算架构展现出互补的计算特性,及图计算负载异构需求,本发明提供一种面向图计算的异构存内计算设备,使得通过一个统一的解决方案,让图计算负载能够同时享用两种典型存内计算技术的特点,进而最大化硬件执行效率,提升计算性能,并降低使用功耗。异构存内计算设备至少包括存储层1和逻辑层2。存储层1和逻辑层2彼此相互堆叠而成。存储层1包括若干个动态随机存取存储器3。动态随机存取存储器3彼此堆叠,其中,存储层1与逻辑层2之间以及相邻的两个动态随机存取存储器3之间能够通过硅通孔技术垂直连接,进而能够提供高内部带宽、低延迟和低通信开销。具体的,遵循美光公司HMC 2.1规范,逻辑层2可以由设定数量的立方库(vault)组成。例如,设定数量可以是32。每个立方库能够由至少一个数字信号处理单元4、存储器控制单元5和若干个模拟信号处理单元6。可以设置若干个内存层以为每个立方库提供设定大小的内存。例如,可以设置8个内存层,从而能够为每个立方库提供高达256MB的内存,最终,本发明的异构存内计算设备能够具有8GB的片上内存。为了支撑每个立方库之间的通信,可以选用网状片上网络。
优选的,存储器控制单元5用于将工作负载分配给数字信号处理单元4或模拟信号处理单元6。如图2所示,存储器控制单元5至少包括访问请求管理模块5a、第一预取模块5b和运行时调度模块5c。具体的,存储器控制单元5配置为按照如下方式将工作负载分配给数字信号处理单元4或模拟信号处理单元6。
S100:存储器控制单元5从动态随机存取存储器3中加载数据,其中,在进行数据调度之前,存储器控制单元5对工作负载特征进行分析。
具体的,负载特征的分析用于判定数据特征,判定数据更适合的计算端,从而将数据分配到更合适的计算端。例如,可以根据运行时每行中的有效边,将子图调度至数字信号处理单元4或模拟信号处理单元6。即,如果所有行都不超过一个有效边,则将给定子图调度至数字信号处理单元4。否则,将给定子图调度至模拟信号处理单元6。
S200:存储器控制单元5根据子图信息,基于网状片上网络的确定性路由算法向相应的其他立方库中的存储器控制单元5发送远程访问请求以获取该子图对应的源顶点数据。
具体的,路由算法通常用于确定数据分组在网络中按照何种路径从源节点传输至目的节点。确定性路由算法可以是现有的路由器普遍采用的XY维序路由算法,其只要给定源地址与目的地址,就能唯一确定一条路由路径。其将网络中所有路由器都用一个二维坐标(X,Y)表示,分组中的地址信息也用二维坐标(X,Y)表示。
S300:存储器控制单元5从存储层1获取负载后,通过第一预取模块5b产生预取请求,进而读取负载相应的源顶点数据信息。
具体的,第一预取模块5b用于重叠远程数据访问延迟以及数字信号处理单元4和模拟信号处理单元6上的计算。
S400:存储器控制单元5从存储层1获取负载后,根据负载特征,通过运行时调度模块5c分配调度负载到合适的计算端。
具体的,负载特征是指运行时每行中的有效边。
S500:数字信号处理单元4和模拟信号处理单元6计算的结果,通过存储器控制单元5更新写回动态随机存取存储器3中。
优选的,如图3所示,数字信号处理单元4能够是基于ARMv7-A架构的单核处理器。其至少包括数据处理模块4a、第二预取模块4b、寄存器4c、数据缓存模块4d、指令缓存模块4e和电源门控控制逻辑模块4f。数字信号处理单元4能够顺序地执行从内存控制单元5调度至数据缓存模块4d中的边。解码并执行由第二预取模块4b获取的指令,最终将数据缓存模块4d中的数据传送至寄存器4c中。优选的,数字信号处理单元4的工作流程至少包括如下步骤:
A1:由数据处理模块4a和第二预取模块4b构成的顺序处理核通过存储器控制单元5获取图结构数据及算法执行指令,并分别缓存在数据缓存模块4d和指令缓存模块4e中。
具体的,在计算机科学中,一个图就是若干个顶点的集合,其中,若干个顶点可以通过一系列边进行连接。因此,图结构数据至少包括若干个顶点以及若干个边。算法执行指令可以支持多种图算法包括广度优先搜索,单源点最短路径,网页排名等,而不是具体的一种。所有算法都有相同的执行模式,只是在对目标点更新的操作上略有不同。根据算法指令,首先读取源点数据,及相应的边,根据对应算法的更新操作指令及源顶点属性,对目标顶点属性进行更新。
A2:第二预取模块4b辅助数据处理模块4a从缓存中加载数据及算法执行指令,并缓存在寄存器4c中。
A3:数据处理模块4a根据算法执行指令对图数据进行处理,
具体的,对图书进行处理是指根据不同的图算法,对源顶点属性进行处理,以此更新目标定点属性。
A4:处理得到的结果通过存储器控制单元5写回动态随机存取存储器3中,数据处理完成。
具体的,电源门控控制逻辑模块4f主要负责数字信号处理单元4的开关状态,当所有任务执行完成后可以关闭数字信号处理单元4。
优选的,如图4所示,模拟信号处理单元6至少包括输入寄存器6a、DAC阵列6b、交叉阵列6c(ReRAM crossbar)、采样保持模块6d、ADC阵列6e、移位和加模块6f、逻辑模块6g和输出寄存器6h。ADC阵列6e和DAC阵列6b用于信号转换。采样保持模块6d用于采样模拟值并在转换为数字形式之前对其进行保持。逻辑模块6g能够定制图计算中非矩阵向量乘操作。本发明将模拟信号处理单元6集成到3D芯片堆叠存储器的逻辑层中,可以显著提高模拟信号处理单元6的效率并提供更高的内存带宽。
优选的,模拟信号处理单元6至少按照如下步骤对数据进行处理:
B1:存储器控制单元5将源顶点数据缓存在输入寄存器6a中,DAC阵列6b将源顶点数据的数字信号转换为模拟信号以作为交叉阵列6c的位线的输入数据。
B2:DAC阵列6b将输入数据写入到交叉阵列6c,并在交叉阵列6c中进行计算。
具体的,通过交叉阵列6c的计算,可以得到以交叉阵列6c的位线上的电流累积值为表现形式的计算结果。
B3:交叉阵列6c的计算结果通过采样保持模块6d进行提取后,传输至ADC阵列6e中。
B4:ADC阵列6e将计算结果由模拟电流信号转换为数字信号,通过移位加模块6f得到在交叉阵列中计算结果。
B5:逻辑模块6g对交叉阵列6c的计算结果进行处理以得到最终计算结果,并缓存到输出寄存器6h中。
具体的,逻辑模块6g的用于对数字信号进行移位加操作,组成16位的数字信号数据。
B6:输出寄存器中的数据,通过存储器控制单元5写回到动态随机存取存储器3。
为了便于理解,如图5所示,将本发明的异构存内计算设备的工作原理进行说明。
具体的,异构存内计算设备的运行过程至少包括如下步骤:
S1:根据输入的图数据和图算法对异构存内计算设备进行初始化。
具体的,初始化是指将图数据(包括点和边)进行划分。根据顶点的数目,将顶点均匀分到各立方库中,顶点相连入边也划分的到顶点所在立方库。图算法可以是普里姆算法、迪杰斯特拉算法或弗洛伊德算法。
S2:构建滑动窗口执行模型,使得存储器控制单元5能够根据滑动窗口执行模型所限定的执行顺序,依次从动态随机存取存储器3中读取图数据。
优选的,为降低同步和远程数据访问开销,设计了滑动窗口执行模型。在窗口内部,通过缓存中间数据以减少数据同步次数,降低同步开销;在窗口间,通过预取数据,提前发起访存请求,降低较长访存时延带来的影响,保证整个架构的高效执行。在本发明中,子图的调度顺序也可能在两个方面显著影响整体效率:1、数据同步开销。由于目标顶点对应的边可能分布到不同子图,对于这些子图可能在不同计算端上执行。为保证数据一致性,将子图更新的中间值直接写回动态随机存取存储器3会带来同步开销。2、远程访问开销。由于(源或目标)顶点及其相关边未划分在同一个立方库中引起的,由于跨立方库远程访问,数据需要通过片上网络通信,可能导致较高时延,特别是当片上网络拥塞时。因此,本发明提出一种滑动窗口执行模型以尽可能地降低数据同步开销和远程访问开销。具体的,如图7所示,滑动窗口执行模型的构建至少包括如下步骤:
S20:根据目标顶点,将图划分至各个立方库,并在立方库内部使用至少一个能够以滑动方式限制行主调度的范围的窗口,进而以此形成片上eDRAM来缓存目标顶点的中间数据,使得数据写入动态随机存取存储器3的次数能够减少。
S21:为每一个立方库配置至少两个片上eDRAM,其中,第一片上eDRAM供该立方库内的所有数字信号处理单元4共享,第二片上eDRAM供该立方库内的所有模拟信号处理单元6共享。
S22:基于时分复用器消除模拟信号处理单元6之间数据同步开销,使得仅在片上eDRAM中的中间结果需要更新至动态随机存取存储器3的情况下,才会触发数据同步的产生。
因此,每轮迭代所有顶点数据最多只需要同步一次,从而降低了同步开销,作为一个额外的好处,通过源顶点数据的重用,DVB还减少了远程访问的数目,减少了远程访问的开销。
S23:在存储器控制单元5中集成第三预取模块7和源顶点缓冲模块8,其中,在数字信号处理单元4或模拟信号处理单元6的等待队列中负载所对应的源顶点并不位于源顶点缓冲模块8中的情况下,第三预取模块7生成预取请求以隐藏远程访问等待时间。
具体的,在采用滑动窗口执行模型之后,源顶点的远程访问是具有恒定步幅的顺序访问。每个远程内存访问是访问多个(等于ReRAM crossbar的行数)连续的顶点数据。因此其核心在于:在执行相应的负载之前预取将在第一缓冲器9或第二缓冲器10的队列中负载对应的源顶点以隐藏远程访问等待时间。为此,本发明集成在存储器控制单元5中集成第三预取模块7和源顶点缓冲模块8,使得第三预取模块7能够用于预取数据,源顶点缓冲模块8能够用于存储数据。与许多其他预取技术不同,由于能够确定要访问的源顶点,因此本发明的预取器可以精确发起访存请求,而不会产生无效访问。从而在不增加片上网络通信量的情况下,掩盖远程访问时延,降低远程访问导致计算端停滞的影响,提升整体架构执行效率。
S3:存储器控制单元5根据读取的图数据的负载特征及硬件实时占有率,将负载调度至数字信号处理单元4或模拟信号处理单元6中进行执行。
优选的,为充分发挥异构计算端执行效率,对负载特征进行分析,设计了轻量且有效的负载调度机制。根据负载的静态图结构特征和动态顶点状态信息,分析负载更合适的计算端;并且考虑到硬件的实时利用率,最终进行负载运行时调度,确保异构计算端负载均衡。具体的,图数据在写入电阻随机存取存储器(ReRAM)时,通常具有比读取和计算操作更长的延迟,尤其是在采用多级写入时。ReRAM crossbar架构通常采用行并行写入模式。如果每行中的许多单元都有用,那么每行的大量写入开销可以被摊销。然而由于图计算的稀疏性,导致大量无效边的写入。因此,本发明根据运行时每行中的有效边的数量,将子图调度至数字信号处理单元4或模拟信号处理单元6中进行执行。即,在所有行均不超过一个有效边的情况下,将子图调度至数字信号处理单元4。否则,将子图调度至模拟信号处理单元6。
优选的,如图6所示,整体图结构由6个顶点及9条有向边组成。其中顶点由子图指代,如顶点A~F;顶点之间的有向边由有向箭头表示,如图中A和C之间有一条有向箭头,则表示图中存在一条边,源顶点为A,目标顶点为C。在此图中顶点A、B、C为活跃点,E、D、F为非活跃点。
优选的,再次参见图6,为了在运行时分析每行中的有效边。每个子图与两个因素相关:顶点的激活状态(称为顶点索引,在图中用缩写AV表示)和图结构(称为边索引,在图中用缩写EV表示)。AV和EV的长度都是子图的行数。AV中的每个元素avi指示源顶点i是否是激活状态。如果是,则将avi设置为1;否则为0。EV中的每个元素evi表示子图的第i行是否具有多于一个边。如果是,则设定evi等于1;如果不是,则设定evi为0。点索引AV可以在运行时,从活动顶点边界中动态捕获的。边索引EV可以在分割初始图结构时静态获取。通过公式可以确定子图的调度位置。即,将所有avi和evi进行逻辑与运算,在得出的结果为1时,将该子图调度至模拟信号处理模块6。在得出的结果为0时,将该子图调度至数字信号处理模块4。
优选的,如图3和图6所示,在存储器控制单元5与数字信号处理单元4之间设置有第一缓冲器9。在存储器控制单元5与模拟信号处理单元6之间设置有第二缓冲器10。第一缓冲器9用于跟踪数字信号处理单元4中的等待负载地址。第二缓冲器10用于跟踪模拟信号处理单元6中的等待负载地址。在第一缓冲器9的缓冲区耗尽,并且第二缓冲器10的缓冲区未耗尽的情况下,将子图统一调度至第二缓冲器10对应的模拟信号处理单元6中,或者,在第一缓冲器9的缓冲区未耗尽,并且第二缓冲器10的缓冲区耗尽的情况下,将子图统一调度至第一缓冲器9对应的数字信号处理单元4中。在实际调度过程中也可能存在过度调度情况,使得系统遭受负载不均衡问题。如果调度的负载比超过第一缓冲器9和第二缓冲器10可以处理的负载量,第一缓冲器9或第二缓冲器10可能成为新的性能瓶颈。为了解决这个问题,本发明采用了一种积极的调度机制,在图计算执行的过程中,动态地监视运行时工作负载信息以做出最终决定。即使用第一缓冲器9和第二缓冲器10来分别跟踪数字信号处理单元4和模拟信号处理单元6中的等待负载地址。如果相应的缓冲区耗尽,将停止进一步调度,转而调度到空闲端,以保证硬件的利用率。
S4:在负载调度至数字信号处理单元4中进行执行的情况下,数字信号处理单元4配置为依次处理负载中对应的每一条边,并更新其对应的顶点数据,或者在负载调度至模拟信号处理单元6中进行执行的情况下,存储器控制单元5能够将负载转换成矩阵的形式以匹配模拟信号处理单元6的计算模式。
S5:在图算法不收敛的情况下,执行下一轮迭代。
具体的,若任有顶点处于活跃状态,则图算法不收敛。
实施例2
本实施例是对实施例1的进一步改进,重复的内容不再赘述。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够实现如前述实施例中所述的技术方案,其实现原理类似,此处不再赘述。计算机可读存储介质可以是任何能够存储数据且可以被计算装置读取的有形介质。
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。
Claims (10)
1.一种面向图计算的异构存内计算设备,至少包括:
存储层(1),其至少包括彼此堆叠,并且通过硅通孔进行垂直连接的若干个动态随机存取存储器(3);
逻辑层(2),其至少包括设定数量的立方库,其中,每一个立方库均包括至少一个数字信号处理单元(4)、至少一个存储器控制单元(5)和若干个模拟信号处理单元(6),
其特征在于,
所述异构存内计算设备配置为:
根据输入的图数据和图算法进行初始化;
构建滑动窗口执行模型,使得所述存储器控制单元(5)能够根据滑动窗口执行模型所限定的执行顺序,依次从所述动态随机存取存储器(3)中读取所述图数据;
存储器控制单元(5)根据读取的图数据的负载特征及硬件实时占有率,将负载调度至所述数字信号处理单元(4)或所述若干个模拟信号处理单元(6)进行执行,其中,在负载调度至数字信号处理单元(4)中进行执行的情况下,数字信号处理单元(4)配置为依次处理负载中对应的每一条边,并更新其对应的顶点数据,或者在负载调度至模拟信号处理单元(6)中进行执行的情况下,存储器控制单元(5)能够将负载转换成矩阵的形式以匹配模拟信号处理单元(6)的计算模式;
在图算法不收敛的情况下,执行下一轮迭代。
2.根据权利要求1所述的异构存内计算设备,其特征在于,所述滑动窗口执行模型的构建至少包括如下步骤:
根据目标顶点,将图划分至各个立方库,并在立方库内部使用至少一个以滑动方式限制主调度的范围的窗口,进而以此形成动态随机存取内存来缓存目标顶点的中间数据,使得数据写入所述动态随机存取存储器(3)的次数能够减少;
为每一立方库配置至少两个所述动态随机存取内存,其中,第一动态随机存取内存配置为供该立方库内的所有数据信号处理单元(4)共享,第二动态随机存取内存配置为供该立方库内的所有模拟信号处理单元(6)共享;
基于时分复用器消除模拟信号处理单元(6)之间的数据同步开销,使得仅在所述动态随机存取内存中的中间结果需要更新至所述动态随机存取存储器(3)的情况下,才会触发数据同步的产生;
在存储器控制单元(5)中集成第三预取模块(7)和源顶点缓冲模块(8),其中,在数字信号处理单元(4)或模拟信号处理单元(6)的等待队列中负载所对应的源顶点并不位于所述源顶点缓冲模块(8)中的情况下,第三预取模块(7)生成预取请求以隐藏远程访问等待时间。
3.根据权利要求2所述的异构存内计算设备,其特征在于,在所述图数据采用并行写入的方式写入所述异构存内计算设备中的情况下,所述异构存内计算设备配置为:
根据运行时每行的有效边的数量将负载调度至所述数字信号处理单元(4)或所述若干个模拟信号处理单元(6)进行执行,其中,在所有行的有效边的数量均不超过一个的情况下,将所述负载调度至所述数字信号处理单元(4)。
4.根据权利要求3所述的异构存内计算设备,其特征在于,所述存储器控制单元(5)与所述数字信号处理单元(4)之间设置有用于跟踪数字信号处理单元(4)中的等待负载地址的第一缓冲器(9),所述存储器控制单元(5)与所述模拟信号处理单元(6)之间设置有用于跟踪模拟信号处理单元(6)中的等待负载地址的第二缓冲器(10),其中:
在第一缓冲器(9)的缓冲区耗尽,并且第二缓冲器(10)的缓冲区未耗尽的情况下,将子图统一调度至第二缓冲器(10)对应的模拟信号处理单元(6)中,或者
在第一缓冲器(9)的缓冲区未耗尽,并且第二缓冲器(10)的缓冲区耗尽的情况下,将子图统一调度至第一缓冲器(9)对应的数字信号处理单元(4)中。
5.根据权利要求4所述的异构存内计算设备,其特征在于,所述存储器控制单元(5)配置按照如下方式将负载调度至所述数字信号处理单元(4)或所述若干个模拟信号处理单元(6)进行执行:
从动态随机存取存储器(3)中加载数据,其中,在进行数据调度之前,对工作负载特征进行分析;
根据子图信息,基于网状片上网络的确定性路由算法向相应的其他立方库中的存储器控制单元(5)发送远程访问请求以获取该子图对应的源顶点数据;
从存储层(1)获取负载后,通过第一预取模块(5b)产生预取请求,进而读取负载相应的源顶点数据信息;
从存储层(1)获取负载后,根据负载特征,通过运行时调度模块(5c)分配调度负载到合适的计算端。
6.根据权利要求5所述的异构存内计算设备,其特征在于,所述数据信号处理单元(4)至少按照如下步骤对数据进行处理:
由数据处理模块(4a)和第二预取模块(4b)构成的顺序处理核通过存储器控制单元(5)获取图结构数据及算法执行指令,并分别缓存在数据缓存模块(4d)和指令缓存模块(4e)中;
第二预取模块(4b)辅助数据处理模块(4a)从缓存中加载数据及算法执行指令,并缓存在寄存器(4c)中;
数据处理模块(4a)根据所述算法执行指令对图数据进行处理,其中,处理得到的结果通过存储器控制单元(5)写回动态随机存取存储器(3)中。
7.根据权利要求6所述的异构存内计算设备,其特征在于,所述模拟信号处理单元(6)至少按照如下步骤对数据进行处理:
存储器控制单元(5)将源顶点数据缓存在输入寄存器(6a)中,DAC阵列(6b)将源顶点数据的数字信号转换为模拟信号以作为交叉阵列(6c)的位线的输入数据;
DAC阵列(6b)将输入数据写入到交叉阵列(6c),并在交叉阵列(6c)中进行计算;
ADC阵列(6e)将计算结果由模拟电流信号转换为数字信号,通过移位加模块(6f)得到在交叉阵列(6c)中的计算结果;
逻辑模块(6g)对交叉阵列(6c)的计算结果进行处理以得到最终计算结果,并缓存到输出寄存器(6h)中;
输出寄存器(6h)中的数据,通过存储器控制单元(5)写回到动态随机存取存储器(3)。
8.一种面向图计算的异构存内计算设备的运行方法,至少包括:
配置至少包括彼此堆叠,并且通过硅通孔进行垂直连接的若干个动态随机存取存储器(3)的存储层(1);
配置至少包括设定数量的立方库的逻辑层(2),其中,每一个立方库均包括至少一个数字信号处理单元(4)、至少一个存储器控制单元(5)和若干个模拟信号处理单元(6),
其特征在于,
所述运行方法还包括如下步骤:
根据输入的图数据和图算法进行初始化;
构建滑动窗口执行模型,使得所述存储器控制单元(5)能够根据滑动窗口执行模型所限定的执行顺序,依次从所述动态随机存取存储器(3)中读取所述图数据;
存储器控制单元(5)根据读取的图数据的负载特征及硬件实时占有率,将负载调度至所述数字信号处理单元(4)或所述若干个模拟信号处理单元(6)进行执行,其中,在负载调度至数字信号处理单元(4)中进行执行的情况下,数字信号处理单元(4)配置为依次处理负载中对应的每一条边,并更新其对应的顶点数据,或者在负载调度至模拟信号处理单元(6)中进行执行的情况下,存储器控制单元(5)能够将负载转换成矩阵的形式以匹配模拟信号处理单元(6)的计算模式;
在图算法不收敛的情况下,执行下一轮迭代。
9.根据权利要求8所述的运行方法,其特征在于,所述滑动窗口执行模型的构建至少包括如下步骤:
根据目标顶点,将图划分至各个立方库,并在立方库内部使用至少一个以滑动方式限制主调度的范围的窗口,进而以此形成动态随机存取内存来缓存目标顶点的中间数据,使得数据写入所述动态随机存取存储器(3)的次数能够减少;
为每一立方库配置至少两个所述动态随机存取内存,其中,第一动态随机存取内存配置为供该立方库内的所有数据信号处理单元(4)共享,第二动态随机存取内存配置为供该立方库内的所有模拟信号处理单元(6)共享;
基于时分复用器消除模拟信号处理单元(6)之间的数据同步开销,使得仅在所述动态随机存取内存中的中间结果需要更新至所述动态随机存取存储器(3)的情况下,才会触发数据同步的产生;
在存储器控制单元(5)中集成第三预取模块(7)和源顶点缓冲模块(8),其中,在数字信号处理单元(4)或模拟信号处理单元(6)的等待队列中负载所对应的源顶点并不位于所述源顶点缓冲模块(8)中的情况下,第三预取模块(7)生成预取请求以隐藏远程访问等待时间。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时能够实现权利要求8和9中任一项所述的运行方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911272006.3A CN111124675B (zh) | 2019-12-11 | 2019-12-11 | 一种面向图计算的异构存内计算设备及其运行方法 |
US16/933,357 US11176046B2 (en) | 2019-12-11 | 2020-07-20 | Graph-computing-oriented heterogeneous in-memory computing apparatus and operational method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911272006.3A CN111124675B (zh) | 2019-12-11 | 2019-12-11 | 一种面向图计算的异构存内计算设备及其运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124675A true CN111124675A (zh) | 2020-05-08 |
CN111124675B CN111124675B (zh) | 2023-06-20 |
Family
ID=70499575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911272006.3A Active CN111124675B (zh) | 2019-12-11 | 2019-12-11 | 一种面向图计算的异构存内计算设备及其运行方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11176046B2 (zh) |
CN (1) | CN111124675B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709872A (zh) * | 2020-05-19 | 2020-09-25 | 北京航空航天大学 | 一种图三角形计数算法的自旋存内计算架构 |
CN112667562A (zh) * | 2021-01-22 | 2021-04-16 | 北京工业大学 | 一种基于cpu-fpga的大规模图上的随机游走异构计算系统 |
CN113505825A (zh) * | 2021-07-06 | 2021-10-15 | 中国科学院计算技术研究所 | 一种图计算装置 |
CN113993166A (zh) * | 2021-11-03 | 2022-01-28 | 嘉兴国电通新能源科技有限公司 | 一种面向异构d2d网络的小基站抖动避免负载均衡方法 |
US11880590B2 (en) | 2021-06-10 | 2024-01-23 | Samsung Electronics Co., Ltd. | Data processing system and method for accessing heterogeneous memory system including processing unit |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461113B (zh) * | 2018-10-11 | 2021-07-16 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
US11768754B2 (en) * | 2020-08-27 | 2023-09-26 | Tsinghua University | Parallel program scalability bottleneck detection method and computing device |
CN113377293B (zh) * | 2021-07-08 | 2022-07-05 | 支付宝(杭州)信息技术有限公司 | 用于在存储设备中进行计算的方法及装置、存储设备 |
US20240095871A1 (en) * | 2022-09-19 | 2024-03-21 | Apple Inc. | Cache architecture for image warp processing systems and methods |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070286483A1 (en) * | 2006-04-05 | 2007-12-13 | Siemens Corporate Research, Inc. | Region based push-relabel algorithm for efficient computation of maximum flow |
US20160063132A1 (en) * | 2014-08-29 | 2016-03-03 | GraphSQL, Inc. | Methods and systems for distributed computation of graph data |
US20170316591A1 (en) * | 2016-04-29 | 2017-11-02 | Hewlett Packard Enterprise Development Lp | Graph processing using a shared memory |
US20180089002A1 (en) * | 2016-09-28 | 2018-03-29 | Futurewei Technologies, Inc. | Apparatus and method for scheduling graph computing on heterogeneous platforms based on energy efficiency |
WO2018099299A1 (zh) * | 2016-11-30 | 2018-06-07 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
CN108389152A (zh) * | 2018-03-09 | 2018-08-10 | 华中科技大学 | 一种图结构感知的图处理方法及装置 |
US20180315229A1 (en) * | 2017-04-27 | 2018-11-01 | Daegu Gyeongbuk Institute Of Science And Technology | Graph generating method and apparatus |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170091103A1 (en) * | 2015-09-25 | 2017-03-30 | Mikhail Smelyanskiy | Instruction and Logic for Indirect Accesses |
US20170286122A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Instruction, Circuits, and Logic for Graph Analytics Acceleration |
RU2697958C1 (ru) * | 2018-06-29 | 2019-08-21 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносной активности на компьютерной системе |
CN109461113B (zh) * | 2018-10-11 | 2021-07-16 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
EP3734460B1 (en) * | 2019-04-30 | 2021-10-27 | Hewlett Packard Enterprise Development LP | Probabilistic software testing via dynamic graphs |
-
2019
- 2019-12-11 CN CN201911272006.3A patent/CN111124675B/zh active Active
-
2020
- 2020-07-20 US US16/933,357 patent/US11176046B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070286483A1 (en) * | 2006-04-05 | 2007-12-13 | Siemens Corporate Research, Inc. | Region based push-relabel algorithm for efficient computation of maximum flow |
US20160063132A1 (en) * | 2014-08-29 | 2016-03-03 | GraphSQL, Inc. | Methods and systems for distributed computation of graph data |
US20170316591A1 (en) * | 2016-04-29 | 2017-11-02 | Hewlett Packard Enterprise Development Lp | Graph processing using a shared memory |
US20180089002A1 (en) * | 2016-09-28 | 2018-03-29 | Futurewei Technologies, Inc. | Apparatus and method for scheduling graph computing on heterogeneous platforms based on energy efficiency |
WO2018099299A1 (zh) * | 2016-11-30 | 2018-06-07 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
US20180315229A1 (en) * | 2017-04-27 | 2018-11-01 | Daegu Gyeongbuk Institute Of Science And Technology | Graph generating method and apparatus |
CN108389152A (zh) * | 2018-03-09 | 2018-08-10 | 华中科技大学 | 一种图结构感知的图处理方法及装置 |
Non-Patent Citations (5)
Title |
---|
ABRAHAM ADDISIE等: "Heterogeneous Memory Subsystem for Natural Graph Analytics" * |
MINXUAN ZHOU等: "GAS: A Heterogeneous Memory Architecture for Graph Processing" * |
YUXUAN XING等: "Graph Analytics on Manycore Memory Systems" * |
林恒: "基于超大规模异构体系结构的图计算系统研究" * |
钟文勇: "异构多核图计算系统研究" * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709872A (zh) * | 2020-05-19 | 2020-09-25 | 北京航空航天大学 | 一种图三角形计数算法的自旋存内计算架构 |
CN112667562A (zh) * | 2021-01-22 | 2021-04-16 | 北京工业大学 | 一种基于cpu-fpga的大规模图上的随机游走异构计算系统 |
CN112667562B (zh) * | 2021-01-22 | 2024-04-05 | 北京工业大学 | 一种基于cpu-fpga的大规模图上的随机游走异构计算系统 |
US11880590B2 (en) | 2021-06-10 | 2024-01-23 | Samsung Electronics Co., Ltd. | Data processing system and method for accessing heterogeneous memory system including processing unit |
CN113505825A (zh) * | 2021-07-06 | 2021-10-15 | 中国科学院计算技术研究所 | 一种图计算装置 |
CN113505825B (zh) * | 2021-07-06 | 2023-07-21 | 中国科学院计算技术研究所 | 一种图计算装置 |
CN113993166A (zh) * | 2021-11-03 | 2022-01-28 | 嘉兴国电通新能源科技有限公司 | 一种面向异构d2d网络的小基站抖动避免负载均衡方法 |
CN113993166B (zh) * | 2021-11-03 | 2023-08-04 | 嘉兴国电通新能源科技有限公司 | 一种面向异构d2d网络的小基站抖动避免负载均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111124675B (zh) | 2023-06-20 |
US11176046B2 (en) | 2021-11-16 |
US20210182200A1 (en) | 2021-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124675B (zh) | 一种面向图计算的异构存内计算设备及其运行方法 | |
Mittal et al. | A survey of techniques for optimizing deep learning on GPUs | |
US11681650B2 (en) | Execution engine for executing single assignment programs with affine dependencies | |
Gao et al. | Practical near-data processing for in-memory analytics frameworks | |
Huang et al. | A heterogeneous PIM hardware-software co-design for energy-efficient graph processing | |
Elteir et al. | StreamMR: an optimized MapReduce framework for AMD GPUs | |
CN110705702A (zh) | 一种动态可扩展的卷积神经网络加速器 | |
Han et al. | A novel ReRAM-based processing-in-memory architecture for graph computing | |
Li et al. | PIMS: A lightweight processing-in-memory accelerator for stencil computations | |
Yoshida et al. | The approach to multiple instruction execution in the GMICRO/400 processor | |
Ma et al. | An efficient direct memory access (DMA) controller for scientific computing accelerators | |
Nakano et al. | The random address shift to reduce the memory access congestion on the discrete memory machine | |
Shan et al. | A comparison of MPI, SHMEM and cache-coherent shared address space programming models on a tightly-coupled multiprocessors | |
EP3108358A2 (en) | Execution engine for executing single assignment programs with affine dependencies | |
CN114398308A (zh) | 基于数据驱动粗粒度可重构阵列的近内存计算系统 | |
Vieira et al. | A compute cache system for signal processing applications | |
Shen et al. | Memory partition for simd in streaming dataflow architectures | |
Cheng et al. | Alleviating bottlenecks for dnn execution on gpus via opportunistic computing | |
Fan et al. | Scalable and efficient graph traversal on high-throughput cluster | |
Li et al. | Memory-Computing Decoupling: A DNN Multitasking Accelerator with Adaptive Data Arrangement | |
Alshamsi et al. | Improving Cache Locality in Processing-in-Memory Accelerator for Parallel Graph Processing | |
Ma et al. | Improving the dram access efficiency for matrix multiplication on multicore accelerators | |
Yuang et al. | A scalable distributed memory architecture for Network on Chip | |
Delisle | Parallel ant colony optimization: Algorithmic models and hardware implementations | |
Chen | Efficient Memory Access and Synchronization in NoC-based Many-core Processors |
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 |