System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术为一种卷积神经网络硬件加速器,属于人工智能与电子信息交叉领域,具体涉及一种卷积神经网络硬件加速器的设计方法。
技术介绍
1、卷积神经网络(convolutional neural network,cnn)是一种在计算机视觉和图像识别领域广泛应用的神经网络模型,一个典型的卷积神经网络包含输入层、卷积层、池化层、激活层、全连接层及输出层。随着社会发展与科技进步,卷积神经网络在生活中逐渐有了越来越多的应用场景,例如目标检测、人脸识别、图像美化等领域。但是随着神经网络的规模和深度越来越大,所需要的计算量和数据量也越来越大,这就对现有的计算系统提出了较大的挑战,起初人们更倾向于使用兼容性更好的通用计算平台来实现,例如以cpu或gpu为主要计算单元的计算平台,但是传统通用计算平台在执行卷积神经网络计算时存在低硬件利用率、高系统功耗的问题。
2、针对于上述问题,人们专利技术了基于fpga或asic这类专用电路来处理卷积神经网络的方法,传统神经网络加速器通常以加速卷积过程为主,并将池化、全连接等计算过程的硬件加速器作为卷积计算输出的后处理模块设计而非独立模块设计,这就使得后一级模块需要等待前一级模块输出数据后才能开始工作,模块与模块之间无法并行处理,这就造成了硬件资源的浪费;另一方面,传统硬件加速器通常未设有故障检测功能,当系统运行在复杂环境中时,系统总线上如果出现错误或接收到错误的指令,往往会直接导致硬件系统死机且系统自身无法自检并触发系统复位。
技术实现思路
1、本专利技
2、在本专利技术的描述中,需要理解术语“上”、“下”、“前”、“后”等方位实际表示某一模块在本专利技术的设计架构中的层级关系,表示的是一种逻辑上的连接关系,而非表示模块在空间上的位置关系。
3、本专利技术提出了一种具有故障监测功能的神经网络加速器,本专利技术中所采用的技术方案如下:
4、本专利技术内部图像数据、权重数据以及计算结果均采用int8数据格式,偏置参数采用int32数据格式存储与传输。卷积计算中间结果采用int32数据格式传输,池化、二维平均以及综合计算的中间结果均采用int8数据格式传输。
5、本专利技术主要包括控制模块、卷积计算模块、池化计算模块、二维平均计算模块、综合计算模块以及访存模块这六种模块。
6、所述控制模块用于从上位机接收配置流信息,并对其中的关键字段执行初步的检错分析,该模块内部设有故障检测模块,用于向上位机汇报故障信息。当模块接收到配置流信息后,将关键字段正确的配置流指令存储在内部的配置流缓存队列中,对关键字段错误的配置流指令将存入错误指令缓存队列中,再由内部故障检测模块向上位机汇报。
7、所述模块内部仲裁器从配置流缓存队列中读取待执行的指令,根据后级计算模块的阻塞情况,将配置流指令经过重新编码后发送到计算单元执行。后级共有4种计算模块,分别执行卷积计算、池化计算、二维平均计算、以及残差运算、矩阵的点乘运算和拼接操作,这4种计算模块在硬件电路上彼此独立,当参与计算的数据不存在相关性时可以同时执行,提高硬件整体效工作率高。配置流指令中设有同步指令,用于在存在数据相关性的计算任务之间等待同步。
8、配置流指令之间的数据相关性通过配置流指令中特定字段指示,不存在数据相关性的不同类型计算任务之间可以并行执行;存在数据相关性的计算任务则需要等待上一层计算完成后再执行。
9、所述卷积计算模块、池化计算模块、二维平均计算模块和综合计算模块均为实际执行计算任务的运算模块,其向上与控制模块之间通过axis总线通信,向下与访存模块通过axis总线通信,每一个计算模块内部均设有控制子模块,前级控制模块将重新编码后的配置流指令通过总线发送到后级计算模块中。
10、所述后级计算模块内设有一个控制子模块,用于解析前级控制模块发送的配置流指令,并控制该模块执行计算任务。在这一步骤中,所述控制子模块将对配置流指令的细节进行检查,如果指令参数超出规定范围或功能配置存在逻辑冲突,将直接丢弃该指令,同时向前级控制模块上报错误。
11、所述访存模块向上通过axis总线连接各个计算模块,向下通过axi总线连接ddr内存控制器或其它存储设备。访存模块内部共设有多个axis总线通道,分别与各个子模块连接,每条总线的数据通道均设有故障检测功能,监测总线上每一次传输数据的个数是否与所需数据个数相同,否则将触发故障上报。
12、所述故障检测模块负责收集硬件中各个模块内部上报的错误信息,并对其进行汇总。该模块共监测4种错误来源:
13、第一种错误来源是,控制模块从上位机接收到的存在关键字段错误的配置流指令,该模块将从错误的配置流指令中提取指令代码字段,添加部分字段后,作为一般指令错误上报给上位机;
14、第二种错误来源是,从后级计算模块中的配置模块发出的指令细节错误信号,作为一般指令错误上报给上位机;
15、第三种错误来源是,从后级计算模块中发出的状态机长时间阻塞信号,作为关键执行错误上报给上位机;
16、第四种错误来源是,从访存模块中发出的系统数据总线错误信号,作为关键数据错误上报给上位机。
17、一般指令错误不会引起系统死机,但可能导致神经网络计算结果出错,需要将故障信息上报给上位机,人为介入处理;而关键执行错误和关键数据错误则会导致系统死机,需要上报该故障并视情况对系统进行复位处理。
本文档来自技高网...【技术保护点】
1.一种具有故障监测功能的神经网络加速器,其特征在于:本设计的计算过程高度可配置化,其工作模式通过配置流驱动并控制硬件电路功能,从外部输入的配置流信息到内部计算过程均设计故障检测功能,能够及时检测到本专利技术内部出现的故障并予以上报,内部各个计算模块内部计算过程流水化处理,并且能够实现功能上的并行处理,本设计的硬件架构主要包括控制模块、卷积计算模块、池化计算模块、二维平均计算模块、综合计算模块以及访存模块;其中,
2.如权利要求1所述的一种应用于FPGA的卷积神经网络硬件加速器,其特征在于:加速器内部将卷积运算与加偏置、全精度输出、RELU6或Sigmoid激活函数、截位以及上/降采样这五种操作结合为一个独立的由数据流驱动的计算模块,池化以及金字塔池化运算结合为一个独立的计算模块,二维平均运算设计为一个独立的计算模块,残差、矩阵点乘运算以及矩阵拼接操作结合为一个独立的计算模块,这四种计算模块使用独立的硬件电路,当彼此之间不存在数据相关性时,可以实现并行计算。
3.如权利要求1所述的一种具有故障监测功能的神经网络加速器,其特征在于:加速器内部的四种计算单元,
4.如权利要求1所述的一种具有故障监测功能的神经网络加速器,其特征在于:所述控制模块内部设计指令队列,不存在数据相关性的计算可以并行执行,存在数据相关性的计算通过同步指令实现等待同步。
5.如权利要求1所述的一种具有故障监测功能的神经网络加速器,其特征在于:所述控制模块内部设计故障检测模块,在加速器运行过程中实时对故障进行检测并上报。
6.如权利要求1所述的一种具有故障监测功能的神经网络加速器,其特征在于:所述控制模块内部设计故障检测模块,共设计4种故障类型,分别为:指令关键字段错误,指令细节错误,计算执行错误,数据总线错误;其中指令关键字段错误和指令细节错误是一般错误,不会影响硬件功能;计算执行错误和数据总线错误是关键错误,需要对硬件执行复位。
7.如权利要求1所述的一种具有故障监测功能的神经网络加速器,其特征在于:所述控制模块内部设计故障检测模块,关键错误上报的优先级高于一般错误,一般错误上报通道可以被反压,关键错误上报信号不会被反压。
...【技术特征摘要】
1.一种具有故障监测功能的神经网络加速器,其特征在于:本设计的计算过程高度可配置化,其工作模式通过配置流驱动并控制硬件电路功能,从外部输入的配置流信息到内部计算过程均设计故障检测功能,能够及时检测到本发明内部出现的故障并予以上报,内部各个计算模块内部计算过程流水化处理,并且能够实现功能上的并行处理,本设计的硬件架构主要包括控制模块、卷积计算模块、池化计算模块、二维平均计算模块、综合计算模块以及访存模块;其中,
2.如权利要求1所述的一种应用于fpga的卷积神经网络硬件加速器,其特征在于:加速器内部将卷积运算与加偏置、全精度输出、relu6或sigmoid激活函数、截位以及上/降采样这五种操作结合为一个独立的由数据流驱动的计算模块,池化以及金字塔池化运算结合为一个独立的计算模块,二维平均运算设计为一个独立的计算模块,残差、矩阵点乘运算以及矩阵拼接操作结合为一个独立的计算模块,这四种计算模块使用独立的硬件电路,当彼此之间不存在数据相关性时,可以实现并行计算。
3.如权利要求1所述的一种具有故障监测功能的神经网络加速器,其特征在于:加速器内部的四...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。