[发明专利]一种国产化计算平台及其应用加速方法有效
申请号: | 201811246260.1 | 申请日: | 2018-10-25 |
公开(公告)号: | CN109408148B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 赵明亮;王吕大;沈月峰 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 王雪芬 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 国产化 计算 平台 及其 应用 加速 方法 | ||
本发明涉及一种国产化计算平台及其应用加速方法,涉及计算机技术领域。本发明带FPGA异构加速卡的国产化计算平台,把应用所需要的运算分成两个部分,主机(CPU)部分和异构加速卡部分,主机部分主要负责执行流程的控制管理,异构加速卡则负责擅长的大规模并行计算,从而大大提高了整机系统的性能和能效比。
技术领域
本发明涉及计算机技术领域,具体涉及一种国产化计算平台及其应用加速方法。
背景技术
传统的通用国产化计算平台所有的运算都由主机(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;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811246260.1/2.html,转载请声明来源钻瓜专利网。