RISC-V MCU中文社区

【分享】 CICC2033 NICE指令——>可重构 CNN 加速器及扩展指令设计

发表于 全国大学生集成电路创新创业大赛 2023-06-02 00:59:14
0
1933
2

基于NICE指令扩展--->可重构 CNN 加速器

CICC2033——【RISC-V机床佬】队员:陈挺然/程科勋/李昌昱





###模块示意图



 

该系统中每个模块具体功能如下:

1.接口控制模块

NICE接口相连接的是接口控制模块,此控制模块用于接收输入数据、发送输出数据并接收控制信号。

NICE接口对扩展指令信号进行初步解码后,便会通过接口控制模块控制控制硬件加速器的计算与数据流通。

2.卷积控制模块

卷积控制模块用于控制卷积计算。从数据交流角度来说,卷积控制模块可以控制所需计算数据的地址,从而控制输入到卷积计算模块内的数据,进而控制卷积计算。

3.输入数据存储器

输入数据存储器用于存储输入数据。存储容量为4096*16bit

4.权重数据存储器

权重数据存储器分为8个,对应于8个不同的卷积核。存储容量为8*4096*16bit

5.卷积计算模块

卷积计算模块负责计算输入数据与权重数据的乘加。卷积计算模块包含8个并行乘加计算子模块,对应于8个卷积核的并行计算。卷积控制模块会控制输入到卷积计算模块内的输入与权重数据,卷积计算模块仅负责乘加计算。

6.卷积结果存储器

卷积结果存储器分为8个,对应于8个卷积核的计算结果。存储容量为8*4096*48bit

7.池化+量化模块

池化+量化模块可以执行池化和量化操作。池化+量化模块可以将卷积计算的结果直接进行激活、池化、量化,从而减小数据搬移的开销。此模块支持平均池化和最值池化,激活支持ReLU激活方式。

8.池化结果存储器

池化结果存储器分为8个,用于存储池化后的计算结果。存储容量为8*4096*16bit

此卷积加速器可以执行卷积、池化、激活、量化功能。从数据复用层面上来说,此卷积加速器实现的是卷积核复用形式。卷积层中卷积核会在输入的二维图像上沿着行和列的方向进行滑窗。

********控制方式完成一次卷积+池化的计算方式如下:

1.使用Custom_Clr指令,清除运行状态,使加速器的正常运行;

2.使用Custom_Dtrans指令,将输入数据以及权重数据导入加速器存储器内;

3.使用Custom_Ldata_ParaCustom_Lweight_ParamCustom_Pooling_ ParamCustom_Lbias指令,将计算相关参数送入加速器内进行锁存;

4.使用Custom_Run指令,使加速器开始执行计算;

5.使用Custom_Dtrans指令,将结果数据导出到存储器内。



喜欢2
用户评论
李昌昱

李昌昱 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板