CN111709872B - 一种图三角形计数算法的自旋存内计算架构 - Google Patents
一种图三角形计数算法的自旋存内计算架构 Download PDFInfo
- Publication number
- CN111709872B CN111709872B CN202010423053.XA CN202010423053A CN111709872B CN 111709872 B CN111709872 B CN 111709872B CN 202010423053 A CN202010423053 A CN 202010423053A CN 111709872 B CN111709872 B CN 111709872B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- spin
- array
- slice
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Hall/Mr Elements (AREA)
Abstract
本发明公开了一种图三角形计数算法的自旋存内计算架构,包括存储器、数据缓冲器以及自旋存内计算阵列;存储器中存储大规模图形数据,经过数据切片和压缩后,由有效切片索引和相应的有效切片数据表示;数据缓冲器用于存储图形数据的有效切片索引以及自旋存内计算阵列的存储状态;自旋存内计算阵列用于存储有效切片数据以及进行三角形计数算法所需的按位逻辑运算;自旋存内计算阵列的存储状态被记录在数据缓冲器中以用于数据复用和交换,根据数据缓冲器中的有效切片索引,将相应的有效切片数据加载到自旋存内计算阵列中以进行按位逻辑运算。本发明能够实现高效的三角形计数算法的自旋存内计算,减少图三角形计数算法的存储/计算需求和数据传输。
Description
技术领域
本发明属于计算机体系结构领域,涉及一种图三角形计数算法的自旋存内计算架构。
背景技术
在计算机传统的冯诺依曼架构中,计算和存储分离,访存速度和带宽带来了计算机的性能和功耗瓶颈。存内计算的基本思想是在数据所在的位置执行计算,通过利用大容量存储器内部固有的带宽和并行性,节省大多数片外数据传输能耗和延迟。此外,由于新型非易失性磁存储器(STT-MRAM)具有更快的写入速度,较低的写入能量和较高的写入耐力等,有望成为下一代通用存储器,存内计算当与非易失性磁存储技术集成在一起时,将具备更加突出的优势。图三角形计数算法通常基于大型稀疏图,因此高效的图数据压缩和数据映射机制对于图三角形计数算法的存内计算效率至关重要。
发明内容
为此,本发明突破传统计算机系统中的冯诺依曼架构,提供了一种用于通用计算机系统中的针对图三角形计数算法的自旋存内计算架构,用于加速以三角形计数为基础的社区发现、链接预测和垃圾邮件过滤等应用。
本发明提供了一种图三角形计数算法的自旋存内计算架构,包括存储器、自旋存内计算阵列以及数据缓冲器,所述存储器用于存储大规模的图形数据,所述存储器中存储的图形数据被切片和压缩后,由有效切片索引和相应的有效切片数据表示;所述自旋存内计算阵列用于存储有效切片数据以及进行三角形计数算法所需的按位逻辑运算;所述数据缓冲器用于存储有效切片索引以及所述自旋存内计算阵列的存储状态;根据数据缓冲器中的有效切片索引,将相应的有效切片数据加载到自旋存内计算阵列中以进行按位逻辑运算;所述自旋存内计算阵列的存储状态被记录在数据缓冲器中以用于数据复用和交换。
进一步,所述自旋存内计算阵列由多个存储体(Bank)组成,多个Bank共享I/O和缓冲区,每个Bank由多个计算存储子阵列组成,所述多个计算存储子阵列连接到全局行解码器和共享的全局行缓冲区,修改存储器阵列的读取电路和写入驱动器,以支持三角形计数算法所需的按位逻辑功能。
进一步,所述自旋存内计算阵列的存储状态包括已加载哪些有效切片数据。
进一步,所述自旋存内计算阵列为STT-MRAM阵列。
本发明的有益效果:
1)考虑到大多数图是高度稀疏的,本发明提出的数据压缩策略可大幅减少空间和计算需求,所提出的压缩图数据格式可直接映射到计算存储阵列上以执行存内逻辑计算;
2)本发明所提出的图形数据压缩和数据映射策略不限于自旋磁存储器或三角形计数问题,它们可以与其他非易失性存储器一起应用于其他图算法存内加速器。
附图说明
图1为本发明实施例的图三角形计数算法的自旋存内计算架构整体示意图;
图2为本发明实施例的数据切片策略示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。
图1是本发明实施例的自旋存内计算架构整体结构示意图,如图所示,包括存储器、数据缓冲器以及STT-MRAM阵列,其中,存储器中存储的图形数据被切片和压缩后,由存储在数据缓存器中的有效切片索引和相应的有效切片数据表示,根据数据缓冲器中的有效切片索引,将相应的有效切片数据加载到STT-MRAM阵列中以进行布尔AND运算。STT-MRAM阵列的存储状态,例如已加载哪些切片,也被记录在数据缓冲器中,以用于数据复用和交换。所述自旋存内计算阵列的存储状态被记录在数据缓冲器中以用于数据复用和交换。
STT-MRAM阵列由多个Bank组成,多个Bank共享I/O和缓冲区,每个Bank由多个计算存储子阵列组成,所述多个计算存储子阵列连接到全局行解码器和共享的全局行缓冲区,修改STT-MRAM阵列的读取电路和写入驱动器以处理按位逻辑功能。
下面通过说明本实施例的自旋存内计算架构的具体运行工作过程,来进一步说明本发明。
假设邻接矩阵中的非零元素是按行处理的,那么每行仅需要加载到STT-MRAM阵列中一次,同时将该行中非零元素相应的列依次加载到STT-MRAM阵列中。一旦处理了该行中的所有非零元素,该行将不再用于以后的计算中,因此可以用待处理的下一行覆盖此行。在将某个列加载到STT-MRAM阵列中进行计算之前,首先检查该列是否在此之前已被加载,若已被加载,可直接复用,否则,该列将被加载到对应内存空间。如果内存已满,需要选择一列以替换为当前列。例如,可选择最近使用最少的列进行替换(Least Recently Used,LRU)。
假定Ri是图G(V,E)的邻接矩阵A中的第i行,而Cj是图G(V,E)的邻接矩阵A的第j列,其中V表示图G(V,E)中节点的集合,E表示图G(V,E)中边的集合;切片大小为|S|(每个切片包含|S|位),则每一行和每一列都有个切片。Ri中的第k个切片(表示为RiSk)为集合{A[i][k·|S|],…,A[i][(k+1)·|S|-1]}。
定义Ri中的第k个切片RiSk是有效的当且仅当
通过行和列切片,以切片为单位执行布尔AND运算。对于每个A[i][j]=1,仅处理有效的切片对,即,仅当行切片RiSk和列切片CjSk均有效时,才会加载有效的切片对(RiSk,CjSk)到计算存储阵列并执行布尔AND运算。
此外,使用提出的行切片和列切片策略,还需要存储有效切片的索引以及这些切片的详细数据信息。假设有效切片的数量为NVS,切片大小为|S|,使用一个整数类型(例如4个字节)存储每个有效切片索引,然后使用整个有效切片索引所需的空间是IndexLength=NVS×4字节。存储有效切片的数据信息所需的空间为DataLength=NVS×|S|/8字节。因此,图G(V,E)的总体所需空间为NVS×(|S|/8+4)字节,这由图G(V,E)的稀疏性和切片大小确定。
图2是本实施例的数据切片策略示意图。在行和列切片之后,仅切片对(RiS3,CjS3)和(RiS5,CjS5)是有效的,因此,仅需将这些切片对加载到STT-MRAM阵列中进行计算。
在执行存内计算时,运算数据(如切片对)被存储在STT-MRAM阵列的不同行中。之后,与运算数据关联的行将同时激活以进行计算。通过修改感应放大器的参考电路实现布尔AND运算。
对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以对本发明的实施例做出若干变型和改进,这些都属于本发明的保护范围。
Claims (2)
1.一种图三角形计数算法的自旋存内计算架构,其特征在于,包括存储器、自旋存内计算阵列以及数据缓冲器,所述存储器用于存储大规模的图形数据,所述存储器中存储的图形数据被切片和压缩后,由有效切片索引和相应的有效切片数据表示;所述自旋存内计算阵列用于存储有效切片数据以及进行三角形计数算法所需的按位逻辑运算;所述数据缓冲器用于存储有效切片索引以及所述自旋存内计算阵列的存储状态;根据数据缓冲器中的有效切片索引,将相应的有效切片数据加载到自旋存内计算阵列中以进行按位逻辑运算;所述自旋存内计算阵列的存储状态被记录在数据缓冲器中以用于数据复用和交换;
所述自旋存内计算阵列基于自旋磁存储器,由多个存储体组成,多个存储体共享I/O和缓冲区,每个存储体由多个计算存储子阵列组成,所述多个计算存储子阵列连接到全局行解码器和共享的全局行缓冲区,修改所述自旋存内计算阵列的读取电路和写入驱动器,以支持三角形计数算法所需的按位逻辑功能;
所述自旋存内计算阵列的存储状态包括已加载哪些有效切片数据。
2.根据权利要求1所述的图三角形计数算法的自旋存内计算架构,其特征在于,所述自旋存内计算阵列为STT-MRAM阵列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010423053.XA CN111709872B (zh) | 2020-05-19 | 2020-05-19 | 一种图三角形计数算法的自旋存内计算架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010423053.XA CN111709872B (zh) | 2020-05-19 | 2020-05-19 | 一种图三角形计数算法的自旋存内计算架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111709872A CN111709872A (zh) | 2020-09-25 |
CN111709872B true CN111709872B (zh) | 2022-09-23 |
Family
ID=72537182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010423053.XA Active CN111709872B (zh) | 2020-05-19 | 2020-05-19 | 一种图三角形计数算法的自旋存内计算架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111709872B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213592A (zh) * | 2019-06-21 | 2019-09-06 | 山东大学 | 适用于hevc标准中运动估计的电路及其工作方法 |
CN111079919A (zh) * | 2019-11-21 | 2020-04-28 | 清华大学 | 支持权重稀疏的存内计算架构及其数据输出方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9685164B2 (en) * | 2014-03-31 | 2017-06-20 | Qualcomm Incorporated | Systems and methods of switching coding technologies at a device |
CN105702853B (zh) * | 2016-03-04 | 2019-05-21 | 北京航空航天大学 | 一种自旋转移矩磁存储单元 |
KR102527992B1 (ko) * | 2016-03-14 | 2023-05-03 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
CN109766309B (zh) * | 2018-12-29 | 2020-07-28 | 北京航空航天大学 | 自旋存算一体芯片 |
CN110442323B (zh) * | 2019-08-09 | 2023-06-23 | 复旦大学 | 进行浮点数或定点数乘加运算的装置和方法 |
CN111045954B (zh) * | 2019-11-29 | 2023-08-08 | 北京航空航天大学青岛研究院 | 基于nand-spin的存内计算加速方法 |
CN111124675B (zh) * | 2019-12-11 | 2023-06-20 | 华中科技大学 | 一种面向图计算的异构存内计算设备及其运行方法 |
-
2020
- 2020-05-19 CN CN202010423053.XA patent/CN111709872B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213592A (zh) * | 2019-06-21 | 2019-09-06 | 山东大学 | 适用于hevc标准中运动估计的电路及其工作方法 |
CN111079919A (zh) * | 2019-11-21 | 2020-04-28 | 清华大学 | 支持权重稀疏的存内计算架构及其数据输出方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111709872A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10153042B2 (en) | In-memory computational device with bit line processors | |
CN108885887B (zh) | 用于数据移动的设备及方法 | |
US10210935B2 (en) | Associative row decoder | |
CN108885595B (zh) | 用于高速缓冲存储操作的设备及方法 | |
CN104794070B (zh) | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 | |
JP3871331B2 (ja) | キャッシュ・コントローラ | |
EP3091439B1 (en) | Multi-bank memory with multiple read ports and multiple write ports per cycle | |
CN104238962B (zh) | 向缓存中写入数据的方法及装置 | |
US20210103818A1 (en) | Neural network computing method, system and device therefor | |
US20140136778A1 (en) | System, method, and computer program product for implementing a storage array | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US11237903B2 (en) | Technologies for providing ECC pre-provisioning and handling for cross-point memory and compute operations | |
US20200301825A1 (en) | Technologies for column-based data layouts for clustered data systems | |
US11705207B2 (en) | Processor in non-volatile storage memory | |
CN111712876A (zh) | 用于子阵列寻址的设备及方法 | |
CN111752744A (zh) | 用于提供可伸缩架构来用于在存储器中执行计算操作的技术 | |
CN111783933A (zh) | 一种对深度卷积神经网络计算加速的、结合主存储器的数据载入装置的硬件电路设计及方法 | |
US11392494B2 (en) | Technologies for performant column read operations on clustered data in a dimm architecture | |
CN105393210A (zh) | 用于模拟共享存储器结构的存储器单元 | |
US20120047344A1 (en) | Methods and apparatuses for re-ordering data | |
Sun et al. | Energy-efficient SQL query exploiting RRAM-based process-in-memory structure | |
JP2002055879A (ja) | マルチポートキャッシュメモリ | |
CN111709872B (zh) | 一种图三角形计数算法的自旋存内计算架构 | |
CN117234720A (zh) | 动态可配置的存算融合数据缓存结构、处理器及电子设备 | |
Nakano et al. | The random address shift to reduce the memory access congestion on the discrete memory machine |
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 |