CN112559435A - 基于片上分块的大规模三维矩阵转置的众核并行优化方法 - Google Patents
基于片上分块的大规模三维矩阵转置的众核并行优化方法 Download PDFInfo
- Publication number
- CN112559435A CN112559435A CN201910918612.1A CN201910918612A CN112559435A CN 112559435 A CN112559435 A CN 112559435A CN 201910918612 A CN201910918612 A CN 201910918612A CN 112559435 A CN112559435 A CN 112559435A
- Authority
- CN
- China
- Prior art keywords
- core
- size
- transposition
- many
- chip
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17387—Three dimensional, e.g. hypercubes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开一种基于片上分块的大规模三维矩阵转置的众核并行优化方法,包括以下步骤:S1、根据三维数组的最高维对每个从核的任务进行划分,利用异构众核访存接口实现数据的快速传输;S2、利用片上加速接口对矩阵进行分块,通过片上加速接口对每个分块进行加速运算。本发明将三维数组进行片上分块,利用异构众核架构对分块进行并行加速,实现高效的数组转置,适用于绝大多数数值计算中需要对大规模三维矩阵转置的众多工程应用软件,极大的提高程序整体性能。
Description
技术领域
本发明属于数值计算技术领域,尤其涉及一种基于片上分块的大规模三维矩阵转置的众核并行优化方法。
背景技术
近年随着高性能计算的发展,众多工程应用软件对数值计算性能追求越来越高。在数值求解过程中,往往需要用到大量的矩阵转置操作,即多维数组的转置。高效的数组转置算法可以极大提高程序整体性能。实现异构众核架构上数组的快速转置。
实现数组转置的一般方法是建立一个三维数组的副本,通过交换数组下标的方法对数组进行转置。采用这种方法会产生大量的不连续访存,极大的影响性能。
发明内容
本发明目的在于提供一种基于片上分块的大规模三维矩阵转置的众核并行优化方法,该众核并行优化方法解决通用算法在异构众核架构下效率低下问题,实现异构众核架构上的三维矩阵的快速转置。
为达到上述目的,本发明采用的技术方案是:一种基于片上分块的大规模三维矩阵转置的众核并行优化方法,包括以下步骤:
S1、按三维数组中最不连续的一维即最高维进行分块,分块过程如下:假设三维数组三个维度的大小分别为L、M、N,且在内存中优先存储大小为N的那一维数据,则大小为L的那一维是最不连续的一维即最高维;对L进行分块,要求分成的每一块的大小,假设为l,与其余两维大小的乘积不超过异构众核架构中每个计算核心的缓存大小,即l×M×N不超过异构众核架构中每个计算核心的缓存大小,若超过,则将分块大小设为1;
S2、每个计算核心根据S1中的分块结果和自己的编号计算自己计算的数据在异构众核架构的控制核心的内存中的位置,并从控制核心的内存中将数据加载到自己的缓存中;
S3、每个计算核心计算S2中加载到自己缓存的数据,计算时依次计算分块的那一维,即S1中的l上的每一个值对应的二维矩阵,即S1中的M×N;
S31、在计算一个M×N时,对其按8×8进行分块,对每个8×8分块利用异构众核片上快速转置接口进行转置运算;
S32、在分块过程中,若M不能被8整除,设m为M被8除的余数,则对M×N分块中(M-m)×N的部分直接进行转置运算,不使用异构众核片上快速转置接口;
S33、若N不能被8整除,则对M×N分块中8×(N-8)的部分使用异构众核片上快速转置接口进行转置运算;
S4、计算核心完成自己缓存上所有数据的转置运算后,将运算结果写回控制核心的内存中的对应位置;
S5、重复S2到S4直到完成整个三维矩阵转置运算。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明基于片上分块的大规模三维矩阵转置的众核并行优化方法,该众核并行优化方法将三维数组进行片上分块,利用异构众核架构对分块进行并行加速,实现高效的数组转置,适用于绝大多数数值计算中需要对大规模三维矩阵转置的众多工程应用软件,极大的提高程序整体性能。
附图说明
附图1为本发明4*4矩阵转置示意图;
附图2为本发明8*8矩阵的转置过程示意图;
附图3为本发明大规模三维矩阵转置的众核并行优化方法流程图。
具体实施方式
下面结合实施例对本发明作进一步描述:
实施例:一种基于片上分块的大规模三维矩阵转置的众核并行优化方法,包括以下步骤:
S1、按三维数组中最不连续的一维即最高维进行分块,分块过程如下:假设三维数组三个维度的大小分别为L、M、N,且在内存中优先存储大小为N的那一维数据,则大小为L的那一维是最不连续的一维即最高维;对L进行分块,要求分成的每一块的大小,假设为l,与其余两维大小的乘积不超过异构众核架构中每个计算核心的缓存大小,即l×M×N不超过异构众核架构中每个计算核心的缓存大小,若超过,则将分块大小设为1;
S2、每个计算核心根据S1中的分块结果和自己的编号计算自己计算的数据在异构众核架构的控制核心的内存中的位置,并从控制核心的内存中将数据加载到自己的缓存中;
S3、每个计算核心计算S2中加载到自己缓存的数据,计算时依次计算分块的那一维,即S1中的l上的每一个值对应的二维矩阵,即S1中的M×N;
S31、在计算一个M×N时,对其按8×8进行分块,对每个8×8分块利用异构众核片上快速转置接口进行转置运算;
S32、在分块过程中,若M不能被8整除,设m为M被8除的余数,则对M×N分块中(M-m)×N的部分直接进行转置运算,不使用异构众核片上快速转置接口;
S33、若N不能被8整除,则对M×N分块中8×(N-8)的部分使用异构众核片上快速转置接口进行转置运算;
S4、计算核心完成自己缓存上所有数据的转置运算后,将运算结果写回控制核心的内存中的对应位置;
S5、重复S2到S4直到完成整个三维矩阵转置运算。
本发明上述内容进一步解释如下:
以4*4 矩阵为例,一个分块加速运算过程如图1,4*4矩阵通过片上加速接口,一共使用2次调用就可以实现4*4矩阵的转置。
8*8矩阵转置可以利用4*4矩阵转置的结果多用一次接口调用就可以实现8*8矩阵的转置,转置过程如图2所示,图2为初始矩阵、中间矩阵以及转置后矩阵。
经测试,与数组转置的一般方法相比,64*100*100规模的矩阵转置可以实现20倍的加速。
采用上述基于片上分块的大规模三维矩阵转置的众核并行优化方法时,其基于片上分块算法的异构众核快速矩阵转置算法,适用于绝大多数数值计算中需要对大规模三维矩阵转置的众多工程应用软件,极大提高性能。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
离散访存:英文为Discrete to Access Memory,数值计算中对数组下标的不连续访问,导致频繁读写内存,进而影响计算效率。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于片上分块的大规模三维矩阵转置的众核并行优化方法,其特征在于:包括以下步骤:
S1、按三维数组中最不连续的一维,即最高维进行分块,分块过程如下:假设三维数组三个维度的大小分别为L、M、N,且在内存中优先存储大小为N的那一维数据,则大小为L的那一维是最不连续的一维即最高维;对L进行分块,要求分成的每一块的大小,假设为l,与其余两维大小的乘积不超过异构众核架构中每个计算核心的缓存大小,即l×M×N不超过异构众核架构中每个计算核心的缓存大小,若超过,则将分块大小设为1;
S2、每个计算核心根据S1中的分块结果和自己的编号,计算自己计算的数据在异构众核架构的控制核心的内存中的位置,并从控制核心的内存中将数据加载到自己的缓存中;
S3、每个计算核心计算S2中加载到自己缓存的数据,计算时依次计算分块的那一维,即S1中的l上的每一个值对应的二维矩阵,即S1中的M×N;
S31、在计算一个M×N时,对其按8×8进行分块,对每个8×8分块利用异构众核片上快速转置接口进行转置运算;
S32、在分块过程中,若M不能被8整除,设m为M被8除的余数,则对M×N分块中(M-m)×N的部分直接进行转置运算,不使用异构众核片上快速转置接口;
S33、若N不能被8整除,则对M×N分块中8×(N-8)的部分使用异构众核片上快速转置接口进行转置运算;
S4、计算核心完成自己缓存上所有数据的转置运算后,将运算结果写回控制核心的内存中的对应位置;
S5、重复S2到S4直到完成整个三维矩阵转置运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910918612.1A CN112559435A (zh) | 2019-09-26 | 2019-09-26 | 基于片上分块的大规模三维矩阵转置的众核并行优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910918612.1A CN112559435A (zh) | 2019-09-26 | 2019-09-26 | 基于片上分块的大规模三维矩阵转置的众核并行优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559435A true CN112559435A (zh) | 2021-03-26 |
Family
ID=75029962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910918612.1A Withdrawn CN112559435A (zh) | 2019-09-26 | 2019-09-26 | 基于片上分块的大规模三维矩阵转置的众核并行优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559435A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100023728A1 (en) * | 2008-07-25 | 2010-01-28 | International Business Machines Corporation | Method and system for in-place multi-dimensional transpose for multi-core processors with software-managed memory hierarchy |
CN103226487A (zh) * | 2013-04-25 | 2013-07-31 | 中国人民解放军信息工程大学 | 面向异构众核多级存储结构的数据分布与局部性优化方法 |
-
2019
- 2019-09-26 CN CN201910918612.1A patent/CN112559435A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100023728A1 (en) * | 2008-07-25 | 2010-01-28 | International Business Machines Corporation | Method and system for in-place multi-dimensional transpose for multi-core processors with software-managed memory hierarchy |
CN103226487A (zh) * | 2013-04-25 | 2013-07-31 | 中国人民解放军信息工程大学 | 面向异构众核多级存储结构的数据分布与局部性优化方法 |
Non-Patent Citations (2)
Title |
---|
WEI ZHENHUA 等: "《Parallel Optimization Strategy of Heap Sort Algorithm under Multi-core Environment》", 《2015 SEVENTH INTERNATIONAL CONFERENCE ON MEASURING TECHNOLOGY AND MECHATRONICS AUTOMATION》 * |
倪鸿 等: "《基于神威·太湖之光的非结构网格众核优化技术》", 《计算机工程》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
George et al. | Solution of sparse linear least squares problems using Givens rotations | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
CN103970720B (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN109145255B (zh) | 一种稀疏矩阵lu分解行更新的异构并行计算方法 | |
CN114385972B (zh) | 一种直接求解结构化三角稀疏线性方程组的并行计算方法 | |
US20240119114A1 (en) | Matrix Multiplier and Matrix Multiplier Control Method | |
CN111859277B (zh) | 一种稀疏矩阵向量乘法向量化实现方法 | |
CN115983348A (zh) | 支持卷积神经网络扩展指令的risc-v加速器系统 | |
CN112560356A (zh) | 面向众核架构的稀疏矩阵向量乘众核优化方法 | |
CN103593304B (zh) | 基于并行设备模型的高效使用缓存的量化方法 | |
CN111651208B (zh) | 面向异构众核并行计算机的模态并行计算方法及系统 | |
CN118210624A (zh) | 基于cuda的gpu并行有限单元法 | |
CN104615516A (zh) | 面向GPDSP的大规模高性能Linpack测试基准实现的方法 | |
CN116070552B (zh) | 无粘通量的计算方法、装置、终端设备及存储介质 | |
CN117234720A (zh) | 动态可配置的存算融合数据缓存结构、处理器及电子设备 | |
CN112559435A (zh) | 基于片上分块的大规模三维矩阵转置的众核并行优化方法 | |
CN109271344B (zh) | 基于申威芯片架构并行文件读取的数据预处理方法 | |
CN100483396C (zh) | 一种电子数据表、电子数据表的单元的计算方法和装置 | |
CN110555793A (zh) | 高效的深度卷积实现方法及包括该方法的视觉处理方法 | |
CN113900808B (zh) | 一种基于任意多面体非结构网格的mpi并行数据结构 | |
CN115906684A (zh) | 面向申威架构的流体动力学多重网格求解器并行优化方法 | |
CN114218737A (zh) | 一种基于国产众核架构的pom海洋模式众核优化方法 | |
Zhang et al. | A High-Efficient and Configurable Hardware Accelerator for Convolutional Neural Network | |
CN115905778B (zh) | 一种基于量子计算的线性方程加速方法及系统 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210326 |