[发明专利]基于FPGA的通用浮点矩阵处理器硬件结构在审
申请号: | 201410690022.5 | 申请日: | 2014-11-25 |
公开(公告)号: | CN104391820A | 公开(公告)日: | 2015-03-04 |
发明(设计)人: | 谷梦媛;王文强;汪玉;郭开元;杨华中 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F15/78 | 分类号: | G06F15/78 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张大威 |
地址: | 100084 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 通用 浮点 矩阵 处理器 硬件 结构 | ||
1.一种基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,包括:
多个矩阵运算加速器,所述多个矩阵运算加速器用于支持三级BLAS库中包含的“矩阵-矩阵”运算;
多个共享矩阵缓存,所述多个共享矩阵缓存用于为所述多个矩阵运算加速器提供通用的存储空间且支持所述多个矩阵运算加速器间片上高速通信;
主处理器,所述主处理器用于发送指令,对存储在外存上的大规模矩阵进行分层矩阵运算的调度及地址计算;
指令分发器,所述指令分发器用于检查指令对加速器是否存在占用冲突;
直接存取控制器,所述直接存取控制器完成外部存储器或主处理器与共享矩阵缓存间的数据传输;
仲裁器,所述仲裁器用于在多个矩阵运算加速器及其所需的数据访问模式的缓存端口间进行数据分发;
外部存储器,所述外部存储器用于为大规模矩阵提供存储空间,为对加速器发生占用冲突的指令提供缓冲;
内存管理单元,所述内存管理单元为多个模块提供外部存储器访问接口。
2.如权利要求1所述的基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,所述多个共享矩阵缓存为所述多个矩阵运算加速器提供通用的矩阵存储空间,所述多个共享矩阵缓存支持多种二维数据访问模式,以替代所述多个矩阵运算加速器中的独立缓存。
3.如权利要求1所述的基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,所述多个矩阵运算加速器用于实现矩阵初始化、数组操作和矩阵乘法三类操作,并且涵盖了所述三级BLAS库中所包含的运算类型。
4.如权利要求1所述的基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,所述主处理器与所述多个矩阵运算加速器协同工作,采用分层的矩阵运算机制以支持对存储在外部存储器上的大规模矩阵进行运算,其中,所述主处理器进行高层次的运算调度,所述多个矩阵运算加速器对缓存中的数据进行底层运算。
5.如权利要求1所述的基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,通过地址转换器将二维矩阵空间投影到多个一维块RAM组成的存储空间,所述二维矩阵被分割成为多个窗,每个窗中的全部元素被存储在不同块RAM的相同地址中,其中,窗口的尺寸为Hwin×Wwin,二维矩阵的宽度是Wmat,从二维矩阵的位置坐标到其在块RAM中的存储地址转换公式为:
ID=y%Hwin×Wwin+x%Wwin
其中,ID表示该数据所存储的块RAM的编号,ADDR表示在编号为ID的块RAM中的存储地址。
6.如权利要求1所述的基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,所述外部存储器中的大规模矩阵被分割为多个可以存储在缓存中的块矩阵,所述主处理器依照矩阵运算规则发送指令将各个块矩阵读入缓存,所述矩阵运算加速器对缓存中的数据进行计算,所述主处理器将计算结果写回外部存储器中。
7.如权利要求1所述的基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,采用乒乓缓存策略提高大规模矩阵分层乘法的运算速度,其中,所述多个共享矩阵缓存中的共享矩阵缓存被划分为六个区域,三个ping缓存区存储的矩阵用于乘法操作,与此同时三个pong缓存区可用于累加及数据传输操作。
8.如权利要求1所述的基于FPGA的通用浮点矩阵处理器硬件结构,其特征在于,采用异步指令执行机制以降低所述主处理器的工作量,其中,所述主处理器可发送多条指令后进行其他必要的计算任务,而所述指令分发器对指令的冲突关系进行检查及调度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410690022.5/1.html,转载请声明来源钻瓜专利网。