基于通用型制造技术

技术编号:39903434 阅读:9 留言:0更新日期:2023-12-30 13:18
本申请公开一种基于通用型

【技术实现步骤摘要】
基于通用型CPU的矩阵加速器架构


[0001]本申请涉及芯片领域,特别涉及一种基于通用型
CPU
的矩阵加速器架构


技术介绍

[0002]在现代信息工业中,
CPU
是基础的算力提供者,大多数的应用和算法都工作在
CPU
之上

而人工智能
(AI)
因为其有效性和高效率所以使用度日益广泛

在目前的技术路线上,
RISCV CPU
架构还没有直接支持矩阵的加速计算,或者只是通过基于矢量
(Vector)
扩展的软件解决方案,或者是通过非通用的特殊设计来实现加速计算,效率和灵活些都有所欠缺

[0003]采用外置
GPU
的方式可以一定程度上实现加速矩阵运算的效果,当需要
GPU

CPU
进行深度调配和算法协同,在数据吞吐和加速通用性上都不如通用型
CPU
,且大多数的加速器在矢量运算和矩阵运算上的协同性性和配合性都有待提高


技术实现思路

[0004]本申请提供一种基于通用型
CPU
的矩阵加速器架构,解决传统
CPU
处理矢量和矩阵加速运算时数据吞吐率和配置灵活性不高的问题

[0005]所述基于通用型
CPU
的矩阵加速器架构包括标量
CPU
核心

指令缓存<br/>ICache、
数据缓存
DCache、
矢量加速器及矩阵加速器;所述标量
CPU
核心分别与所述
ICache
及所述
DCache
之间通过高速总线连接,从所述
ICache
中读取加速指令,以及从所述
DCache
中读取和缓存加速数据;所述标量
CPU
核心
、ICache

DCache
组成
CPU
加速核,
CPU
加速核与所述矢量加速器及所述矩阵加速器之间通过高速总线连接,取址和译码后根据加速指令控制所述矢量加速器执行矢量运算,和
/
或控制所述矩阵加速器执行矩阵运算;所述矩阵加速器与所述矢量加速器分别与所述
DCache
连接,基于所述标量
CPU
核心的加速指令从所述
DCache
中读取对应加速数据及缓存加速结果;所述矩阵加速器与所述矢量加速器之间通过高速总线通讯连接,用于互相传递对方输出的中间加速结果,基于中间加速结果继续执行矩阵
/
矢量加速运算,并输出结果数据;所述矩阵加速器包括指令寄存器

第一数据分配器

宽位乘加器阵列和数据重组电路;所述指令寄存器与所述标量
CPU
核心对接,接收输入的加速指令并产生模式信号;所述模式信号用于控制所述第一数据分配器

宽位乘加器阵列及所述数据重组电路进入目标计算模式,并执行目标矩阵大小和数据位宽的乘加运算;所述第一数据分配器接收所述
DCache
的源数据输入,并根据所述模式信号将源数据按照矩阵大小排列成若干待计算的子数据,并送入到所述宽位乘加器阵列;所述宽位乘加器阵列包含若干可配置位宽大小的宽位乘加器,且可配置位宽大于
32
位,所述宽位乘加器通过总线互联,基于所述模式信号配置目标位宽并执行乘法运算;每个乘加输出对应至少一个矩阵元素;所述宽位乘加器的输出连接所述数据重组电路,所述数据重组电路接收所述宽位
乘加器阵列中各个所述宽位乘加器的乘加输出,根据所述模式信号将矩阵元素输出进行重组,获得结果矩阵,重组包括矩阵转置和行列变换

[0006]具体的,所述标量
CPU
核心

矩阵加速器与矢量加速器基于
RISCV Vector
开放指令集,控制所述矩阵加速器单独加速运行,或控制矢量加速器单独运行,或控制所述矩阵加速器与矢量加速器流水加速运行;所述矩阵加速器根据加速数据输入
/
输出
4x4

16x16
矩阵大小的整数型或浮点型矩阵数据;所述矢量加速器根据加速数据输入
/
输出
64bit

2048bit
矢量宽度的整数型或浮点型矢量数据;当所述矩阵加速器和矢量加速器分别流水加速运行时,输入输出的数据格式和位宽一致

[0007]具体的,所述第一数据分配器和所述宽位乘加器阵列之间还设置有矩阵寄存器组,且所述矩阵寄存器组中根据所述宽位乘加器的数量分配对应的寄存区,用于寄存从所述第一数据分配器输出的子数据,在所述宽位乘加器完成乘加输出后继续送入计算

[0008]具体的,所述宽位乘加器包括第二数据分配器

若干窄位乘加器

加法树和格式转换电路;其中的所述窄位乘加器的输入位宽为
32bit
,和加法树基于模式信号执行对应位宽的乘法和加法运算;所述第二数据分配器接收所述矩阵寄存器组中的子数据,将子数据按照所述窄位乘加器最大
32bit
输入位宽进行二次分配,每个所述窄位乘加器输入两个最大
32bit
的乘法数据,将矩阵对应位置的元素进行乘积求和;每个所述窄位乘加器输出两个乘法数据的乘积,相邻的所述窄位乘加器级联输入到所述加法树中进行逐级求和,输出乘加结果;所述格式转换电路接收所述加法树输出的乘加结果,将
32bit
的结果数据转换成目标位宽和格式的数据

