CN114565501B - 用于卷积运算的数据加载方法及其装置 - Google Patents
用于卷积运算的数据加载方法及其装置 Download PDFInfo
- Publication number
- CN114565501B CN114565501B CN202210156894.8A CN202210156894A CN114565501B CN 114565501 B CN114565501 B CN 114565501B CN 202210156894 A CN202210156894 A CN 202210156894A CN 114565501 B CN114565501 B CN 114565501B
- Authority
- CN
- China
- Prior art keywords
- cache
- feature map
- sub
- data
- feature
- 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
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000003491 array Methods 0.000 claims abstract description 5
- 239000000872 buffer Substances 0.000 claims description 54
- 238000010586 diagram Methods 0.000 claims description 35
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 101150055297 SET1 gene Proteins 0.000 description 4
- 101100042371 Caenorhabditis elegans set-3 gene Proteins 0.000 description 3
- 101150117538 Set2 gene Proteins 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种用于卷积运算的数据加载方法、装置、计算机设备、存储介质和计算机程序产品。应用于由若干个缓存体阵列排布而成的缓存单元,同一行缓存体构成一缓存行,若干个缓存行构成一缓存组。方法包括:将待加载至缓存单元的特征图拆分成若干个子特征图;根据各子特征图在特征图中的位置关系,在各缓存行中确定各子特征图对应的目标缓存行;其中,相同位置关系的至少两个子特征图对应的目标缓存行位于同一缓存组中,相邻位置关系的至少两个子特征图对应的目标缓存行位于不同缓存组中;将子特征图的数据内容加载至子特征图对应的目标缓存行中。采用本方法能够提高卷积运算效率。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种用于卷积运算的数据加载方法及其装置。
背景技术
目前主流的人工智能算法在进行卷积运算时,往往会将储存在内存(memory)中的特征图装载到一级缓存(L1 Cache)中,再等到需要时从一级缓存中读取出目标数据进行卷积运算,以利用一级缓存优异的读写速度来加速卷积运算。
然而,由于一级缓存的读写特性和卷积运算的运算特性,传统技术中在利用一级缓存加速卷积运算时往往容易出现读写冲突的情况,这不利于提高卷积运算的效率。
因此,传统技术中存在卷积运算效率不高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高卷积运算效率的数据加载方法及其装置。
第一方面,本申请提供了一种用于卷积运算的数据加载方法,应用于由若干个缓存体阵列排布而成的缓存单元,同一行所述缓存体构成一缓存行,若干个所述缓存行构成一缓存组,所述方法包括:
将待加载至所述缓存单元的特征图拆分成若干个子特征图;
根据各所述子特征图在所述特征图中的位置关系,在各所述缓存行中确定各所述子特征图对应的目标缓存行;其中,相同位置关系的至少两个所述子特征图对应的目标缓存行位于同一所述缓存组中,相邻位置关系的至少两个所述子特征图对应的目标缓存行位于不同所述缓存组中;
将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行中。
在其中一个实施例中,在所述将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行中的步骤之后,所述方法还包括:
在各所述缓存组中确定目标缓存组;其中,所述目标缓存组包括所述缓存单元的第2N行缓存组和所述缓存单元的第2N+1行缓存组中的其中一种;N为大于或等于0的整数;
对于所述目标缓存组中的任一缓存行,将所述任一缓存行中的前X个存储体所缓存的数据迁移至所述目标缓存行中的后X个存储体中;所述前X个存储体为在所述任一缓存行中缓存有所述数据内容的存储体。
在其中一个实施例中,所述在各所述缓存组中确定目标缓存组,包括:
获取各所述缓存组在所述缓存单元中对应的缓存组序号;
将所述缓存组序号为奇数的至少一个缓存组,作为所述目标缓存组,或者,将所述缓存组序号为偶数的至少一个缓存组,作为所述目标缓存组。
在其中一个实施例中,所述将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行中,包括:
获取所述子特征图对应的原始特征图数据;
确定所述原始特征图数据中的有效特征图数据;所述有效特征图数据为实际参与卷积运算的特征图数据;
将所述子特征图对应的有效特征图数据作为所述子特征图的数据内容加载至所述目标缓存行中。
在其中一个实施例中,所述确定所述原始特征图数据中的有效特征图数据,包括:
获取所述卷积运算的卷积参数;所述卷积参数包括卷积滑动步长和卷积核格式;
根据所述卷积步长和所述卷积核格式,提取出所述原始特征图数据中的有效特征图数据。
在其中一个实施例中,所述根据所述卷积步长和所述卷积核格式,提取出所述原始特征图数据中的有效特征图数据,包括:
根据所述卷积步长和所述卷积核格式,确定所述子特征图中参与所述卷积运算的像素点,获得所述子特征图中的有效像素点;
将所述有效像素点对应的像素值,作为所述子特征图对应的有效特征图数据。
在其中一个实施例中,所述将待加载至所述缓存单元的特征图拆分成若干个子特征图,包括:
获取所述特征图的特征图格式和单个所述缓存体的数据容量;
根据所述特征图的特征图格式和所述缓存体的数据容量,将所述特征图拆分成若干个所述子特征图,以使单个所述子特征图的数据量为所述缓存体的数据容量的2的M次方倍;M为大于或等于0的整数。
第二方面,本申请还提供了一种用于卷积运算的数据加载装置,应用于由若干个缓存体阵列排布而成的缓存单元,所述缓存单元包括至少一个缓存组,每个所述缓存组中包括至少一条缓存行,所述装置包括:
划分模块,用于将待加载至所述缓存单元中的特征图拆分成若干个子特征图;
确定模块,用于根据各所述子特征图在所述特征图中的位置关系,在所述至少一条缓存行中确定各所述子特征图对应的目标缓存行;其中,相同位置关系的至少两个所述子特征图对应的目标缓存行位于同一所述缓存组中,相邻位置关系的至少两个所述子特征图对应的目标缓存行分别位于不同所述缓存组中;
加载模块,用于将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行。
上述用于卷积运算的数据加载方法及其装置,应用于由若干个缓存体阵列排布而成的缓存单元,同一行所述缓存体构成一缓存行,若干个所述缓存行构成一缓存组,通过将待加载至缓存单元的特征图拆分成若干个子特征图;并根据各子特征图在特征图中的位置关系,在各缓存行中确定各子特征图对应的目标缓存行;其中,相同位置关系的至少两个子特征图对应的目标缓存行位于同一缓存组中,相邻位置关系的至少两个子特征图对应的目标缓存行位于不同缓存组中;再将子特征图的数据内容加载至子特征图对应的目标缓存行中。如此,通过将各个均等划分的子特征图的数据合理地加载至一级缓存中,使得在需要同时利用相邻两个子特征图的数据进行卷积运算时,实现在一个循环内对两个相邻子特征图进行缓存命中测试,保障了两个相邻子特征图的缓存命中速度,以便卷积需要的数据在横跨两个子特征图时仍然能够被快速读取,避免存在命中测试分歧(Set split)的情况,进而提高了卷积运算效率。
附图说明
图1为一个实施例中一种用于卷积运算的数据加载方法的流程示意图;
图2为一个实施例中一种一级缓存的结构示意图;
图3为一个实施例中一种特征图的数据加载示意图;
图4为一个实施例中一种处理器的结构框图;
图5为一个实施例中一种子特征图的划分示意图;
图6为一个实施例中一种缓存行的结构示意图;
图7为一个实施例中一种子特征图的数据加载示意图;
图8为一个实施例中一种目标缓存行的划分示意图;
图9为另一个实施例中一种特征图的数据加载示意图;
图10为一个实施例中一种卷积运算的数据读取示意图;
图11为一个实施例中另一种特征图的数据加载示意图;
图12为一个实施例中一种一级缓存的数据迁移示意图;
图13为另一个实施例中另一种特征图的数据加载示意图;
图14为一个实施例中又一种特征图的数据加载示意图;
图15为一个实施例中一种特征图的示意图;
图16为另一个实施例中一种用于卷积运算的数据加载方法的流程示意图;
图17为一个实施例中一种用于卷积运算的数据加载装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种用于卷积运算的数据加载方法,该方法可以应用于如图2所示的缓存单元(例如,一级缓存,L1 Cache)中,请参见图2,该缓存单元可以由若干个缓存体(Bank)阵列排布而成,同一行缓存体构成一条缓存行(Cache Line),若干个条缓存行构成一缓存组(Set),同一列缓存体构成一缓存池(BANK)。
在一级缓存中,缓存体是读写一级缓存的最小单元,缓存行是一级缓存做缓存命中测试(hit miss test)的最小单元。在每个循环(cycle)中,一级缓存只能够从每个缓存池中选一个缓存体来读写,每个循环(cycle)中,每个缓存组能够同时选取一条缓存行做缓存命中测试,采用上述读写特性使得一级缓存能够保持优异的读写速度。
在利用一级缓存加速卷积运算的过程中,发明人发现,由于缓存行是一级缓存做缓存命中测试(hit miss test)的最小单元,当卷积需要同时读取的多个数据被加载到同一个缓存组中的不同缓存行时,一级缓存在做缓存命中测试时,就无法在一个循环内对卷积所需多个数据做完缓存命中测试。例如,图3所示,需要同时读取的多个特征图数据p0和p1分别被加载到缓存组0中的缓存行0和缓存行1中,那么一级缓存就必须分两个循环才能命中缓存行0和缓存行1所在的p0和p1。此时特征图数据p0和p1之间存在命中测试分歧(缓存组分歧,Set split)的情况,不利于提高卷积运算效率。
针对上述情况,本申请提出了一种用于卷积运算的数据加载方法,该方法包括如下步骤:
步骤S110,将待加载至缓存单元的特征图拆分成若干个子特征图。
其中,缓存单元可以是指一级缓存。
具体实现中,如下图4所示,人工智能算法在处理器(如,图形处理器,GPU)中的执行单元(Execute Unit)中的算术运算单元(ALU)内运行时,当需要数据时会向纹理单元(Texture Unit)发送数据请求(Data Request)。纹理单元的输入模块(TU In)解析数据请求中的数据描述信息,并发送到纹理缓存控制模块(Texel Cache Control)。纹理缓存控制模块根据纹理单元的输入模块发过来的数据请求,首先在一级缓存中做缓存命中测试,如果命中(hit)了,就将数据从一级缓存中读出来,并通过纹理单元的输出模块(TU Out)返回给执行单元,如果未命中(miss),则就向二级缓存(L2 Cache)以及内存(Memory)请求数据,并将请求回来的数据(即需要进行卷积运算的特征图)从二级缓存写到一级缓存中。
在将待加载至缓存单元的特征图从二级缓存写到一级缓存的过程中,数据加载装置可以将该至少一个通道的特征图均等拆分成若干个子特征图。且单个子特征图的数据量与一级缓存中单个缓存体的数据容量之间满足预设的倍数关系。具体来说,单个子特征图的数据量为缓存体的数据容量的2的M次方倍;M为大于或等于0的整数。
实际应用中,子特征图也可以命名为特征图块(block)。为了使本申请的技术方案更加清楚明白,图5实例性地提供了一种子特征图的划分示意图,举例来说,已知特征图A的尺寸为width*height=16*8,特征图格式(format)是8bpp(8bit per pixel),包括c0和c1两个通道(channel),缓存体(Bank)的数据容量为32bit,数据加载装置则可以将该每个通道的特征图A均等分成16个子特征图(image block);其中,每个子特征图包含4*2个8bpp(64bit)的数据量,将一个子特征图(如,Block03)写入一级缓存中需要占用两个缓存体(Bank00和Bank10)的空间。
此时两个通道相同位置的子特征图包含的缓存体数刚好构成一条缓存行。如图6中通道c0和通道c1的子特征图block00,共包含四个缓存体,组成了一条缓存行cache line0。
步骤S120,根据各子特征图在特征图中的位置关系,在各缓存行中确定各子特征图对应的目标缓存行。
其中,相同位置关系的至少两个子特征图对应的目标缓存行位于同一缓存组中,相邻位置关系的至少两个子特征图对应的目标缓存行位于不同缓存组中。
具体实现中,数据加载装置根据各子特征图在特征图中的位置关系,在各缓存行中确定各子特征图对应的目标缓存行。
具体来说,数据加载装置可以将子特征图作为加载特征图至一级缓存的基本单元,请参见图7,数据加载装置将每个通道相同位置关系的至少两个子特征图加载至同一条缓存行中,即相同位置关系的至少两个子特征图具有一条对应的目标缓存行。
在卷积运算时,卷积核会沿着相邻的区域移动,当前子特征图的相邻子特征图就是下一个被读取的数据块。另外,卷积核在水平方向或者垂直方向平滑移动,必然会横跨两个子特征图,这里就需要保证两个相邻子特征图能够快速命中,以便卷积需要的数据在横跨两个子特征图时仍然能够被快速读取,数据加载装置则需要将相同位置关系的至少两个子特征图的数据内容加载至处于同一缓存组中的缓存行,将相邻位置关系的至少两个子特征图的数据内容分别加载至不同缓存组中的缓存行。也就是说,相同位置关系的至少两个子特征图对应的目标缓存行位于同一缓存组中,相邻位置关系的至少两个子特征图对应的目标缓存行位于不同缓存组中。
步骤S130,将子特征图的数据内容加载至子特征图对应的目标缓存行中。
具体实现中,数据加载装置则将各个子特征图的数据内容加载至各个子特征图对应的目标缓存行中。具体来说,数据加载装置则将每个通道相同位置关系的至少两个子特征图加载至同一条缓存行中,将相邻位置关系的至少两个子特征图的数据内容分别加载至不同缓存组中的缓存行中。为了便于本领域技术人员的理解,如图8所示,在同一通道的特征图中,相邻的子特征图的数据加载在不同的缓存组中。在不同通道的特征图中,相同位置的子特征图的数据都加载在同一个缓存组。
上述方法的技术方案,应用于由若干个缓存体阵列排布而成的一级缓存,同一行所述缓存体构成一缓存行,若干个所述缓存行构成一缓存组,通过将待加载至缓存单元的特征图拆分成若干个子特征图;并根据各子特征图在特征图中的位置关系,在各缓存行中确定各子特征图对应的目标缓存行;其中,相同位置关系的至少两个子特征图对应的目标缓存行位于同一缓存组中,相邻位置关系的至少两个子特征图对应的目标缓存行位于不同缓存组中;再将子特征图的数据内容加载至子特征图对应的目标缓存行中。如此,通过将各个均等划分的子特征图的数据合理地加载至一级缓存中,使得在需要同时利用相邻两个子特征图的数据进行卷积运算时,实现在一个循环内对两个相邻子特征图进行缓存命中测试,保障了两个相邻子特征图的缓存命中速度,以便卷积需要的数据在横跨两个子特征图时仍然能够被快速读取,降低了发生命中测试分歧(Set split)的概率,进而提高了卷积运算效率。
在利用一级缓存加速卷积运算的过程中,由于在每个循环中,一级缓存只能够从每个缓存池中选一个缓存体来读写,当卷积运算所需的数据被加载到同一个缓存池中的不同缓存体中时,如图9所示,特征图中p0和p1分别被加载到缓存池BANK0中的Bank00、Bank04缓存体,那么在卷积运算过程中就无法在一个循环内从缓存池BANK0的Bank00、Bank04缓存体中读出p0,p1,只能分两个cycle。此时特征图数据p0和p1之间存在缓存体冲突(Bankconflict)的情况,不利于提高卷积运算的效率。
更具体地,卷积在进行运算时,会先计算完一个通道上的所有数据后,再切换到下一个。这意味着卷积会按照特征图的通道来读取数据。请参见图10所示的两通道特征图;其中,灰色的方框部分为卷积核,当卷积核到如图10所示位置时,需要读取子特征图Block0~Block3的数据运算时会先读取通道c0的特征图数据,然后是通道c1的特征图数据。即先读取B00、B01、B02、B03。
请参见图11,可以采用上述方法将通道c1的特征图的子特征图划分到4个缓存组中,即子特征图block0在缓存组set0中,同理,将子特征图block1,block2,block3分别加载在一级缓存中的缓存组set1,set2,set3中。
此时B00与B02、B04、B06,B01与B03、B05、B07存在bank conflict,这导致卷积无法在1cycle内读取出所需要的数据,需要4cycle才能读出4block的数据,即卷积读取数据需:
0cycle:B00,B01
1cycle:B02,B03
2cycle:B04,B05
3cycle:B06,B07
共4个cycle。
针对上述情况,在另一个实施例中,在将子特征图的数据内容加载至子特征图对应的目标缓存行中的步骤之后,方法还包括:在各缓存组中确定目标缓存组;其中,目标缓存组包括缓存单元的第2N行缓存组和缓存单元的第2N+1行缓存组中的其中一种;N为大于或等于0的整数;对于目标缓存组中的任一缓存行,将任一缓存行中的前X个存储体所缓存的数据迁移至目标缓存行中的后X个存储体中;前X个存储体为在任一缓存行中缓存有数据内容的存储体。
其中,在各缓存组中确定目标缓存组,包括:获取各缓存组在缓存单元中对应的缓存组序号;将缓存组序号为奇数的至少一个缓存组,作为目标缓存组,或者,将缓存组序号为偶数的至少一个缓存组,作为目标缓存组。
具体实现中,数据加载装置可以在各缓存组中确定目标缓存组。该目标缓存组包括缓存单元的第2N行缓存组和缓存单元的第2N+1行缓存组中的其中一种。N为大于或等于0的整数。更具体地,数据加载装置可以获取各缓存组在缓存单元中对应的缓存组序号;将缓存组序号为奇数的至少一个缓存组,作为目标缓存组,或者,将缓存组序号为偶数的至少一个缓存组,作为目标缓存组。
举例来说,已知一级缓存包括缓存组set0、缓存组set1、缓存组set2和缓存组set3;数据加载装置可以将缓存组set1和缓存组set3作为目标缓存组,或者,将缓存组set0和缓存组set2作为目标缓存组。
对于目标缓存组中的任一缓存行,数据加载装置可以将任一缓存行中的前X个存储体所缓存的数据迁移至目标缓存行中的后X个存储体中;前X个存储体为在任一缓存行中缓存有数据内容的存储体,从而减少同一缓存池中储存有数据的缓存体的数量,避免储存有数据的缓存体都集中分布在个别缓存池中,降低发生缓存体冲突(bank conflict)的概率,提高数据读取效率。
举例来说,请参见图12,数据加载装置可以将一级缓存中序号为奇数的缓存组(即缓存组set1和缓存组set3)中的每个缓存行中的前两个缓存体所储存的数据迁移至每个缓存行中的后两个缓存体中。序号为偶数的缓存组(即缓存组set0和缓存组set2)中的缓存体所储存的数据不迁移。
如此,假设卷积运算需要读取B00、B01、B02、B03、B04、B05、B06、B07,卷积运算则可以在2cycle内读取出所需要的数据,即卷积读取数据需:
0cycle:B00,B01,B02,B03
1cycle:B04,B05,B06,B07
只需2个cycle。
可以看出,采用本实施例的技术方案后,可以使从一级缓存中读取数据的时间降低50%,加快了读取速度。对于其他情况下的数据读取,只要所需数据在缓存中所占的缓存体(bank)数目不超过缓存中的缓存池(BANK)数目,都可以通过本实施例的技术方案在1cycle中读出所需数据。由于,在上述示例中,所需数据占用了8个缓存体(B00~B07),该一级缓存是由4个缓存池组成的,所以最快也需要8/4=2cycle才能读出所需数据。
在利用一级缓存加速卷积运算的过程中,当卷积核的尺寸小于卷积滑动步长时,会使卷积在移动过程中跳过一些数据,这些跳过的数据并不参与卷积的运算,所以没有必要加载在一级缓存中。然而,相关技术是将特征图的所有数据都加载到一级缓存中;如图13所示,当卷积核size是1*1,stride=2*2时,特征图中的灰色部分(如,p1、p3等)才是卷积需要的数据,此时白色部分(如,p0、p2、p4、p5、p6、p7)就不需要被加载到一级缓存中。而相关技术是不考虑当卷积核的尺寸和卷积滑动步长的情况下,直接将特征图的所有数据加载至一级缓存中,不仅浪费一级缓存宝贵的存储空间,还会使有效数据变得稀疏,同时也增加了缓存体冲突(Bank conflict)的概率。如图13所示,p0、p1、p4、p5被加载到缓存池BANK0的第一个缓存体Bank00中,事实上只有p1是有效的,缓存体Bank00里3/4的空间都是无效数据。同理还有缓存体Bank02的p2、p3、p6、p7。假如,此时卷积真正需要的是p1和p3,那p1和p3就同时存在缓存体冲突(Bank conflict)和命中测试分歧(缓存组分歧,Set split)的情况,不利于提高卷积运算的效率。
基于上述情况,在另一个实施例中,将子特征图的数据内容加载至子特征图对应的目标缓存行中,包括:获取子特征图对应的原始特征图数据;确定原始特征图数据中的有效特征图数据;将子特征图对应的有效特征图数据作为子特征图的数据内容加载至目标缓存行中。
其中,有效特征图数据为实际参与卷积运算的特征图数据。
具体实现中,数据加载装置在将子特征图的数据内容加载至子特征图对应的目标缓存行中的过程中,数据加载装置可以获取子特征图对应的原始特征图数据,并确定出实际参与卷积运算的有效特征图数据。具体来说,数据加载装置可以获取卷积运算的卷积参数,例如,数据加载装置可以获取卷积运算所采用的卷积核的卷积步长、卷积核尺寸和卷积核类型等卷积核格式,并基于卷积步长、卷积核尺寸和卷积核类型,确定出原始特征图数据中的有效特征图数据。数据加载装置再将该子特征图对应的有效特征图数据作为子特征图的数据内容加载至目标缓存行中。
为了使本申请的技术方案及优点更加清楚明白,请参见图14,图14以卷积核size是1*1,滑动步长stride=2*2来说明本实施例的技术方案。图14中像素点0、像素点2、像素点4、像素点6、像素点16、像素点18、像素点20和像素点22等有效像素点(图14中的阴影颜色像素点)是卷积核所需的有效数据,无效像素点(图14中的无颜色像素点)是不参与当前卷积运算的数据。数据加载装置则将像素点0、像素点2、像素点4、像素点6、像素点16、像素点18、像素点20和像素点22等有效像素点对应的像素值加载至一级缓存中的缓存行。
本实施例的技术方案,从而可以使得将实际需要进行卷积运算的特征图数据加载至一级缓存,节约了一级缓存宝贵的存储空间,使有效数据变得密集,降低了出现缓存体冲突(Bank conflict)的概率,从而提高了卷积运算的效率。
在另一个实施例中,根据卷积步长和卷积核格式,提取出原始特征图数据中的有效特征图数据,包括:根据卷积步长和卷积核格式,确定子特征图中参与卷积运算的像素点,获得子特征图中的有效像素点;将有效像素点对应的像素值,作为子特征图对应的有效特征图数据。
其中,卷积核格式可以包括卷积核类型和卷积核尺寸等信息。其中,卷积核类型可以包括标准卷积核和空洞卷积核等。
具体实现中,数据加载装置在根据卷积步长和卷积核格式,提取出原始特征图数据中的有效特征图数据的过程中,数据加载装置可以按照卷积核的卷积步长、卷积核类型和卷积核尺寸,确定出各个子特征图中需要参与卷积运算的像素点,从而实现确定出各个子特征图中的有效像素点;数据加载装置在将子特征图中的有效像素点对应的像素值,作为子特征图对应的有效特征图数据。
为了便于本领域技术人员的理解,图15实例性地提供了一种特征图的示意图;如图15所示,已知当前卷积运算采用的卷积核为尺寸为1*1的标准卷积核,且卷积步长stride=2*2,则数据加载装置可以确定出该特征图中的像素点0、像素点2为子特征图0的有效像素点;像素点4、像素点6为子特征图1的有效像素点。
本实施例的技术方案,通过根据卷积步长和卷积核格式,确定子特征图中参与卷积运算的像素点,获得子特征图中的有效像素点;将有效像素点对应的像素值,作为子特征图对应的有效特征图数据,从而可以使得将实际需要进行卷积运算的特征图数据加载至一级缓存,避免将过多的冗余数据加载至一级缓存中,从而提高了一级缓存的利用率。
在另一个实施例中,将待加载至缓存单元的特征图拆分成若干个子特征图,包括:获取特征图的特征图格式和单个缓存体的数据容量;根据特征图的特征图格式和缓存体的数据容量,将特征图拆分成若干个子特征图,以使单个子特征图的数据量为缓存体的数据容量的2的M次方倍;M为大于或等于0的整数。
具体实现中,处理器在将待加载至缓存单元的特征图拆分成若干个子特征图的过程中,处理器可以获取特征图的特征图格式(format)和单个缓存体(Bank)的数据容量(size),将特征图中的每个通道(channel)均等划分为若干个子特征图(image block)。
实际应用中,单个子特征图的数据量与缓存体的数据容量可以表示为:
Sizeimage_block=2M*Sizecache_Bank;
其中,M=0,1,2,3,...。
也就是说,子特征图(image block)的size是L1 Cache Bank size的2M倍。
本实施例的技术方案,通过将根据特征图的特征图格式和缓存体的数据容量,将特征图拆分成若干个子特征图,从而便于后续处理器将各个子特征图合理地摆放至一级缓存中的各个缓存体中,便于后续高效地从一级缓存中读取出目标数据进行卷积运算,以加快卷积运算的效率。
在另一个实施例中,如图16所示,提供了一种用于卷积运算的数据加载方法,以该方法应用于由若干个缓存体阵列排布而成的缓存单元,同一行所述缓存体构成一缓存行,若干个所述缓存行构成一缓存组,包括以下步骤:
步骤S1610,将待加载至所述缓存单元的特征图拆分成若干个子特征图。
步骤S1620,根据各所述子特征图在所述特征图中的位置关系,在各所述缓存行中确定各所述子特征图对应的目标缓存行;其中,相同位置关系的至少两个所述子特征图对应的目标缓存行位于同一所述缓存组中,相邻位置关系的至少两个所述子特征图对应的目标缓存行位于不同所述缓存组中。
步骤S1630,获取所述子特征图对应的原始特征图数据。
步骤S1640,确定所述原始特征图数据中的有效特征图数据;所述有效特征图数据为实际参与卷积运算的特征图数据。
步骤S1650,将所述子特征图对应的有效特征图数据作为所述子特征图的数据内容加载至所述目标缓存行中。
步骤S1660,在各所述缓存组中确定目标缓存组;其中,所述目标缓存组包括所述缓存单元的第2N行缓存组和所述缓存单元的第2N+1行缓存组中的其中一种;N为大于或等于0的整数;
步骤S1670,对于所述目标缓存组中的任一缓存行,将所述任一缓存行中的前X个存储体所缓存的数据迁移至所述目标缓存行中的后X个存储体中;所述前X个存储体为在所述任一缓存行中缓存有所述数据内容的存储体。
需要说明的是,上述步骤的具体限定可以参见上文对一种用于卷积运算的数据加载方法的具体限定。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的用于卷积运算的数据加载方法的用于卷积运算的数据加载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个用于卷积运算的数据加载装置实施例中的具体限定可以参见上文中对于用于卷积运算的数据加载方法的限定,在此不再赘述。
在一个实施例中,如图17所示,提供了一种用于卷积运算的数据加载装置,应用于由若干个缓存体阵列排布而成的缓存单元,所述缓存单元包括至少一个缓存组,每个所述缓存组中包括至少一条缓存行,包括:
划分模块1710,用于将待加载至所述缓存单元中的特征图拆分成若干个子特征图;
确定模块1720,用于根据各所述子特征图在所述特征图中的位置关系,在所述至少一条缓存行中确定各所述子特征图对应的目标缓存行;其中,相同位置关系的至少两个所述子特征图对应的目标缓存行位于同一所述缓存组中,相邻位置关系的至少两个所述子特征图对应的目标缓存行分别位于不同所述缓存组中;
加载模块1730,用于将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行。
在其中一个实施例中,所述装置还用于在各所述缓存组中确定目标缓存组;其中,所述目标缓存组包括所述缓存单元的第2N行缓存组和所述缓存单元的第2N+1行缓存组中的其中一种;N为大于或等于0的整数;对于所述目标缓存组中的任一缓存行,将所述任一缓存行中的前X个存储体所缓存的数据迁移至所述目标缓存行中的后X个存储体中;所述前X个存储体为在所述任一缓存行中缓存有所述数据内容的存储体。
在其中一个实施例中,所述装置还用于获取各所述缓存组在所述缓存单元中对应的缓存组序号;将所述缓存组序号为奇数的至少一个缓存组,作为所述目标缓存组,或者,将所述缓存组序号为偶数的至少一个缓存组,作为所述目标缓存组。
在其中一个实施例中,所述加载模块1730,具体用于获取所述子特征图对应的原始特征图数据;确定所述原始特征图数据中的有效特征图数据;所述有效特征图数据为实际参与卷积运算的特征图数据;将所述子特征图对应的有效特征图数据作为所述子特征图的数据内容加载至所述目标缓存行中。
在其中一个实施例中,所述加载模块1730,具体用于获取所述卷积运算的卷积参数;所述卷积参数包括卷积滑动步长和卷积核格式;根据所述卷积步长和所述卷积核格式,提取出所述原始特征图数据中的有效特征图数据。
在其中一个实施例中,所述加载模块1730,具体用于根据所述卷积步长和所述卷积核格式,确定所述子特征图中参与所述卷积运算的像素点,获得所述子特征图中的有效像素点;将所述有效像素点对应的像素值,作为所述子特征图对应的有效特征图数据。
在其中一个实施例中,所述划分模块1710,具体用于获取所述特征图的特征图格式和单个所述缓存体的数据容量;根据所述特征图的特征图格式和所述缓存体的数据容量,将所述特征图拆分成若干个所述子特征图,以使单个所述子特征图的数据量为所述缓存体的数据容量的2的M次方倍;M为大于或等于0的整数。
上述用于卷积运算的数据加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (14)
1.一种用于卷积运算的数据加载方法,其特征在于,应用于由若干个缓存体阵列排布而成的缓存单元,同一行所述缓存体构成一缓存行,若干个所述缓存行构成一缓存组,所述方法包括:
将待加载至所述缓存单元的特征图拆分成若干个子特征图;
根据各所述子特征图在所述特征图中的位置关系,在各所述缓存行中确定各所述子特征图对应的目标缓存行;其中,在不同通道的特征图中具有相同位置关系的至少两个所述子特征图对应的目标缓存行位于同一所述缓存组中,在同一通道的特征图中具有相邻位置关系的至少两个所述子特征图对应的目标缓存行位于不同所述缓存组中;
将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行中。
2.根据权利要求1所述的方法,其特征在于,在所述将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行中的步骤之后,所述方法还包括:
在各所述缓存组中确定目标缓存组;其中,所述目标缓存组包括所述缓存单元的第2N行缓存组和所述缓存单元的第2N+1行缓存组中的其中一种;N为大于或等于0的整数;
对于所述目标缓存组中的任一缓存行,将所述任一缓存行中的前X个存储体所缓存的数据迁移至所述目标缓存行中的后X个存储体中;所述前X个存储体为在所述任一缓存行中缓存有所述数据内容的存储体。
3.根据权利要求2所述的方法,其特征在于,所述在各所述缓存组中确定目标缓存组,包括:
获取各所述缓存组在所述缓存单元中对应的缓存组序号;
将所述缓存组序号为奇数的至少一个缓存组,作为所述目标缓存组,或者,将所述缓存组序号为偶数的至少一个缓存组,作为所述目标缓存组。
4.根据权利要求1所述的方法,其特征在于,所述将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行中,包括:
获取所述子特征图对应的原始特征图数据;
确定所述原始特征图数据中的有效特征图数据;所述有效特征图数据为实际参与卷积运算的特征图数据;
将所述子特征图对应的有效特征图数据作为所述子特征图的数据内容加载至所述目标缓存行中。
5.根据权利要求4所述的方法,其特征在于,所述确定所述原始特征图数据中的有效特征图数据,包括:
获取所述卷积运算的卷积参数;所述卷积参数包括卷积滑动步长和卷积核格式;
根据所述卷积滑动步长和所述卷积核格式,提取出所述原始特征图数据中的有效特征图数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述卷积滑动步长和所述卷积核格式,提取出所述原始特征图数据中的有效特征图数据,包括:
根据所述卷积滑动步长和所述卷积核格式,确定所述子特征图中参与所述卷积运算的像素点,获得所述子特征图中的有效像素点;
将所述有效像素点对应的像素值,作为所述子特征图对应的有效特征图数据。
7.根据权利要求1所述的方法,其特征在于,所述将待加载至所述缓存单元的特征图拆分成若干个子特征图,包括:
获取所述特征图的特征图格式和单个所述缓存体的数据容量;
根据所述特征图的特征图格式和所述缓存体的数据容量,将所述特征图拆分成若干个所述子特征图,以使单个所述子特征图的数据量为所述缓存体的数据容量的2的M次方倍;M为大于或等于0的整数。
8.一种用于卷积运算的数据加载装置,其特征在于,应用于由若干个缓存体阵列排布而成的缓存单元,所述缓存单元包括至少一个缓存组,每个所述缓存组中包括至少一条缓存行,所述装置包括:
划分模块,用于将待加载至所述缓存单元中的特征图拆分成若干个子特征图;
确定模块,用于根据各所述子特征图在所述特征图中的位置关系,在所述至少一条缓存行中确定各所述子特征图对应的目标缓存行;其中,在不同通道的特征图中具有相同位置关系的至少两个所述子特征图对应的目标缓存行位于同一所述缓存组中,在同一通道的特征图中具有相邻位置关系的至少两个所述子特征图对应的目标缓存行分别位于不同所述缓存组中;
加载模块,用于将所述子特征图的数据内容加载至所述子特征图对应的目标缓存行。
9.根据权利要求8所述的装置,其特征在于,所述装置还用于在各所述缓存组中确定目标缓存组;其中,所述目标缓存组包括所述缓存单元的第2N行缓存组和所述缓存单元的第2N+1行缓存组中的其中一种;N为大于或等于0的整数;对于所述目标缓存组中的任一缓存行,将所述任一缓存行中的前X个存储体所缓存的数据迁移至所述目标缓存行中的后X个存储体中;所述前X个存储体为在所述任一缓存行中缓存有所述数据内容的存储体。
10.根据权利要求9所述的装置,其特征在于,所述装置还用于获取各所述缓存组在所述缓存单元中对应的缓存组序号;将所述缓存组序号为奇数的至少一个缓存组,作为所述目标缓存组,或者,将所述缓存组序号为偶数的至少一个缓存组,作为所述目标缓存组。
11.根据权利要求8所述的装置,其特征在于,所述加载模块,具体用于获取所述子特征图对应的原始特征图数据;确定所述原始特征图数据中的有效特征图数据;所述有效特征图数据为实际参与卷积运算的特征图数据;将所述子特征图对应的有效特征图数据作为所述子特征图的数据内容加载至所述目标缓存行中。
12.根据权利要求11所述的装置,其特征在于,所述加载模块,具体用于获取所述卷积运算的卷积参数;所述卷积参数包括卷积滑动步长和卷积核格式;根据所述卷积滑动步长和所述卷积核格式,提取出所述原始特征图数据中的有效特征图数据。
13.根据权利要求12所述的装置,其特征在于,所述加载模块,具体用于根据所述卷积滑动步长和所述卷积核格式,确定所述子特征图中参与所述卷积运算的像素点,获得所述子特征图中的有效像素点;将所述有效像素点对应的像素值,作为所述子特征图对应的有效特征图数据。
14.根据权利要求8所述的装置,其特征在于,所述划分模块,具体用于获取所述特征图的特征图格式和单个所述缓存体的数据容量;根据所述特征图的特征图格式和所述缓存体的数据容量,将所述特征图拆分成若干个所述子特征图,以使单个所述子特征图的数据量为所述缓存体的数据容量的2的M次方倍;M为大于或等于0的整数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210156894.8A CN114565501B (zh) | 2022-02-21 | 2022-02-21 | 用于卷积运算的数据加载方法及其装置 |
US17/848,691 US20230267571A1 (en) | 2022-02-21 | 2022-06-24 | Data loading method and apparatus for convolution operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210156894.8A CN114565501B (zh) | 2022-02-21 | 2022-02-21 | 用于卷积运算的数据加载方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114565501A CN114565501A (zh) | 2022-05-31 |
CN114565501B true CN114565501B (zh) | 2024-03-22 |
Family
ID=81714752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210156894.8A Active CN114565501B (zh) | 2022-02-21 | 2022-02-21 | 用于卷积运算的数据加载方法及其装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230267571A1 (zh) |
CN (1) | CN114565501B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115034950B (zh) * | 2022-06-30 | 2023-10-24 | 格兰菲智能科技有限公司 | 线程构造方法及其装置 |
CN115292662B (zh) * | 2022-08-18 | 2023-09-22 | 上海燧原科技有限公司 | 一种卷积加速运算方法、装置、电子设备及存储介质 |
CN115529459B (zh) * | 2022-10-10 | 2024-02-02 | 格兰菲智能科技有限公司 | 中心点搜索方法、装置、计算机设备、存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243399A (zh) * | 2015-09-08 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种实现图像卷积的方法和装置、实现缓存的方法和装置 |
CN108647777A (zh) * | 2018-05-08 | 2018-10-12 | 济南浪潮高新科技投资发展有限公司 | 一种实现并行卷积计算的数据映射***及方法 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
WO2020050686A1 (en) * | 2018-05-30 | 2020-03-12 | Samsung Electronics Co., Ltd. | Image processing device and method |
CN112966807A (zh) * | 2019-12-13 | 2021-06-15 | 上海大学 | 基于存储资源受限fpga的卷积神经网络实现方法 |
CN113449852A (zh) * | 2021-08-05 | 2021-09-28 | 安谋科技(中国)有限公司 | 卷积神经网络的计算方法、片上***和电子设备 |
CN113870273A (zh) * | 2021-12-02 | 2021-12-31 | 之江实验室 | 一种基于脉动阵列的神经网络加速器特征图分割方法 |
CN113919477A (zh) * | 2020-07-08 | 2022-01-11 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络的加速方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102415508B1 (ko) * | 2017-03-28 | 2022-07-01 | 삼성전자주식회사 | 컨볼루션 신경망 처리 방법 및 장치 |
-
2022
- 2022-02-21 CN CN202210156894.8A patent/CN114565501B/zh active Active
- 2022-06-24 US US17/848,691 patent/US20230267571A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243399A (zh) * | 2015-09-08 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种实现图像卷积的方法和装置、实现缓存的方法和装置 |
CN108647777A (zh) * | 2018-05-08 | 2018-10-12 | 济南浪潮高新科技投资发展有限公司 | 一种实现并行卷积计算的数据映射***及方法 |
WO2020050686A1 (en) * | 2018-05-30 | 2020-03-12 | Samsung Electronics Co., Ltd. | Image processing device and method |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN112966807A (zh) * | 2019-12-13 | 2021-06-15 | 上海大学 | 基于存储资源受限fpga的卷积神经网络实现方法 |
CN113919477A (zh) * | 2020-07-08 | 2022-01-11 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络的加速方法及装置 |
WO2022007266A1 (zh) * | 2020-07-08 | 2022-01-13 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络的加速方法及装置 |
CN113449852A (zh) * | 2021-08-05 | 2021-09-28 | 安谋科技(中国)有限公司 | 卷积神经网络的计算方法、片上***和电子设备 |
CN113870273A (zh) * | 2021-12-02 | 2021-12-31 | 之江实验室 | 一种基于脉动阵列的神经网络加速器特征图分割方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114565501A (zh) | 2022-05-31 |
US20230267571A1 (en) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114565501B (zh) | 用于卷积运算的数据加载方法及其装置 | |
US20200202198A1 (en) | Neural network processor | |
US20120246380A1 (en) | Neighborhood operations for parallel processing | |
US8341362B2 (en) | System, method and apparatus for memory with embedded associative section for computations | |
US20230075069A1 (en) | Memory processing unit architectures and configurations | |
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
CN114169514B (zh) | 一种卷积硬件加速方法及卷积硬件加速电路 | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN115394336A (zh) | 一种存算fpga架构 | |
US10902087B2 (en) | Device and method for accelerating matrix multiply operations as a sum of outer products | |
JPH04219841A (ja) | ランダム・アクセス・メモリ装置 | |
US11829729B2 (en) | Spatiotemporal fused-multiply-add, and related systems, methods and devices | |
CN112712457A (zh) | 数据处理方法以及人工智能处理器 | |
KR0139699B1 (ko) | 이산 코사인 변환장치 | |
US10140681B2 (en) | Caching method of graphic processing unit | |
US11557090B2 (en) | Tessellation data processing method, system, medium and vector graphics processing device | |
JP2024516514A (ja) | 畳み込みニューラル・ネットワーク実行のための活性化のメモリ・マッピング | |
CN113052291B (zh) | 数据处理方法和装置 | |
KR20150078951A (ko) | 메모리 관리 방법 및 장치 | |
CN110087088B (zh) | 一种基于运动估计的数据存储方法、终端设备及存储介质 | |
US11188344B2 (en) | Apparatus and method for generating intermediate layer values in parallel | |
JP3860545B2 (ja) | 画像処理装置及び画像処理方法 | |
CN114090470B (zh) | 数据预加载装置及其预加载方法、存储介质和计算机设备 | |
CN110728367B (zh) | 用于神经网络的数据存储方法及装置 | |
US20240272797A1 (en) | Core group memory processing with multi-precision weight packing |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 200135, 11th Floor, Building 3, No. 889 Bibo Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai Patentee after: Granfei Intelligent Technology Co.,Ltd. Country or region after: China Address before: 200135 floor 3, building 2, No. 200, zhangheng Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Patentee before: Gryfield Intelligent Technology Co.,Ltd. Country or region before: China |