CN109408148B - 一种国产化计算平台及其应用加速方法 - Google Patents

一种国产化计算平台及其应用加速方法 Download PDF

Info

Publication number
CN109408148B
CN109408148B CN201811246260.1A CN201811246260A CN109408148B CN 109408148 B CN109408148 B CN 109408148B CN 201811246260 A CN201811246260 A CN 201811246260A CN 109408148 B CN109408148 B CN 109408148B
Authority
CN
China
Prior art keywords
heterogeneous accelerator
accelerator card
matrix
memory
sub
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
Application number
CN201811246260.1A
Other languages
English (en)
Other versions
CN109408148A (zh
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.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
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 Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201811246260.1A priority Critical patent/CN109408148B/zh
Publication of CN109408148A publication Critical patent/CN109408148A/zh
Application granted granted Critical
Publication of CN109408148B publication Critical patent/CN109408148B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种国产化计算平台及其应用加速方法,涉及计算机技术领域。本发明带FPGA异构加速卡的国产化计算平台,把应用所需要的运算分成两个部分,主机(CPU)部分和异构加速卡部分,主机部分主要负责执行流程的控制管理,异构加速卡则负责擅长的大规模并行计算,从而大大提高了整机系统的性能和能效比。

Description

一种国产化计算平台及其应用加速方法
技术领域
本发明涉及计算机技术领域,具体涉及一种国产化计算平台及其应用加速方法。
背景技术
传统的通用国产化计算平台所有的运算都由主机(CPU)来完成,因此在面对CPU并不擅长的复杂运算时就显得非常吃力,严重影响了用户的使用体验,导致其难以应用在需要高性能和高能效比的应用场合。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种国产化计算平台及其应用加速方法,大大提高其性能和能效比。
(二)技术方案
为了解决上述技术问题,本发明提供了一种国产化计算平台,包括主机端和利用FPGA实现的异构加速卡;
所述主机端用于首先查询异构加速卡的类型和数量,根据查询到的异构加速卡信息创建执行环境;然后把可执行的矩阵乘法AOCX格式算法文件写入异构加速卡,完成异构加速卡的配置;接着分配异构加速卡内存,把要计算的数据写入异构加速卡内存;还用于读取异构加速卡内存的运算结果;
所述异构加速卡用于对内部的计算资源进行组织,多线程并发执行计算过程。
本发明还提供了一种利用所述的国产化计算平台实现应用加速的方法,包括以下步骤:
所述主机端首先查询异构加速卡的类型和数量,根据查询到的异构加速卡信息创建执行环境;然后把可执行的矩阵乘法AOCX格式算法文件写入异构加速卡,完成异构加速卡的配置;接着分配异构加速卡内存,把要计算的数据写入异构加速卡内存;
所述异构加速卡对内部的计算资源进行组织,多线程并发执行计算过程;
所述主机端读取异构加速卡内存的运算结果。
优选地,若所述主机端写入异构加速卡内存的数据为矩阵A、矩阵B的数据;则异构加速卡把内部的计算资源组织成工作组与工作项阵列,每一个工作项计算矩阵C的一个元素,多线程并发执行;每个工作项都计算完成后,完成计算矩阵A、矩阵B乘积的任务;然后主机读取异构加速卡内存的运算结果。
优选地,所述异构加速卡把内部的计算资源组织成工作组与工作项阵列,每一个工作项计算矩阵C的一个元素,多线程并发执行的步骤具体为:
每个工作组计算一个方阵sub,sub是C的一部分,而工作组内的每个工作项计算sub的一个元素,sub等于两个长方形矩阵的乘积:设矩阵A的长方形的子矩阵尺寸是(X,K),X行K列,矩阵B的长方形的子矩阵的尺寸是(K,X),K行X列,将两个长方形的子矩阵分割成尺寸为(X,X)的方阵,sub是对这些方阵积求和,将工作组大小设置为X*X,工作组中的每个工作项只保存sub的一个元素;
设代码by、bx分别表示当前工作组的行、列索引,也表示当前工作组要计算的矩阵分块索引,代码ty、tx分别表示当前工作组内的工作项的行、列索引,也表示当前工作组要计算的矩阵的元素索引;
每个sub的具体计算流程为:
以一个工作项载入一个数据的方式从全局存储器中将两个对应的sub载入局部存储器中,同步以保证计算结果已写入局部存储器;
一个工作项计算乘积的一个元素,并将结果保存在寄存器中,循环这一步直到计算完两个尺寸为(X,X)的方阵中的对应数据;
同步保证工作组内所有工作项都已使用完加载进局部存储器的数据,循环直到计算完当前sub;
将每个工作项的寄存器中的结果写入全局存储器。
(三)有益效果
本发明带FPGA异构加速卡的国产化计算平台,把应用所需要的运算分成两个部分,主机(CPU)部分和异构加速卡部分,主机部分主要负责执行流程的控制管理,异构加速卡则负责擅长的大规模并行计算,从而大大提高了整机系统的性能和能效比。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合实施例,对本发明的具体实施方式作进一步详细描述。
本发明提供了一种国产化计算平台,包括主机端和利用FPGA实现的异构加速卡;
所述主机端用于首先查询异构加速卡的类型和数量,根据查询到的异构加速卡信息创建执行环境;然后把可执行的矩阵乘法AOCX格式算法文件写入异构加速卡,完成异构加速卡的配置;接着分配异构加速卡内存,把要计算的数据写入异构加速卡内存;还用于读取异构加速卡内存的运算结果;
所述异构加速卡用于对内部的计算资源进行组织,多线程并发执行计算过程。
本发明还提供了一种利用所述的国产化计算平台实现应用加速的方法,包括以下步骤:
所述主机端首先查询异构加速卡的类型和数量,根据查询到的异构加速卡信息创建执行环境;然后把可执行的矩阵乘法AOCX格式算法文件写入异构加速卡,完成异构加速卡的配置;接着分配异构加速卡内存,把要计算的数据写入异构加速卡内存;
所述异构加速卡对内部的计算资源进行组织,多线程并发执行计算过程;
所述主机端读取异构加速卡内存的运算结果。
若所述主机端写入异构加速卡内存的数据为矩阵A、矩阵B的数据;则异构加速卡把内部的计算资源组织成工作组与工作项阵列,每一个工作项计算矩阵C的一个元素,多线程并发执行,这样相当于把矩阵乘法这个大任务分配给多个运算单元来并行执行,大大缩短了运算时间;每个工作项都计算完成后,完成计算矩阵A、矩阵B乘积的任务;然后主机读取异构加速卡内存的运算结果。
所述异构加速卡把内部的计算资源组织成工作组与工作项阵列,每一个工作项计算矩阵C的一个元素,多线程并发执行的步骤具体为:
每个工作组计算一个小方阵sub,sub是C的一部分,而工作组内的每个工作项计算sub的一个元素,sub等于两个长方形矩阵的乘积:设矩阵A的长方形的子矩阵尺寸是(X,K),X行K列,矩阵B的长方形的子矩阵的尺寸是(K,X),K行X列,为了解决局部存储器量不足的问题,满足设备的资源,再次使用分块处理的思想,将两个长方形的子矩阵分割成尺寸为(X,X)的方阵,sub是对这些方阵积求和,为了方便计算,将工作组大小设置为X*X,这样就无须显式地保存sub,工作组中的每个工作项只保存sub的一个元素即可;
设代码by、bx分别表示当前工作组的行、列索引,也表示当前工作组要计算的小矩阵分块索引,代码ty、tx分别表示当前工作组内的工作项的行、列索引,也表示当前工作组要计算的小矩阵的元素索引;
每个sub的具体计算流程为:
以一个工作项载入一个数据的方式从全局存储器中将两个对应的sub载入局部存储器中,同步以保证计算结果已写入局部存储器(如以下代码中的code1、code2);
一个工作项计算乘积的一个元素,并将结果保存在寄存器中,循环这一步直到计算完两个尺寸为(X,X)的方阵中的对应数据(如以下代码中的code3);
同步保证工作组内所有工作项都已使用完加载进局部存储器的数据,循环(在如下代码中为循环外层for)直到计算完当前sub;
将每个工作项的寄存器中的结果写入全局存储器(如以下代码中的code4)。
经过测试,当A、B矩阵大小均为4096X 4096时,使用异构加速卡计算两矩阵相乘的时间比单独的国产化计算平台小两个数量级。
根据上述运算法则编写矩阵乘法OpenCL内核程序如下:
Figure BDA0001840586920000051
Figure BDA0001840586920000061
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (1)

1.一种利用国产化计算平台实现应用加速的方法,其特征在于,
该国产化计算平台包括主机端和利用FPGA实现的异构加速卡;
所述主机端用于首先查询异构加速卡的类型和数量,根据查询到的异构加速卡信息创建执行环境;然后把可执行的矩阵乘法AOCX格式算法文件写入异构加速卡,完成异构加速卡的配置;接着分配异构加速卡内存,把要计算的数据写入异构加速卡内存;还用于读取异构加速卡内存的运算结果;
所述异构加速卡用于对内部的计算资源进行组织,多线程并发执行计算过程;
该方法包括以下步骤:
所述主机端首先查询异构加速卡的类型和数量,根据查询到的异构加速卡信息创建执行环境;然后把可执行的矩阵乘法AOCX格式算法文件写入异构加速卡,完成异构加速卡的配置;接着分配异构加速卡内存,把要计算的数据写入异构加速卡内存;
所述异构加速卡对内部的计算资源进行组织,多线程并发执行计算过程;
所述主机端读取异构加速卡内存的运算结果;
若所述主机端写入异构加速卡内存的数据为矩阵A、矩阵B的数据;则异构加速卡把内部的计算资源组织成工作组与工作项阵列,每一个工作项计算矩阵C的一个元素,多线程并发执行;每个工作项都计算完成后,完成计算矩阵A、矩阵B乘积的任务;然后主机读取异构加速卡内存的运算结果;
所述异构加速卡把内部的计算资源组织成工作组与工作项阵列,每一个工作项计算矩阵C的一个元素,多线程并发执行的步骤具体为:
每个工作组计算一个方阵sub,sub是C的一部分,而工作组内的每个工作项计算sub的一个元素,sub等于两个长方形矩阵的乘积:设矩阵A的长方形的子矩阵尺寸是(X,K),X行K列,矩阵B的长方形的子矩阵的尺寸是(K,X),K行X列,将两个长方形的子矩阵分割成尺寸为(X,X)的方阵,sub是对这些方阵积求和,将工作组大小设置为X*X,工作组中的每个工作项只保存sub的一个元素;
设代码by、bx分别表示当前工作组的行、列索引,也表示当前工作组要计算的矩阵分块索引,代码ty、tx分别表示当前工作组内的工作项的行、列索引,也表示当前工作组要计算的矩阵的元素索引;
每个sub的具体计算流程为:
以一个工作项载入一个数据的方式从全局存储器中将两个对应的sub载入局部存储器中,同步以保证计算结果已写入局部存储器;
一个工作项计算乘积的一个元素,并将结果保存在寄存器中,循环这一步直到计算完两个尺寸为(X,X)的方阵中的对应数据;
同步保证工作组内所有工作项都已使用完加载进局部存储器的数据,循环直到计算完当前sub;
将每个工作项的寄存器中的结果写入全局存储器。
CN201811246260.1A 2018-10-25 2018-10-25 一种国产化计算平台及其应用加速方法 Active CN109408148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811246260.1A CN109408148B (zh) 2018-10-25 2018-10-25 一种国产化计算平台及其应用加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811246260.1A CN109408148B (zh) 2018-10-25 2018-10-25 一种国产化计算平台及其应用加速方法

Publications (2)

Publication Number Publication Date
CN109408148A CN109408148A (zh) 2019-03-01
CN109408148B true CN109408148B (zh) 2021-06-08

Family

ID=65469576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811246260.1A Active CN109408148B (zh) 2018-10-25 2018-10-25 一种国产化计算平台及其应用加速方法

Country Status (1)

Country Link
CN (1) CN109408148B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262887B (zh) * 2019-06-26 2022-04-01 北京邮电大学 基于特征识别的cpu-fpga任务调度方法及装置
CN113076217B (zh) * 2021-04-21 2024-04-12 扬州万方科技股份有限公司 基于国产平台的磁盘故障预测方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102890642A (zh) * 2011-12-23 2013-01-23 同济大学 基于匹配矩阵的异构重构计算的性能分析方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140289445A1 (en) * 2013-03-22 2014-09-25 Antony Savich Hardware accelerator system and method
CN104731729B (zh) * 2015-03-23 2018-07-13 华为技术有限公司 一种基于异构系统的表连接优化方法、cpu和加速器
CN104866286B (zh) * 2015-06-02 2018-05-01 电子科技大学 一种基于OpenCL与SoC-FPGA的K近邻分类加速方法
CN105956666B (zh) * 2016-04-29 2018-09-07 浪潮(北京)电子信息产业有限公司 一种机器学习方法及系统
CN106020425A (zh) * 2016-05-27 2016-10-12 浪潮(北京)电子信息产业有限公司 一种fpga异构加速计算系统
CN107402902A (zh) * 2017-07-31 2017-11-28 郑州云海信息技术有限公司 一种异构计算平台与基于异构计算平台的加速方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102890642A (zh) * 2011-12-23 2013-01-23 同济大学 基于匹配矩阵的异构重构计算的性能分析方法

Also Published As

Publication number Publication date
CN109408148A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
US20140258689A1 (en) Processor for large graph algorithm computations and matrix operations
US11586577B2 (en) Autonomous memory architecture
US9886418B2 (en) Matrix operands for linear algebra operations
US20200159810A1 (en) Partitioning sparse matrices based on sparse matrix representations for crossbar-based architectures
CN108170639B (zh) 基于分布式环境的张量cp分解实现方法
US9946539B1 (en) Accessing data in multi-dimensional tensors using adders
CN109145255B (zh) 一种稀疏矩阵lu分解行更新的异构并行计算方法
CN109408148B (zh) 一种国产化计算平台及其应用加速方法
US10120717B2 (en) Method for optimizing the size of a data subset of a processing space for improved execution performance
CN101980182A (zh) 基于矩阵运算的并行计算方法
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
US20140196043A1 (en) System and method for re-factorizing a square matrix into lower and upper triangular matrices on a parallel processor
WO2021036729A1 (zh) 一种矩阵运算方法、运算装置以及处理器
EP4095719A1 (en) Sparse matrix multiplication in hardware
CN113435569A (zh) 使用每通道卷积运算的流水线逐点卷积
US10013393B2 (en) Parallel computer system, parallel computing method, and program storage medium
US8938484B2 (en) Maintaining dependencies among supernodes during repeated matrix factorizations
US9600446B2 (en) Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof
CN111712811A (zh) Hd地图的可扩展图形slam
CN115424114A (zh) 图像处理方法及装置、图像处理模型的训练方法及装置
CN114968182A (zh) 用于存算一体芯片的算子拆分方法、控制方法和装置
CN114466012A (zh) 内容初始化方法、装置、电子设备和存储介质
CN105045565A (zh) 适合分布式并行计算的PBiCOR方法
CN103049487B (zh) 用于连续化矩阵数据元素标识的方法和系统
CN105068971A (zh) 一种向量点积的OpenCL自动化实现方法

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