一种精简数据流指令集处理器制造技术

技术编号:39655461 阅读:7 留言:0更新日期:2023-12-09 11:24
本发明专利技术公开了一种精简数据流指令集处理器,包含片上存储器

【技术实现步骤摘要】
一种精简数据流指令集处理器


[0001]本专利技术通用处理器领域,尤其涉及一种精简数据流指令集处理器,该处理器面向计算图模型完成张量数据的高效计算,是一种可用于神经网络计算的通用处理器


技术介绍

[0002]CPU、GPU、DSP
等传统处理器,采用指令流计算方式,也即通过连续不断地读取指令,并根据指令完成相应操作的计算方式

传统处理器以“指令”为最小粒度定义功能,并通过“指令集”的方式定义处理器的行为

用户使用高级语言编程
(
例如
C
语言
)
,使用编译器
(
例如
GCC
编译器
)
将高级语言转换成指令,从而驱动
CPU、GPU、DSP
等传统处理器通过执行指令实现由高级语言所定义的功能

[0003]相对于传统指令流计算体系,数据流计算体系采用另一种完全不同的工作方式:数据流计算体系在计算时通过少量指令配置成特定功能,通过连续不断地读取数据

处理数据并写出数据的方式实现计算功能

数据流计算体系所能实现的平均每周期运算量可高达数十万个,远大于指令流计算体系

有关指令流计算与数据流计算的直观对比,如图1所示

[0004]指令流计算适合于控制优先的任务,长久以来,人类计算机以控制任务需求为主

因此,以
CPU
为代表的指令流计算技术在过去的几十年间得到了长足的进步,出现了
CISC
复杂指令集
、RISC
精简指令集等技术体系,并产生了
X86、ARM、RISCV
等成熟指令集成果

[0005]近年来,随着神经网络算法的发展,计算任务逐渐成为智能计算机的主要任务需求

因此,更适合于计算优先任务的数据流计算技术在过去几年间得到快速发展

所有低能耗

高性能的计算处理器几乎都采用数据流计算技术,例如,谷歌公司推出的
TPU
处理器正是采用数据流计算技术的典型案例

[0006]不同于指令流计算的成熟指令集架构,数据流计算的指令集技术仍然处于十分早期阶段,各机构和组织在设计数据流计算系统时,通常根据自己的业务需求,采用不同的“计算粒度”来定义基础计算功能

其中,面向神经网络计算任务所开发的数据流计算系统,通常以“神经网络算子”为粒度来定义计算功能

典型的,谷歌
TPU
和英伟达
NVDLA
都采用了以“神经网络算子”为粒度的计算方案

[0007]然而,由于神经网络算子的数量已超过
100
个,并正不断增多

采用神经网络算子为粒度的数据流计算体系,在拥有高性能优势的同时,也具备十分明显的缺点:缺乏通用性

当神经网络算法的算子需求超过设计功能范围时
(
出现无法支持的算子
)
,该数据流计算体系便无法使用

[0008]由于芯片研发周期长达1~2年,且神经网络算法正按月为周期快速更新

以神经网络算子为粒度而设计的数据流计算体系,在算法快速变化的
AI
领域,很容易由于无法适配最新算法而被淘汰,这是当前大多数高性能数据流架构
AI
处理器的最大痛点:通用性不佳

无法适配新算法


技术实现思路

[0009]为解决上述问题,本专利技术提出一种精简数据流指令集处理器

所述处理器提供
25
种基础运算类型,而通过所述基础计算类型的各类组合可以形成各种高级别的计算表达,从而形成一种图灵完备的

基于张量计算的

面向计算图模型的通用数据流计算体系

[0010]技术方案如下:
[0011]一种精简数据流指令集处理器,包含片上存储器

平面运算器

立方体运算器

点运算器

张量运算器和指令控制器;
[0012]所述片上存储器直接从片外存储器读取并保存计算数据,所述计算数据用于平面运算器

立方体运算器和点运算器的计算;
[0013]所述张量运算器直接从片外存储器获取数据,根据来自指令控制器的指令配置信息,对张量数据执行调换

拆分

聚合以及反向聚合操作;
[0014]所述指令控制器直接从片外存储器获取指令,并根据指令向平面运算器

立方体运算器

