一种深度学习处理器的泛化架构设计方法技术

技术编号:38391099 阅读:10 留言:0更新日期:2023-08-05 17:44
一种深度学习处理器的泛化架构设计方法,本发明专利技术涉及深度学习处理器的泛化架构设计方法。本发明专利技术的目的是为了解决现有深度学习处理器在智能IoT场景中不能兼容深度学习以外的其他计算密集的任务,导致芯片面积的增加、成本的增加、利用率的偏差、计算能效低的问题。过程为:架构包含任务解析的通用处理器与加速计算的深度学习加速器。当进行深度学习卷积计算任务时,通用处理器解析数据在片外的组织形式,将数据加载至片上缓存Buffer,由序列控制器按卷积顺序将数据加载至MAC阵列进行计算。当进行密集计算任务时,增加重排模块,基于最优的算子计算形式将Buffer数据重排至片上缓存Buffer2中,并将Buffer2数据传输至MAC阵列中进行计算。本发明专利技术用于深度学习处理器领域。本发明专利技术用于深度学习处理器领域。本发明专利技术用于深度学习处理器领域。

【技术实现步骤摘要】
一种深度学习处理器的泛化架构设计方法


[0001]本专利技术涉及深度学习处理器的泛化架构设计方法。

技术介绍

[0002]为了满足深度学习在无人驾驶、人脸识别等应用领域的性能要求,专用的深度学习处理器相对于通用处理器提供了显著的高能效深度学习处理,成为了现代计算系统的关键计算引擎之一,被广泛集成到端、边、云计算系统中。然而,在很多实际应用场景特别是智能IoT场景中,应用不仅包含深度学习计算任务,也包含了很多其他计算密集的任务,如信号处理、数据分析等,为每一种不同类型的任务定制专用加速器,尽管理论上可以达到更高的计算能效,但是也会带来很多副作用。一方面,更多的异构加速器会直接导致芯片面积的增加,同时增加了系统互联设计的需求和复杂度,从而引起芯片成本的增加。另一方面,不同的应用配置下,计算需求的差异必然会导致专用加速器利用率的偏差。而各个专用加速器往往是独立的,加速器的很多硬件资源如片上缓存、计算阵列等,占据较大的芯片面积和功耗,却又无法跨越加速器复用,也会损害芯片的计算能效和成本。

技术实现思路

[0003]本专利技术的目的是为了解决现有深度学习处理器在智能IoT场景中不能兼容深度学习以外的其他计算密集的任务,导致芯片面积的增加、成本的增加、利用率的偏差、计算能效低的问题,而提出一种深度学习处理器的泛化架构设计方法。
[0004]一种深度学习处理器的泛化架构设计方法具体过程为:
[0005]步骤1:系统分为软件部分和硬件部分;
[0006]软件部分即通用处理器,通用处理器负责对硬件编程;
[0007]硬件部分即深度学习加速器,深度学习加速器负责硬件计算;
[0008]通用处理器包括深度学习卷积计算任务和密集型计算任务;
[0009]通用处理器读取数据,解析数据在片外存储器的组织形式;
[0010]当进行密集型计算任务时,进入步骤2;
[0011]当进行深度学习卷积计算任务时,进入步骤3;
[0012]步骤2:解析密集型计算任务,得到最优的算子计算形式,将步骤1数据在片外存储器的组织形式加载到片上缓存Buffer,基于最优的算子计算形式将片上缓存Buffer的数据重排,将重排后数据加载到片上缓存Buffer2中;
[0013]缓存Buffer2中数据传输到MAC阵列中,MAC阵列输出结果传给片外存储器;
[0014]步骤3:将步骤1数据在片外存储器的组织形式加载到片上缓存Buffer,缓存Buffer中数据传输到MAC阵列中,MAC阵列输出结果传给片外存储器。
[0015]本专利技术的有益效果为:
[0016]本专利技术是对深度学习处理器改进,提出一种深度学习处理器的泛化架构设计方法,使得缓存上的数据在片上通过指令重新排列,并按照基本计算算子定义送入到乘加阵
列中进行计算。
[0017]本专利技术以应用广泛的深度学习处理器为核心,尝试泛化其计算能力,使其在支持深度学习处理的基础上,增加更多相似的常见计算任务如信号处理、数据分析等,在保障深度学习处理计算性能的前提下,使其可以被多种不同的计算任务共享,提高专用处理器的硬件资源利用率,降低智能IoT芯片的面积和成本。
[0018]本专利技术实现最少增加硬件开销的前提下,泛化深度学习处理器的访存功能,实现更多类型的密集计算。本专利技术在支持原有硬件支持的固定位宽的深度学习卷积计算的同时,还支持可变位宽的深度学习卷积计算,支持可转换为向量级,矩阵级乘加类型的可变位宽计算,支持多层嵌套时层间数据可拼接填充类型的可变位宽计算。相比于通用处理器,其计算速度提高,相比于专用处理器,节省了对应部分的硬件开销。
附图说明
[0019]图1为泛化设计架构图;
[0020]图2为可变位宽乘加拼接计算框图;
[0021]图3为可变位宽乘加拼接序列控制框图,Wt为wt是卷积的权重weight缩写,da为卷积的数据缩写data,p0是mul0乘法器的乘法计算结果,p1是mul1乘法器的乘法计算结果,p2是mul2乘法器的乘法计算结果,P3为mul3乘法器的乘法计算结果;
[0022]图4为可编程访存硬件结构图,prog_addr_start是可编程访存的起始地址;prog_burst_lenth是突发传输长度,就是发送连续地址时候的数据量,比如起始地址是10突发长度是3就会传输101112这三个地址的数据;DQclk是一个D触发器,是硬件电路的基本单元结构;rearranged_en为存内再重排的使能;
[0023]图5为存内再重排硬件结构图,rearranged_code为重排的译码坐标,code为位段,code是7位的,高三位选择哪一条数据,低四位选择这个数据的某一部分;rearranged_code_en为译码使能,只有他有效,这个位置的数据才会被重排;zero为0;
[0024]图6为单元内填充硬件结构图,padding value是要填充的值,比如刚才fft的那个1;reg_bit是可变位宽的位宽选择,比如是4bit 8bit还是16bit;padding en就是填充使能;Dat_in就是输入数据;Dat_out就是输出的数据;
[0025]图7a为深度学习加速器缓存数据加载时序图;
[0026]图7b为深度学习加速器MAC阵列数据计算时序图;
[0027]图8为FFT密集计算向量转换图,W
rN
表示旋转因子,x
m
(p)表示一组蝶形运算其中一个输入数据,x
m
(q)表示一组蝶形运算另一个输入数据,x
m+1
(p)表示一组蝶形运算其中一个输出数据,x
m+1
(q)表示一组蝶形运算另一个输出数据;
[0028]图9为16点FFT蝶形运算图,W
Nn
表示旋转因子,Xm表示输入的信号数据,()里为对应坐标,Dout为最终输出的频域数据;
[0029]图10为FFT的向量向量乘映射图,wr代表旋转因子的实部,wi代表旋转因子的虚部,pr表示一组蝶形运算其中一个输入数据的实部,pi表示一组蝶形运算其中一个输入数据的虚部,qr表示一组蝶形运算另一个输入数据的实部,qi表示一组蝶形运算另一个输入数据的虚部;
[0030]图11为FFT的可编程访存编程逻辑图,padding

