CN109816093B - 一种单路式卷积实现方法 - Google Patents

一种单路式卷积实现方法 Download PDF

Info

Publication number
CN109816093B
CN109816093B CN201811545245.7A CN201811545245A CN109816093B CN 109816093 B CN109816093 B CN 109816093B CN 201811545245 A CN201811545245 A CN 201811545245A CN 109816093 B CN109816093 B CN 109816093B
Authority
CN
China
Prior art keywords
data
fifo
sliding window
convolution
kernel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811545245.7A
Other languages
English (en)
Other versions
CN109816093A (zh
Inventor
陈亮
魏鑫
龙腾
陈磊
陈禾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201811545245.7A priority Critical patent/CN109816093B/zh
Publication of CN109816093A publication Critical patent/CN109816093A/zh
Application granted granted Critical
Publication of CN109816093B publication Critical patent/CN109816093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种单路式卷积实现方法,将特征图的数据逐行按顺序存储在fifo中,通过fifo组的每次读写和滑窗数据的更新操作,得到卷积计算所需要的滑窗数据,然后,将得到的滑窗数据依次与卷积核完成卷积计算,接着更换新的滑窗数据重复上述过程,直到得到所有卷积计算输出的结果特征图;因此,本实施例在FPGA片内利用fifo构建fifo组,按照卷积计算所需的数据顺序要求,各fifo将存储于FPGA片外存储器的整幅特征图的数据逐一输出到组外的卷积计算单元,没有直接去调用FPGA片外存储器的数据,避免了复杂的地址跳变,同时将滑窗数据依次与卷积核完成卷积计算之后再更换新的滑窗数据,避免对输入特征图进行重复的数据提取,大大提高硬件平台加速卷积计算的效果。

Description

一种单路式卷积实现方法
技术领域
本发明属于图像分类识别技术领域,尤其涉及一种单路式卷积实现方法。
背景技术
近五年来,卷积神经网络在图像特征提取、分类识别等领域取得了很好的效果。由于,卷积神经网络架构灵活多变,现在的卷积神经网络主要通过CPU和GPU等软件平台实现。但是,现在的工程应用中,对于系统实时性、低功耗的需求越来越突出,因此利用硬件平台对卷积神经网络的计算进行加速并达到降低系统功耗的目的,日益成为卷积神经网络在工程应用中研究的热点问题。
虽然硬件平台可以达到对卷积神经网络计算进行加速并降低系统功耗的目的,但是硬件平台相比于软件平台也具有不可回避的问题,即由于卷积神经网络在进行卷积计算时,需要对输入特征图进行滑窗操作,每进行一次滑窗操作,就会进行一次地址跳变,这意味着卷积计算的过程中需要对顺序存储的输入特征图数据进行跳址操作,而硬件平台上实现跳址操作比软件平台上要花费更多的逻辑控制,同时每个卷积层通常有多个卷积核与输入特征图进行卷积操作,则随着卷积核数量的增加,由滑窗操作带来的地址跳变也会成倍增长。因此,设计一种高效的卷积计算方式以减少硬件平台上实现卷积计算时对输入特征图的跳址操作是实现卷积神经网络在硬件平台上加速计算发展的重要研究方向之一。
此外,传统卷积计算方式是取定一个卷积核,然后对输入特征图进行滑窗操作,直到输入特征图滑窗的所有数据块都与这一个卷积核完成卷积计算之后,系统更换新的卷积核重复上面的操作。这样的卷积计算方式可以顺序的输出每张卷积计算结果特征图的数据,但是这样的实现方式需要重复、频繁的读取输入特征图的数据,这对于硬件平台来说意味着需要复杂的逻辑控制来实现大量的地址跳变,从而大大降低卷积计算的效率。因此,传统的卷积计算方式不能充分发挥硬件平台对卷积神经网络加速计算的潜力。
综上所述,当前传统的卷积计算方式需要重复、频繁的读取输入特征图数据,大大降低了卷积计算的效率,特别是当输入特征图尺寸变大时,这个问题尤其突出。所以,传统的卷积计算方式影响了卷积神经网络计算在硬件平台上加速计算的性能。
发明内容
为解决上述问题,本发明提供一种单路式卷积实现方法,能够大大提高调用FPGA片外存储器数据的效率,有效避免传统的卷积计算方式在读取输入特征图时需要频繁、重复的地址跳变的问题。
一种单路式卷积实现方法,应用于卷积神经网络,包括以下步骤:
S1:在FPGA片内存储器中设置fifo组,其中,fifo组包括L个fifo,并将各fifo依次编号为1至L,其中,L=kernel+1,kernel为预设的卷积核大小;然后确定需要同时向fifo组外输出数据的fifo的个数M=kernel;
S2:将输入特征图中的前L行数据逐行存入fifo组中,其中,每一个fifo存储输入特征图的一行数据,且fifo的深度depth大于输入特征图的尺寸;
S3:对fifo组中各fifo进行kernel次读写操作,得到与卷积核大小相同的滑窗数据,其中,每进行一次读写操作,fifo组中各fifo完成一次更新,所述读写操作具体为:
对于从前面数的前M个fifo,每个fifo当前存储的第一个数据输出fifo组外作为卷积神经网络的滑窗数据,同时第二个数据成为第一个数据;对于倒数的后M个fifo,每个fifo当前存储的第一个数据写入其前一个fifo存储数据的尾部,同时,将特征图第L+1行的第一个数据写入第L个fifo存储数据的尾部;
S4:将所述滑窗数据依次与各卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第一个像素点;
S5:将步骤S3中完成kernel次读写操作的fifo组再进行一次读写操作,得到前M个fifo当前存储的第一个数据;
S6:对步骤S3中的滑窗数据执行滑窗更新操作,得到更新后的滑窗数据,其中,所述滑窗更新操作为:
舍弃当前滑窗数据的第一列,并将最近一次读写操作后得到的前M个fifo输出的数据作为滑窗数据的最后一列;
S7:将更新后的滑窗数据依次与各卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第二个像素点;
S8:将步骤S5中完成kernel+1次读写操作的fifo组重复执行步骤S5~S7,得到每个卷积核对应的输出特征图的第一行的第三个像素点;以此类推,直到遍历输入特征图前四行的数据,得到每个卷积核对应的输出特征图第一行的像素点;
S9:将已经遍历输入特征图前四行数据的fifo组重复执行kernel次读写操作和滑窗更新操作,得到输入特征图第2~4行、第1~3列对应的滑窗数据;然后将该滑窗数据重复执行步骤S4~S8,得到每个卷积核对应的输出特征图第二行的像素点;以此类推,直到遍历输入特征图的所有数据,得到每个卷积核对应的所有输出特征图。
有益效果:
本发明提供一种单路式卷积实现方法,将特征图的数据逐行按顺序存储在fifo中,每次读写操作,前M个fifo输出当前存储的第一个数据,后M个fifo将当前存储的第一个数据回写到其前一个fifo存储的数据尾部,同时,将特征图第L+1行的第一个数据写入第L个fifo存储的数据尾部,这样使得fifo不断按序将数据输出fifo组外时,特征图剩下的数据又按序写入到fifo组中等待读取,直到完成整幅特征图的数据遍历;因此,本实施例在FPGA片内利用fifo构建fifo组,按照卷积计算所需的数据顺序要求,各fifo将存储于FPGA片外存储器的整幅特征图的数据逐一输出到组外的卷积计算单元,则在这个由FPGA片外存储器到FPGA片内存储器数据调用的过程中,没有直接去调用FPGA片外存储器的数据,避免了复杂的地址跳变,大大提高了调用FPGA片外存储器数据的效率;
同时,本实施例每确定一个滑窗数据后,首先将所有的卷积核都和当前选定输入特征图的滑窗数据进行卷积计算后,再更新输入特征图的滑窗数据重复上面的操作直到完成所有的卷积计算;因此,本实施例在进行卷积计算时,每块输入特征图的滑窗数据只需要读取一次,不需要重复、频繁的读取输入特征图滑窗数据,相较于有多少个卷积核就要遍历多少次输入特征图的传统卷积计算方式,本实施例能够有效避免传统的卷积计算方式在读取输入特征图时需要频繁、重复的地址跳变的问题,尤其适用于大尺寸输入特征图的卷积神经网络计算。
附图说明
图1为本发明提供的一种单路式卷积实现方法的流程图;
图2为本发明提供的进行第一次读写操作后,fifo组中各fifo的数据存储示意图;
图3为本发明提供的进行三次读写操作后,fifo组中各fifo的数据存储示意图;
图4为本发明提供的滑窗数据与不同的卷积核进行卷积运算的示意图;
图5为本发明提供的滑窗数据的更新过程示意图;
图6为本发明提供的得到输出特征图第一行的像素点后,fifo组的存储数据示意图;
图7为本发明提供的得到输出特征图第一行的像素点后,再执行三次读写操作和滑窗更新操作后的滑窗数据示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
实施例一
参见图1,该图为本实施例提供的一种单路式卷积实现方法的流程图。一种单路式卷积实现方法,应用于卷积神经网络,其中,卷积神经网络包括多个卷积层,且各卷积层均具有两个以上的卷积核;所述单路式卷积实现方法包括以下步骤:
S1:在FPGA片内存储器中设置fifo组,其中,fifo组包括L个fifo(first inputfirst output,先入先出队列),并将各fifo依次编号为1至L,其中,L=kernel+1,kernel为预设的卷积核大小;然后确定需要同时向fifo组外输出数据的fifo的个数M=kernel;
需要说明的是,在计算机中,先入先出队列是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
S2:将输入特征图中的前L行数据逐行存入fifo组中,其中,每一个fifo存储输入特征图的一行数据,且fifo的深度depth大于输入特征图的尺寸。
S3:对fifo组中各fifo进行kernel次读写操作,得到与卷积核大小相同的滑窗数据,其中,每进行一次读写操作,fifo组中各fifo完成一次更新,所述读写操作具体为:
对于从前面数的前M个fifo,每个fifo当前存储的第一个数据输出fifo组外作为卷积神经网络的滑窗数据,同时第二个数据成为第一个数据;对于倒数的后M个fifo,每个fifo当前存储的第一个数据写入其前一个fifo存储数据的尾部,同时,将特征图第L+1行的第一个数据写入第L个fifo存储数据的尾部。
需要说明的是,在实际的FPGA片内存储器的物理存储中,每个fifo当前存储的第一个数据输出fifo组外后,由于fifo遵循先进先出的存储策略,则各fifo中存储的数据会将自身的存储位置依次向前移动一位,即第二个数据变成第一个数据,第三个数据变成第二个数据,以此类推,直到最后一位空出,才能将倒数的后M个fifo,每个fifo当前存储的第一个数据写入其前一个fifo存储数据的尾部,同时,将特征图第L+1行的第一个数据写入第L个fifo存储数据的尾部。
S4:将所述滑窗数据依次与各卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第一个像素点。
S5:将步骤S3中完成kernel次读写操作的fifo组再进行一次读写操作,得到前M个fifo当前存储的第一个数据。
S6:对步骤S3中的滑窗数据执行滑窗更新操作,得到更新后的滑窗数据,其中,所述滑窗更新操作为:
舍弃当前滑窗数据的第一列,并将最近一次读写操作后得到的前M个fifo输出的数据作为滑窗数据的最后一列。
S7:将更新后的滑窗数据依次与各卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第二个像素点。
S8:将步骤S5中完成kernel+1次读写操作的fifo组重复执行步骤S5~S7,得到每个卷积核对应的输出特征图的第一行的第三个像素点;以此类推,直到遍历输入特征图前四行的数据,得到每个卷积核对应的输出特征图第一行的像素点。
S9:将已经遍历输入特征图前四行数据的fifo组重复执行kernel次读写操作和滑窗更新操作,得到输入特征图第2~4行、第1~3列对应的滑窗数据;然后将该滑窗数据重复执行步骤S4~S8,得到每个卷积核对应的输出特征图第二行的像素点;以此类推,直到遍历输入特征图的所有数据,得到每个卷积核对应的所有输出特征图。
实施例二
基于以上实施例,本实施例以特征图的尺寸为15×15,卷积核的大小为3×3,特征图卷积计算时滑窗的步长Stride为1以及卷积神经网络的卷积层具有6个卷积核为例,对一种单路式卷积实现方法进行详细说明。
步骤一、确定fifo组中fifo的个数L
根据卷积计算中卷积核的大小(kernel)确定每个fifo组中fifo的个数L=kernel+1=4。也就是说,fifo组中有4个fifo。
步骤二、确定需要同时向fifo组外输出数据的fifo的个数M
根据假定的情况,卷积核的大小(kernel)为3,确定每个fifo组需要同时输出M=3个fifo中的数据。
步骤三、确定fifo的深度
根据式子:depth≥size可以知道,每个fifo的深度可选为16。
步骤四、将特征图中的前4行数据逐行存入fifo组中,其中,每一个fifo存储特征图的一行数据。
参见图2,该图为本实施例提供的进行第一次读写操作后,fifo组中各fifo的数据存储示意图。其中,fifo组中各fifo的编号从上至下依次为1~4。假定输入的特征图前五行的数据编号分别为1至75,在进行fifo读写操作之前,fifo组中的fifo分别写入输入特征图1至4行的数据,其中,编号为1的fifo写入第一行的数据,编号为2的fifo写入第二行的数据,编号为3的fifo写入第三行的数据,编号为4的fifo写入第四行的数据。
编号为1至3的3个fifo中存储的第一个数据输出fifo组外,即特征图编号为1,16,31的3个数据同时输出fifo组外,存入FPGA片上的卷积计算单元中;编号为2至4的3个fifo中存储的第一个数据写入其前一个编号对应的fifo存储的数据尾部,其中,编号为2的fifo中存储的第一个数据16写入编号为1的fifo存储的数据尾部,编号为3的fifo中存储的第一个数据31写入编号为2的fifo存储的数据尾部,编号为4的fifo中存储的第一个数据46写入编号为3的fifo存储的数据尾部;同时,特征图第5行的第一个数据61写入编号为4的fifo存储的数据尾部,完成fifo组中各fifo的更新,如图2所示。
参见图3,该图为本实施例提供的进行三次读写操作后,fifo组中各fifo的数据存储示意图。其中,fifo组中各fifo存储的数据转移方式与第一次读写操作类似,本实施例对此不作赘述。由图3可知,经过三次读写操作后,fifo组顺序输出特征图前三行前三列的数据。
步骤五、计算输出特征图的第一行的第一个像素点
参见图4,该图为本实施例提供的滑窗数据与不同的卷积核进行卷积运算的示意图。将执行三次读写操作后得到的滑窗数据依次与6个卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第一个像素点,即图4中输出特征图中6个灰色的点。
步骤六、更新滑窗数据
参见图5,该图为本实施例提供的滑窗数据的更新过程示意图。将完成3次读写操作的fifo组再进行一次读写操作,得到前3个fifo当前存储的第一个数据;舍弃当前滑窗数据的第一列,即1、16、31,并将最近一次读写操作后得到的前3个fifo输出的数据4、19、34作为滑窗数据的最后一列,从而得到更新后的滑窗数据:(2,3,4;17,18,19;32,33,34)。
步骤七、计算输出特征图的第一行的第二个像素点
将更新后的滑窗数据依次与6个卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第二个像素点。
步骤八、计算输出特征图第一行的像素点
不断执行读写操作和滑窗更新操作,直到fifo组遍历输入特征图前四行的数据。参见图6,该图为本实施例提供的得到输出特征图第一行的像素点后,fifo组的存储数据示意图。由图6可知,此时,第2个fifo存储的数据全部写入第1个fifo,第3个fifo存储的数据全部写入第2个fifo,第4个fifo存储的数据全部写入第3个fifo,输入特征图的第5行全部写入第4个fifo。
步骤九、计算输出特征图的所有像素点
参见图7,该图为本实施例提供的得到输出特征图第一行的像素点后,再执行三次读写操作和滑窗更新操作后的滑窗数据示意图。由图7可知,当得到输出特征图第一行的所有像素点后,如果只执行一次读写操作和滑窗更新操作,则此时的滑窗数据为(14,15,16;29,30,31;44,45,46),如图7中的虚线框所示,显然这块滑窗数据不是来自输入特征图相同的三行,即这块滑窗数据不是下一次卷积计算所需要的滑窗数据;因此,得到输出特征图第一行的像素点后,必须连续执行三次读写操作和滑窗更新操作,才能得到下一次计算的所需要的滑窗数据(16,17,18;31,32,33;46,47,48),如图7中滑窗数据白色部分所示。
然后,将滑窗数据(16,17,18;31,32,33;46,47,48)依次与各卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第二行的第一个像素点;以此类推,不断进行读写操作和滑窗更新操作,得到输出特征图的第二行的所有像素点;然后连续执行三次读写操作和滑窗更新操作,再进入输出特征图的第三行的所有像素点的循环计算;以此类推,直到遍历输入特征图的所有数据,得到每个卷积核对应的所有输出特征图。
由此可见,本实施例提供的一种单路式卷积实现方法,将特征图的数据逐行按顺序存储在fifo中,每次读写操作前M个fifo输出当前存储的第一个数据,后M个fifo将当前存储的第一个数据会写到比其前一个fifo存储的数据尾部,同时,将特征图第L+1行的第一个数据写入第L个fifo存储的数据尾部,这样使得fifo不断将数据按序输出fifo组外时,特征图剩下的数据又按序写入到fifo组中等待读取,直到完成整幅特征图的数据遍历;因此,本实施例在FPGA片内利用fifo构建fifo组,按照卷积计算所需的数据顺序要求,各fifo将存储于FPGA片外存储器的整幅特征图的数据逐一输出到组外的卷积计算单元,其中,卷积计算单元也属于FPGA片内存储器,则在这个由FPGA片外存储器到FPGA片内存储器数据调用的过程中,没有直接去调用FPGA片外存储器的数据,避免了复杂的地址跳变,大大提高了调用FPGA片外存储器数据的效率;
同时,本实施例每确定一个滑窗数据后,首先将所有的卷积核都完成和当前选定输入特征图的滑窗数据进行卷积计算后,再更新输入特征图的滑窗数据重复上面的操作直到完成所有的卷积计算;因此,本实施例在进行卷积计算时,每块输入特征图的滑窗数据只需要读取一次,不需要重复、频繁的读取输入特征图滑窗数据,相较于有多少个卷积核就要遍历多少次输入特征图的传统卷积计算方式,本实施例能够有效避免传统的卷积计算方式在读取输入特征图时需要频繁、重复的地址跳变的问题,尤其适用于大尺寸输入特征图的卷积神经网络计算。
此外,现有的FPGA片外存储器的调用优化方法容易受到卷积计算中输入特征图个数的影响,当输入特征图的个数大于片外存储器的bank数时,也会遇到跳址访问的问题,而本实施例的方法不受输入特征图个数的影响,可以灵活满足不同卷积神经网络结构计算的需要。
再者,现有的FPGA片外存储器的调用优化方法,很难满足卷积神经网络计算中需要根据不同卷积核大小、不同特征图滑窗步长以及不同卷积计算单元个数灵活配置卷积计算数据输入的要求,而本实施例的方法可以根据实际情况确定fifo组中fifo的个数L,以及需要同时向fifo组外输出数据的fifo的个数M,从而调整每个fifo组中fifo的个数,完成灵活的配置。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当然可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (1)

1.一种单路式卷积实现方法,应用于卷积神经网络,其特征在于,包括以下步骤:
S1:在FPGA片内存储器中设置fifo组,其中,fifo组包括L个fifo,并将各fifo依次编号为1至L,其中,L=kernel+1,kernel为预设的卷积核大小,且kernel=3;然后确定需要同时向fifo组外输出数据的fifo的个数M=kernel;
S2:将输入特征图中的前L行数据逐行存入fifo组中,其中,每一个fifo存储输入特征图的一行数据,且fifo的深度depth大于输入特征图的长度;
S3:对fifo组中各fifo进行kernel次读写操作,得到与卷积核大小相同的滑窗数据,其中,每进行一次读写操作,fifo组中各fifo完成一次更新,所述读写操作具体为:
对于从前面数的前M个fifo,每个fifo当前存储的第一个数据输出fifo组外作为卷积神经网络的滑窗数据,同时第二个数据成为第一个数据;对于倒数的后M个fifo,每个fifo当前存储的第一个数据写入其前一个fifo存储数据的尾部,同时,将特征图第L+1行的第一个数据写入第L个fifo存储数据的尾部;
S4:将所述滑窗数据依次与各卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第一个像素点;
S5:将步骤S3中完成kernel次读写操作的fifo组再进行一次读写操作,得到前M个fifo当前存储的第一个数据;
S6:对步骤S3中的滑窗数据执行滑窗更新操作,得到更新后的滑窗数据,其中,所述滑窗更新操作为:
舍弃当前滑窗数据的第一列,并将最近一次读写操作后得到的前M个fifo输出的数据作为滑窗数据的最后一列;
S7:将更新后的滑窗数据依次与各卷积核进行卷积计算,得到每个卷积核对应的输出特征图的第一行的第二个像素点;
S8:将步骤S5中完成kernel+1次读写操作的fifo组重复执行步骤S5~S7,得到每个卷积核对应的输出特征图的第一行的第三个像素点;以此类推,直到遍历输入特征图前四行的数据,得到每个卷积核对应的输出特征图第一行的像素点;
S9:将已经遍历输入特征图前四行数据的fifo组重复执行kernel次读写操作和滑窗更新操作,得到输入特征图第2~4行、第1~3列对应的滑窗数据;然后将该滑窗数据重复执行步骤S4~S8,得到每个卷积核对应的输出特征图第二行的像素点;以此类推,直到遍历输入特征图的所有数据,得到每个卷积核对应的所有输出特征图。
CN201811545245.7A 2018-12-17 2018-12-17 一种单路式卷积实现方法 Active CN109816093B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811545245.7A CN109816093B (zh) 2018-12-17 2018-12-17 一种单路式卷积实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811545245.7A CN109816093B (zh) 2018-12-17 2018-12-17 一种单路式卷积实现方法

Publications (2)

Publication Number Publication Date
CN109816093A CN109816093A (zh) 2019-05-28
CN109816093B true CN109816093B (zh) 2020-12-04

Family

ID=66601676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811545245.7A Active CN109816093B (zh) 2018-12-17 2018-12-17 一种单路式卷积实现方法

Country Status (1)

Country Link
CN (1) CN109816093B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114202071B (zh) * 2022-02-17 2022-05-27 浙江光珀智能科技有限公司 一种基于数据流模式的深度卷积神经网络推理加速方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104993837A (zh) * 2015-07-24 2015-10-21 丽水博远科技有限公司 一种卷积交织方法和卷积交织器
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
CN107862650A (zh) * 2017-11-29 2018-03-30 中科亿海微电子科技(苏州)有限公司 加速计算二维图像cnn卷积的方法
CN108229645A (zh) * 2017-04-28 2018-06-29 北京市商汤科技开发有限公司 卷积加速和计算处理方法、装置、电子设备及存储介质
CN108681984A (zh) * 2018-07-26 2018-10-19 珠海市微半导体有限公司 一种3*3卷积算法的加速电路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140092116A1 (en) * 2012-06-18 2014-04-03 Uti Limited Partnership Wide dynamic range display
TWI569587B (zh) * 2015-02-06 2017-02-01 晨星半導體股份有限公司 解迴旋交錯器
JP6658033B2 (ja) * 2016-02-05 2020-03-04 富士通株式会社 演算処理回路、および情報処理装置
KR102642853B1 (ko) * 2017-01-05 2024-03-05 한국전자통신연구원 컨볼루션 회로, 그것을 포함하는 어플리케이션 프로세서 및 그것의 동작 방법
CN108595379A (zh) * 2018-05-08 2018-09-28 济南浪潮高新科技投资发展有限公司 一种基于多级缓存的并行化卷积运算方法及系统
CN108764182B (zh) * 2018-06-01 2020-12-08 阿依瓦(北京)技术有限公司 一种优化的用于人工智能的加速方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104993837A (zh) * 2015-07-24 2015-10-21 丽水博远科技有限公司 一种卷积交织方法和卷积交织器
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
CN108229645A (zh) * 2017-04-28 2018-06-29 北京市商汤科技开发有限公司 卷积加速和计算处理方法、装置、电子设备及存储介质
CN107862650A (zh) * 2017-11-29 2018-03-30 中科亿海微电子科技(苏州)有限公司 加速计算二维图像cnn卷积的方法
CN108681984A (zh) * 2018-07-26 2018-10-19 珠海市微半导体有限公司 一种3*3卷积算法的加速电路

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Using FIFOs in hardware-software co-design for FPGA based embedded systems";C. Ross等;《12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines》;20041213;全文 *
"基于Zynq的卷积神经网络加速器设计";李申煜;《中国优秀硕士学位论文全文数据库·信息科技辑》;20180615;第2018年卷(第6期);全文 *
"视频图像实时复原专用SOC系统研究";姚高翔;《中国优秀硕士学位论文全文数据库·信息科技辑》;20180415;第2018年卷(第4期);全文 *

Also Published As

Publication number Publication date
CN109816093A (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
US11403025B2 (en) Matrix transfer accelerator system and method
CN107992943A (zh) 用于卷积神经网络的缓冲器寻址
CN110825375B (zh) 一种量子程序的转化方法、装置、存储介质和电子装置
CN108133270A (zh) 卷积神经网络加速方法及装置
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
US11436017B2 (en) Data temporary storage apparatus, data temporary storage method and operation method
CN108717571B (zh) 一种用于人工智能的加速方法和装置
CN109146065B (zh) 二维数据的卷积运算方法及装置
WO2022206556A1 (zh) 图像数据的矩阵运算方法、装置、设备及存储介质
EP3816867A1 (en) Data reading/writing method and system in 3d image processing, storage medium, and terminal
US20180189230A1 (en) Processor in non-volatile storage memory
US11705207B2 (en) Processor in non-volatile storage memory
CN109816093B (zh) 一种单路式卷积实现方法
CN109800867B (zh) 一种基于fpga片外存储器的数据调用方法
CN113743587A (zh) 一种卷积神经网络池化计算方法、系统、及存储介质
Shahbahrami et al. FPGA implementation of parallel histogram computation
Shang et al. LACS: A high-computational-efficiency accelerator for CNNs
EP1556801A2 (en) Technique for improving the efficiency of reconfigurable hardware
CN112348182A (zh) 一种神经网络maxout层计算装置
CN116051345A (zh) 图像数据处理方法、装置、计算机设备及可读存储介质
CN111340224B (zh) 适用于低资源嵌入式芯片的cnn网络的加速设计方法
CN114118395B (zh) 智能处理器装置与降低存储器带宽的方法
US11756257B2 (en) Intersection testing in ray tracing systems with skipping of nodes in sub-trees of hierarchical acceleration structures
US11403803B2 (en) Hierarchical acceleration structures for use in ray tracing systems
US20210288650A1 (en) Semiconductor device and circuit layout method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant