CN112559435A - 基于片上分块的大规模三维矩阵转置的众核并行优化方法 - Google Patents

基于片上分块的大规模三维矩阵转置的众核并行优化方法 Download PDF

Info

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
Application number
CN201910918612.1A
Other languages
English (en)
Inventor
王礼生
孙唯哲
王臻
陈德训
刘鑫
赵朋朋
李芳�
陈鑫
郭恒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910918612.1A priority Critical patent/CN112559435A/zh
Publication of CN112559435A publication Critical patent/CN112559435A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17387Three 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直到完成整个三维矩阵转置运算。
CN201910918612.1A 2019-09-26 2019-09-26 基于片上分块的大规模三维矩阵转置的众核并行优化方法 Withdrawn CN112559435A (zh)

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)

* Cited by examiner, † Cited by third party
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 中国人民解放军信息工程大学 面向异构众核多级存储结构的数据分布与局部性优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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