[0009]具体的,所述窄位乘加器包括浮点运算电路和整数运算电路,根据模式信号启动整数运算或浮点运算;浮点运算电路包括第一分配器

浮点乘法器

浮点加法器和浮点格式转换电路;整数运算电路包括第二分配器

整数乘法器

整数加法器和整数格式转换电路;所述第一分配器和第二分配器基于模式信号,分别将输入的浮点型子数据送入
32bit
的所述浮点乘法器,将整形子数据送入
32bit
的整数乘法器;所述整数乘法器基于模式信号对所述第一分配器和第二分配器输出的两个
32bit
整形子数据进行乘积,将乘积结果送入所述整数加法器;所述浮点乘法器基于模式信号对所述第一分配器和第二分配器输出的两个
32bit
浮点型子数据进行乘积,将乘积结果送入所述浮点加法器;所述浮点乘法器由四个8位或两个
16
位的通用浮点乘法器组成,将各个8位或
16
位浮点乘法器输出值求和获得
64<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于通用型
CPU
的矩阵加速器架构,其特征在于,包括标量
CPU
核心

指令缓存
ICache、
数据缓存
DCache、
矢量加速器及矩阵加速器;所述标量
CPU
核心分别与所述
ICache
及所述
DCache
之间通过高速总线连接,从所述
ICache
中读取加速指令,以及从所述
DCache
中读取和缓存加速数据;所述标量
CPU
核心
、ICache

DCache
组成
CPU
加速核,
CPU
加速核与所述矢量加速器及所述矩阵加速器之间通过高速总线连接,取址和译码后根据加速指令控制所述矢量加速器执行矢量运算,和
/
或控制所述矩阵加速器执行矩阵运算;所述矩阵加速器与所述矢量加速器分别与所述
DCache
连接,基于所述标量
CPU
核心的加速指令从所述
DCache
中读取对应加速数据及缓存加速结果;所述矩阵加速器与所述矢量加速器之间通过高速总线通讯连接,用于互相传递对方输出的中间加速结果,基于中间加速结果继续执行矩阵
/
矢量加速运算,并输出结果数据;所述矩阵加速器包括指令寄存器

第一数据分配器

宽位乘加器阵列和数据重组电路;所述指令寄存器与所述标量
CPU
核心对接,接收输入的加速指令并产生模式信号;所述模式信号用于控制所述第一数据分配器

宽位乘加器阵列及所述数据重组电路进入目标计算模式,并执行目标矩阵大小和数据位宽的乘加运算;所述第一数据分配器接收所述
DCache
的源数据输入,并根据所述模式信号将源数据按照矩阵大小排列成若干待计算的子数据,并送入到所述宽位乘加器阵列;所述宽位乘加器阵列包含若干可配置位宽大小的宽位乘加器,且可配置位宽大于
32
位,所述宽位乘加器通过总线互联,基于所述模式信号配置目标位宽并执行乘法运算;每个乘加输出对应至少一个矩阵元素;所述宽位乘加器的输出连接所述数据重组电路,所述数据重组电路接收所述宽位乘加器阵列中各个所述宽位乘加器的乘加输出,根据所述模式信号将矩阵元素输出进行重组,获得结果矩阵,重组包括矩阵转置和行列变换
。2.
根据权利要求1所述的基于通用型
CPU
的矩阵加速器架构,其特征在于,所述标量
CPU
核心

矩阵加速器与矢量加速器基于
RISCV Vector
开放指令集,控制所述矩阵加速器单独加速运行,或控制矢量加速器单独运行,或控制所述矩阵加速器与矢量加速器流水加速运行;所述矩阵加速器根据加速数据输入
/
输出
4x4

16x16
矩阵大小的整数型或浮点型矩阵数据;所述矢量加速器根据加速数据输入
/
输出
64bit

2048bit
矢量宽度的整数型或浮点型矢量数据;当所述矩阵加速器和矢量加速器分别流水加速运行时,输入输出的数据格式和位宽一致
。3.
根据权利要求2所述的基于通用型
CPU
的矩阵加速器架构,其特征在于,所述第一数据分配器和所述宽位乘加器阵列之间还设置有矩阵寄存器组,且所述矩阵寄存器组中根据所述宽位乘加器的数量分配对应的寄存区,用于寄存从所述第一数据分配器输出的子数据,在所述宽位乘加器完成乘加输出后继续送入计算
。4.
根据权利要求3所述的基于通用型
CPU
的矩阵加速器架构,其特征在于,所述宽位乘加器包括第二数据分配器

若干窄位乘加器

加法树和格式转换电路;其中的所述窄位乘加器的输入位宽为
32bit
,和加法树基于模式信号执行对应位宽的乘法和加法运算;所述第二数据分配器接收所述矩阵寄存器组中的子数据,将子数据按照所述窄位乘加
器最大
32bit
输入位宽进行二次分配,每个所述窄位乘加器输入两个最大
32bit
的乘法数据,将矩阵对应位置的元素进行乘积求和;每个所述窄位乘加器输出两个乘法数据的乘积,相邻的所述窄位乘加器级联输入到所述加法树中进行逐级求和,输出乘加结果;所述格式转换电路接收所述加法树输出的乘加结果,将
32bit
的结果数据转换成目标位宽和格式的数据
。5.<...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:深存科技无锡有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1