1为就是把左上角那个0填充成1。
具体实施方式
[0031]具体实施方式一:本实施方式一种深度学习处理器的泛化架构设计方法具体过程为:具体过程为:
[0032]通用处理器在读入深度学习计算或者其他密集计算的时候会把要计算的对应的数据读取进来,然后把这些数据按照编译好的顺序发送到片外DRAM中,通用处理器解析的就是这些数据;
[0033]步骤1:系统分为软件部分和硬件部分;
[0034]软件部分即通用处理器(通用处理器如Cortex

M3、PicoRV32),通用处理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度学习处理器的泛化架构设计方法,其特征在于:所述方法具体过程为:步骤1:系统分为软件部分和硬件部分;软件部分即通用处理器,通用处理器负责对硬件编程;硬件部分即深度学习加速器,深度学习加速器负责硬件计算;通用处理器包括深度学习卷积计算任务和密集型计算任务;通用处理器读取数据,解析数据在片外存储器的组织形式;当进行密集型计算任务时,进入步骤2;当进行深度学习卷积计算任务时,进入步骤3;步骤2:解析密集型计算任务,得到最优的算子计算形式,将步骤1数据在片外存储器的组织形式加载到片上缓存Buffer,基于最优的算子计算形式将片上缓存Buffer的数据重排,将重排后数据加载到片上缓存Buffer2中;缓存Buffer2中数据传输到MAC阵列中,MAC阵列输出结果传给片外存储器;步骤3:将步骤1数据在片外存储器的组织形式加载到片上缓存Buffer,缓存Buffer中数据传输到MAC阵列中,MAC阵列输出结果传给片外存储器。2.根据权利要求1所述的一种深度学习处理器的泛化架构设计方法,其特征在于:所述步骤2:解析密集型计算任务,得到最优的算子计算形式,将步骤1数据在片外存储器的组织形式加载到片上缓存Buffer,基于最优的算子计算形式将片上缓存Buffer的数据重排,将重排后数据加载到片上缓存Buffer2中;缓存Buffer2中数据传输到MAC阵列中,MAC阵列输出结果传给片外存储器;具体过程为:密集型计算任务的算子包括向量向量乘,矩阵向量乘,矩阵矩阵乘和向量向量扩充乘;向量向量乘a1×
b1完成向量和向量的乘积计算,向量a1或者b1的维数可编程控制,所述向量a1或者b1的维数指向量a1或者向量b1中数据的数量;矩阵向量乘完成矩阵和向量的乘积计算,矩阵的向量数可编程控制,向量的维数可编程控制,所述向量的维数指向量中数据的数量;矩阵矩阵乘完成矩阵和矩阵的乘积计算,矩阵的向量数以及矩阵中向量的维数可编程控制;向量向量扩充乘完成矩阵矩阵乘的计算结果的对角线相加,矩阵的向量数以及矩阵中向量的维数可编程控制;若一组向量向量乘a1×
b1,a2×
b2,

,a
n
×
b
n
中向量a1,a2,a
n
不相同且向量b1,b2,b
n
不相同,向量向量乘a1×
b1,a2×
b2,

,a
n
×
b
n
还是向量向量乘a1×
b1,a2×
b2,

,a
n
×
b
n
;若一组向量向量乘a1×
b1,a2×
b2,

,a
n
×
b
n
中向量a1,a2,a
n
相同或向量b1,b2,b
n
相同,则将相同的向量提取出来,另一组不相同的向量拼接转换成矩阵,向量向量乘变成矩阵向量乘;若一组向量向量乘a1×
b1,a2×
b2,

,a
n
×
b
n
中向量a1,a2,a
n
相同且...

【专利技术属性】
技术研发人员:杨兵朱智彧刘成张文宇李潇罗小琴
申请(专利权)人:哈尔滨理工大学
类型:发明
国别省市:

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

1