CN109766208A - 基于寄存器间通信的非对齐内存访问加速方法 - Google Patents
基于寄存器间通信的非对齐内存访问加速方法 Download PDFInfo
- Publication number
- CN109766208A CN109766208A CN201910022433.XA CN201910022433A CN109766208A CN 109766208 A CN109766208 A CN 109766208A CN 201910022433 A CN201910022433 A CN 201910022433A CN 109766208 A CN109766208 A CN 109766208A
- Authority
- CN
- China
- Prior art keywords
- core
- data
- point set
- register
- row
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供的基于寄存器间通信的非对齐内存访问加速方法,属于计算机技术领域,包括:存储在DMA中数据点集沿y方向分隔为m行数据点集行;从核集群的一个x方向的m个从核从DMA中分别读取一行数据点集行;每个从核利用寄存器通信将其读取的数据点集行中的属于相应从核部分的数据通信给相应从核;其中,从核集群的x方向的从核个数为m;m个从核需要读取的数据依次沿x方向排列构成数据点集存储在DMA中。本发明通过分行读取与寄存器间通信相结合的方式,降低了数据的总体访问量,减少非对齐内存访问次数,提升DMA带宽的利用率。
Description
技术领域
本发明计算机技术领域,尤其涉及一种基于寄存器间通信的非对齐内存访问加速方法。
背景技术
20世纪70年代以来,随着超级计算机的兴起,科学计算已成为主流科学范式之一,其重要性不亚于学科的理论和实验分支。这种计算范式的使用极大地促进了各种科学领域的发展,如大气模拟和地震模拟。在这些科学领域中,未对齐的存储器存取操作,即包含一个或多个连续存储器存取模式但不能总是对齐的主要存储器存取行为,例如基于模板的应用(例如,大气模拟和地震建模)以及协同存取。基于卷积神经网络的程序(如深层学习应用)所占比例很大,通常会对性能带来很大影响。
在过去的十年中,随着对HPC应用(如数值模拟和深度学习)的计算能力的需求不断增加,由传统的通用CPU组成的超级计算机已经不能满足性能要求。为了满足日益增长的计算能力需求,异构系统或芯片成为最受欢迎的大规模科学计算解决方案之一。如中国的神威太湖之光,在2016年成为了世界上第一台超过100pFLops的性能的超级计算机,是这种体系结构的代表。神威太湖之光自部署以来,提供了世界上最大的大气模拟和地震模拟,极大地帮助人类防灾和气候变化模拟。随着中国已发布的路线图构建下一代(EXA规模)的超级计算机,该计划(其处理器是基于新一代处理器)是最有前途的选择。为了实现更好的性能和电源效率,神威太湖之光计算芯片(sw26010处理器)完全抛弃数据缓存结构对其主要计算单位,为更多的计算单元的处理器节省空间。虽然是出于极致性能和功率效率的目的,这样的设计却使得内存带宽成为大多数程序的瓶颈。
在SW26010中,每个DMA事务以128字节为单位。如果单个DMA事务的长度小于128字节,或者内存访问没有对齐,则需要额外的DMA事务来完成相应的部分读取,虽然在实践应用中,程序尽可能实现每个内存需求是128字节的倍数,减少未对齐的存储器访问,但是由于边界区域的影响,程序不能总是保证对齐访问,使得DMA的实际带宽比理论峰值带宽低得多。
发明内容
本发明提供的无数据缓存结构的基于寄存器间通信的非对齐内存访问加速方法,以解决现有技术中因非对齐访存而导致的DMA实际带宽较低的问题。
为实现上述目的,本发明采取的技术方案为:
本发明提供的基于寄存器间通信的非对齐内存访问加速方法,包括:
存储在DMA中数据点集沿y方向分隔为m行数据点集行;
从核集群的一个x方向的m个从核从DMA中分别读取一行数据点集行;
每个从核利用寄存器通信将其读取的数据点集行中的属于相应从核部分的数据通信给相应从核;
其中,从核集群的x方向的从核个数为m;
m个从核需要读取的数据依次沿x方向排列构成数据点集存储在DMA中。
本发明提供的基于寄存器间通信的非对齐内存访问加速方法,优选地,每个从核所需读取的数据为X*Y的点阵数据;Y为m的整数倍;数据点集行中包含Y/m行的点阵数据行。
上述技术方案具有如下有点或者有益效果:
本发明通过分行读取与寄存器间通信相结合的方式,有效解决了现有技术中因非对齐访存而导致的DMA实际带宽较低的问题,降低了数据的总体访问量,减少非对齐内存访问次数,提升DMA带宽的利用率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。
图1是本发明实施例1提供的基于寄存器间通信的非对齐内存访问加速方法的流程示意图;
图2是本发明实施例1提供的基于寄存器间通信的非对齐内存访问加速方法的单个从核需读取数据示意图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
实施例1:
如图1~2所示,本发明实施例1提供的一种基于寄存器间通信的非对齐内存访问加速方法,包括:
S101:存储在DMA中数据点集沿y方向分隔为m行数据点集行;
S102:从核集群的一个x方向的m个从核从DMA中读取一行数据点集行;
S103:每个从核利用寄存器通信将其读取的数据点集行中的属于相应从核部分的数据通信给相应从核;
其中,从核集群的x方向的从核个数为m;
m个从核需要读取的数据依次沿x方向排列构成数据点集存储在DMA中。
本实施例1中的从核集群为8*8的从核集群,即m=8;每个从核需要读取的数据为X*Y(其中,Y=8)的点阵数据,如图2所示,每个从核读取的数据包括NX*NY的待计算点阵、设置在待计算点阵左侧的X1*NY的左边界点阵、设置在待计算点阵右侧的X2*NY的右边界点阵、设置在待计算点阵上方的NX*Y1的上边界点阵和设置在待计算点阵下方的NX*Y2的下边界点阵;X=NX+X1+X2,Y=NY+Y1+Y2。
现有技术中,每个从核分别需要从DMA中读取X*Y的数据,x方向的8个从核即需要读取8*(NX+X1+X2)*(NY+Y1+Y2)的数据量。而采用本发明个实施例1提供的方法,将数据点集分割成8行数据点集行,X方向的每个从核读取一行数据点集行,每个从核的数据量是(8*NX+X1+X2)*(NY+Y1+Y2)/8的数据量,x方向的8个从核需要读取(8*NX+X1+X2)*(NY+Y1+Y2)的数据量,其读取的数据量远远小于现有技术中的数据量,并且相对于现有技术中大幅降低了非对齐访问次数;然后通过寄存器件通信,每个从核将其读取的数据点集行中的属于相应从核部分的数据通信给相应从核,如从核0将从核1~从核7对应的带计算点阵、左边界点阵及右边界点阵涉及到的数据通过寄存器通信给相应的从核。
优选地,每个从核所需读取的数据为X*Y的点阵数据;Y为m的整数倍;数据点集行中包含Y/m行的点阵数据行。即在本实施中,Y不一定等于8,也即是说上文设计的数据点集行不一定仅指一行数据,其可能包含多行数据;例如,每个从核需要读取16*16的点阵数据,将该点阵数据y方向进行分割,每个数据点集行包括2行点阵数据行。
本领域技术人员应该理解,本领域技术人员结合现有技术以及上述实施例可以实现所述变化例,在此不予赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (2)
1.一种基于寄存器间通信的非对齐内存访问加速方法,其特征在于,包括:
存储在DMA中数据点集沿y方向分隔为m行数据点集行;
从核集群的一个x方向的m个从核从DMA中分别读取一行数据点集行;
每个从核利用寄存器通信将其读取的数据点集行中的属于相应从核部分的数据通信给相应从核;
其中,从核集群的x方向的从核个数为m;
m个从核需要读取的数据依次沿x方向排列构成数据点集存储在DMA中。
2.如权利要求1所述的基于寄存器间通信的非对齐内存访问加速方法,其特征在于,每个从核所需读取的数据为X*Y的点阵数据;Y为m的整数倍;数据点集行中包含Y/m行的点阵数据行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910022433.XA CN109766208A (zh) | 2019-01-10 | 2019-01-10 | 基于寄存器间通信的非对齐内存访问加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910022433.XA CN109766208A (zh) | 2019-01-10 | 2019-01-10 | 基于寄存器间通信的非对齐内存访问加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766208A true CN109766208A (zh) | 2019-05-17 |
Family
ID=66453774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910022433.XA Pending CN109766208A (zh) | 2019-01-10 | 2019-01-10 | 基于寄存器间通信的非对齐内存访问加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766208A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188462A (zh) * | 2019-05-29 | 2019-08-30 | 无锡恒鼎超级计算中心有限公司 | 基于神威架构的lbm算法优化方法 |
CN111368484A (zh) * | 2020-03-19 | 2020-07-03 | 山东大学 | 基于神威架构的宇宙n体数值模拟优化方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461716A (zh) * | 2014-12-29 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种多核异构系统的访问方法及多核异构系统 |
CN107168683A (zh) * | 2017-05-05 | 2017-09-15 | 中国科学院软件研究所 | 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 |
US20180217890A1 (en) * | 2017-02-01 | 2018-08-02 | International Business Machines Corporation | Coherency error detection and reporting in a processor |
-
2019
- 2019-01-10 CN CN201910022433.XA patent/CN109766208A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461716A (zh) * | 2014-12-29 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种多核异构系统的访问方法及多核异构系统 |
US20180217890A1 (en) * | 2017-02-01 | 2018-08-02 | International Business Machines Corporation | Coherency error detection and reporting in a processor |
CN107168683A (zh) * | 2017-05-05 | 2017-09-15 | 中国科学院软件研究所 | 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188462A (zh) * | 2019-05-29 | 2019-08-30 | 无锡恒鼎超级计算中心有限公司 | 基于神威架构的lbm算法优化方法 |
CN111368484A (zh) * | 2020-03-19 | 2020-07-03 | 山东大学 | 基于神威架构的宇宙n体数值模拟优化方法及系统 |
CN111368484B (zh) * | 2020-03-19 | 2022-04-15 | 山东大学 | 基于神威架构的宇宙n体数值模拟优化方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636273B (zh) | 一种带多级Cache的SIMD众核处理器上的稀疏矩阵存储方法 | |
CN103617150B (zh) | 一种基于gpu的大规模电力系统潮流并行计算的系统及其方法 | |
US11050248B2 (en) | Optimization model for quick track of SVSR boundary of power system | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN105512723A (zh) | 一种用于稀疏连接的人工神经网络计算装置和方法 | |
CN107169563A (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN105335331B (zh) | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 | |
CN103336758A (zh) | 一种稀疏矩阵的存储方法CSRL及基于该方法的SpMV实现方法 | |
CN109766208A (zh) | 基于寄存器间通信的非对齐内存访问加速方法 | |
CN105117170A (zh) | 一种计算机系统架构 | |
CN108694441A (zh) | 一种网络处理器和网络运算方法 | |
CN101937425A (zh) | 基于gpu众核平台的矩阵并行转置方法 | |
CN107402902A (zh) | 一种异构计算平台与基于异构计算平台的加速方法 | |
CN105373367A (zh) | 支持标向量协同工作的向量simd运算结构 | |
CN104915213A (zh) | 一种可重构系统的局部重构控制器 | |
CN106681697A (zh) | 一种cuda架构下目标访问计算并行实现方法 | |
CN103226977B (zh) | 基于fpga的快速nand flash控制器及其控制方法 | |
CN108334474A (zh) | 一种基于数据并行的深度学习处理器架构及方法 | |
CN117234720A (zh) | 动态可配置的存算融合数据缓存结构、处理器及电子设备 | |
Chen et al. | Carbon sequestration capacity of terrestrial vegetation in China based on satellite data | |
CN109739678A (zh) | 基于寄存器间通信的减少冗余读取方法 | |
CN109408148A (zh) | 一种国产化计算平台及其应用加速方法 | |
CN109800867A (zh) | 一种基于fpga片外存储器的数据调用方法 | |
CN115756605A (zh) | 一种基于多gpu的浅积云对流参数化方案异构计算方法 | |
CN109614086A (zh) | 基于SystemC的面向GPU纹理缓冲区数据存储TLM模型及实现结构 |
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 |