点运算器或张量运算器发送指令配置信息

[0015]进一步地,所述平面运算器包括平面乘法累加运算单元

平面比较取最大值运算单元以及平面插值运算单元;所述平面运算器从片上存储器读取数据,数据以流水线的形式分别经过平面乘法累加运算单元

平面比较取最大值运算单元以及平面插值运算单元,并根据来自指令控制器的指令配置信息,对每个数据选择执行平面乘法累加运算

平面比较取最大值运算或平面插值运算中的一个或多个;所述平面运算器的计算结果发送给点运算器

[0016]进一步地,所述平面运算器用于执行平面运算,所述平面运算的作用域是张量数据中的一个面,所述平面计算是指一个或两个张量中对应坐标
(h,w)
平面内所有数据的运算

[0017]进一步地,所述立方体运算器包括立方体乘法累加运算单元和立方体比较取最大值运算单元;所述立方体运算器从片上存储器读取数据,数据以流水线的形式分别经过立方体乘法累加运算单元和立方体比较取最大值运算单元,并根据来自指令控制器的指令配置信息,对每个数据选择执行立方体乘法累加运算

立方体比较取最大值运算中的一个或多个;所述立方体运算器的计算结果发送给点运算器

[0018]进一步地,所述立方体运算器执行立方体运算;所述立方体运算的作用域是张量数据中的一个立方体,所述立方体运算是指一个或两个张量中对应坐标
(c,h,w)
立方体内所有数据的运算

[0019]进一步地,所述点运算器包括乘法
/
除法运算单元

加法
/
减法运算单元

最大
/
最小值运算单元


/

/
异或运算单元

左移
/
右移运算单元
...

【技术保护点】

【技术特征摘要】
1.
一种精简数据流指令集处理器,其特征在于:包含片上存储器

平面运算器

立方体运算器

点运算器

张量运算器和指令控制器;所述片上存储器直接从片外存储器读取并保存计算数据,所述计算数据用于平面运算器

立方体运算器和点运算器的计算;所述张量运算器直接从片外存储器获取数据,根据来自指令控制器的指令配置信息,对张量数据执行调换

拆分

聚合以及反向聚合操作;所述指令控制器直接从片外存储器获取指令,并根据指令向平面运算器

立方体运算器

点运算器或张量运算器发送指令配置信息,或执行跳转指令
。2.
如权利要求1所述的精简数据流指令集处理器,其特征在于:所述平面运算器包括平面乘法累加运算单元

平面比较取最大值运算单元以及平面插值运算单元;所述平面运算器从片上存储器读取数据,数据以流水线的形式分别经过平面乘法累加运算单元

平面比较取最大值运算单元以及平面插值运算单元,并根据来自指令控制器的指令配置信息,对每个数据选择执行平面乘法累加运算

平面比较取最大值运算或平面插值运算中的一个或多个;所述平面运算器的计算结果发送给点运算器
。3.
如权利要求2所述的精简数据流指令集处理器,其特征在于:所述平面运算器用于执行平面运算,所述平面运算的作用域是张量数据中的一个面,所述平面计算是指一个或两个张量中对应坐标
(h,w)
平面内所有数据的运算
。4.
如权利要求1所述的精简数据流指令集处理器,其特征在于:所述立方体运算器包括立方体乘法累加运算单元和立方体比较取最大值运算单元;所述立方体运算器从片上存储器读取数据,数据以流水线的形式分别经过立方体乘法累加运算单元和立方体比较取最大值运算单元,并根据来自指令控制器的指令配置信息,对每个数据选择执行立方体乘法累加运算

立方体比较取最大值运算中的一个或多个;所述立方体运算器的计算结果发送给点运算器
。5.
如权利要求4所述的精简数据流指令集处理器,其特征在于:所述立方体运算器执行立方体运算;所述立方体运算的作用域是张量数据中的一个立方体,所述立方体运算是指一个或两个张量中对应坐标
(c,h,w)
立方体内所有数据的运算
。6.
如权利要求1所述的精简数据流指令集处理器,其特征在于:所述点...

【专利技术属性】
技术研发人员:罗闳訚周志新何日辉尤培坤汤梦饶
申请(专利权)人:厦门壹普智慧科技有限公司
类型:发明
国别省市:

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

1