CN116627357A - 数据处理方法、深度学习模型的部署方法、装置及芯片 - Google Patents
数据处理方法、深度学习模型的部署方法、装置及芯片 Download PDFInfo
- Publication number
- CN116627357A CN116627357A CN202310903082.XA CN202310903082A CN116627357A CN 116627357 A CN116627357 A CN 116627357A CN 202310903082 A CN202310903082 A CN 202310903082A CN 116627357 A CN116627357 A CN 116627357A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- convolution
- processing
- storage
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 178
- 238000013136 deep learning model Methods 0.000 title claims abstract description 140
- 238000003672 processing method Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 claims abstract description 443
- 238000012545 processing Methods 0.000 claims abstract description 301
- 230000008569 process Effects 0.000 claims abstract description 128
- 230000006870 function Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 description 36
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000004148 unit process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提出了一种数据处理方法、深度学习模型的部署方法、装置及芯片,涉及计算机技术领域。数据处理方法包括:通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,N为正整数;根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至N个待处理数据处理完成。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、深度学习模型的部署方法、装置及芯片。
背景技术
TCM(Tightly Coupled Memory,紧耦合内存)是一种被直接集成在控制芯片内部总线上的紧耦合高速缓存。TCM包括ITCM(Instruction TCM,指令TCM)和DTCM(Data TCM,数据TCM)。
目前,基于TCM的加速优化方案,主要方法是把应用程序中频繁需要访问的数据放在DTCM,频繁需要执行的代码放在ITCM。
然而,在需要频繁访问的数据或需要频繁执行的代码超过TCM的空间大小时,难以直接把相应的数据或者代码直接在初始化阶段固化在TCM中,降低了数据处理效率以及应用程序的执行效率。
发明内容
本申请旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本申请的第一个方面在于提出一种数据处理方法。
本申请的第二个方面在于提出一种深度学习模型的部署方法。
本申请的第三个方面在于提出一种数据处理装置。
本申请的第四个方面在于提出一种深度学习模型的部署装置。
本申请的第五个方面在于提出一种芯片。
本申请的第六个方面在于提出一种可读存储介质。
本申请的第七个方面在于提出一种计算机程序产品。
有鉴于此,根据本申请的一个方面,提出了一种数据处理方法,该方法由控制芯片上的处理器执行,控制芯片还包括系统总线,系统总线上分配有第一存储区间和第二存储区间。数据处理方法包括:通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,N为正整数;根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至N个待处理数据处理完成。
本申请提供的数据处理方法,由控制芯片上的CPU(Central Processing Unit,中央处理器)执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
具体地,在本申请所提供的数据处理方法中,在对主存数据进行处理的过程中,具体可将主存数据分为N份,以得到N个待处理数据。其中,N为大于1的正整数。在此基础上,在对N个待处理数据进行处理的过程中,启动DMA(Direct Memory Access,直接内存访问)控制器,通过直接内存访问控制器,将上述N个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。
处理器按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,在处理器对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理器会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内,如此循环往复,直至主存数据也即上述N个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理器对N个待处理数据处理完成。这样,实现了在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
根据本申请的上述数据处理方法,还可以具有以下附加技术特征:
在一些技术方案中,可选地,控制芯片中封装有中断服务函数,在根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序之前,数据处理方法还包括:调用中断服务函数,以获取对应第一存储区间和第二存储区间的中断标志位;在中断标志位为有效状态的情况下,判定第一个待处理数据向对应的存储区间复制成功。
在上述技术方案中,上述控制芯片中还可封装有中断服务函数。处理器会调用上述中断服务函数,以获取分别对应第二存储区间以及第一存储区间的中断标志位。进一步地,处理器根据第二存储区间以及第一存储区间的中断标志位的状态,分别判断通过直接内存访问控制器,向上述第二存储区间或者第一存储区间中拷贝上述第一个待处理数据的数据拷贝过程是否完成。具体地,在中断标志位为有效状态的情况下,判定通过直接内存访问控制器,向对应的存储区间内拷贝上述第一个待处理数据的数据拷贝过程完成,也即判定直接内存访问控制器成功将上述第一个待处理数据拷贝至对应的存储区间内。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,保证了对数据拷贝过程是否完成进行判断的准确性,进而保证了数据传输处理的有序性,提高了数据的传输处理效率。
在一些技术方案中,可选地,交替处理第一存储区间和第二存储区间的待处理数据,包括:在中断标志位为有效状态的情况下,处理第一存储区间或第二存储区间中的待处理数据。
在上述技术方案中,在处理器对第二存储区间或者第一存储区间中的待处理数据进行处理之前,处理器会调用上述中断服务函数,以获取第二存储区间或者第一存储区间所对应的中断标志位。进而在获取到的中断标志位为有效状态的情况下,也即在直接内存访问控制器,向对应的第二存储区间或者第一存储区间的数据拷贝过程完成的情况下,处理器才会处理对应的第二存储区间或者第一存储区间中的待处理数据。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,进而再根据数据拷贝过程的完成情况进行数据处理工作,保证了数据传输处理的有序性,提高了数据的传输处理效率。
在一些技术方案中,可选地,第一存储区间和第二存储区间为第一内存的存储区间,第一内存支持编程寻址,第一内存为紧耦合高度缓存,第一存储区间和第二存储区间的空间地址相互独立。
在上述技术方案中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。
其中,上述第一内存支持编程寻址。在实际的应用过程中,上述第一内存具体可为片上紧耦合高度缓存。
进一步地,上述第二存储区间以及第一存储区间二者的空间地址相互独立,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
在一些技术方案中,可选地,直接内存访问控制器的通道数量与系统总线上分配的存储区间的数量相对应。
在上述技术方案中,上述直接内存访问控制器的硬件通道数量,与上述系统总线上分配的存储区间的数量相对应。如此,直接内存访问控制器的硬件通道能够与上述系统总线上分配的存储区间之间一一对应,以便实现在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,从而在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高数据的传输处理效率,进而提高应用程序的执行效率。
根据本申请的第二个方面,提出了一种深度学习模型的部署方法,该方法包括:获取深度学习模型的卷积数据,卷积数据包括深度学习模型的卷积核的参数量;在参数量大于第一内存值的情况下,将卷积核的权重数据分割为N个待处理数据,通过上述任一技术方案中的数据处理方法,处理N个待处理数据;其中,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,N为正整数。
本申请提供的深度学习模型的部署方法,由控制芯片上的处理器执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存DTCM。
具体地,在本申请所提供的深度学习模型的部署方法中,在通过深度学习模型进行卷积处理的过程中,获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理器比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理器会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为N个待处理数据。其中,N为大于1的正整数。进一步地,在处理器通过对卷积核的权重数据进行分割从而得到N个待处理数据之后,处理器再通过上述任一技术方案中的数据处理方法,对分割得到的N个待处理数据进行处理,直至N个待处理数据被处理完成。这样,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
根据本申请的上述深度学习模型的部署方法,还可以具有以下附加技术特征:
在一些技术方案中,可选地,在获取深度学习模型的卷积数据之后,深度学习模型的部署方法还包括:在参数量小于或等于第一内存值的情况下,将权重数据整体复制到第一内存中进行处理。
在上述技术方案中,在上述第一内存值大于或等于上述参数量的情况下,说明卷积核的参数量在第一内存所能承载的数据量范围之内。此时,处理器直接将上述权重数据整体拷贝到第一内存中进行处理。这样,基于上述第一内存的内存值与卷积核的参数量的比较结果,采取不同的数据传输处理模式,对权重数据进行传输处理,实现了基于深度学习模型的权重层参数量和DTCM即第一内存的空间大小关系,自适应优化权重数据的处理策略,提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
在一些技术方案中,可选地,卷积数据还包括每一层卷积处理的卷积输入数据,在获取深度学习模型的卷积数据之后,部署方法还包括:针对每一层卷积处理,在卷积输入数据小于第二内存值的情况下,将卷积输入数据传输至第二内存,并对卷积输入数据进行卷积处理,第二内存值与第二内存的内存值相关;在卷积输入数据大于或等于第二内存值的情况下,将卷积输入数据中的部分数据传输至第一内存,对部分数据进行卷积处理,并将卷积结果存储在第一内存中;其中,部分数据的数据量与每一层卷积处理的数据输入通道的数量相对应。
在上述技术方案中,上述卷积数据具体还包括深度学习模型中每一层卷积处理的卷积输入数据。
在此基础上,针对深度学习模型中的每一层卷积处理,处理器将设定的第二内存值与该层卷积处理的卷积输入数据进行比较。其中,上述第二内存值与第二内存的内存值相关。在设定的第二内存值大于该层卷积处理的卷积输入数据的情况下,说明该层卷积处理的卷积输入数据,位于第二内存所能承载的数据量范围之内。此时,处理器会整体拷贝该层卷积的卷积输入数据至第二内存,并对该层卷积的卷积输入数据进行卷积处理。进一步地,在上述第二内存值小于或等于该层卷积的卷积输入数据的情况下,基于该层卷积处理的数据输入通道维度,预取该层卷积的卷积输入数据中的部分数据至上述第一内存。其中,预取至上述第一内存中的部分数据的数据量,与该层卷积处理的数据输入通道的数量相对应。进一步地,处理器对预取至上述第一内存中的部分数据直接进行卷积计算,并将卷积结果存储在上述第一内存中。如此,处理器按照上述数据处理模式,对深度学习模型中的每一层卷积处理的卷积输入数据进行卷积处理,直至卷积结束。这样,基于深度学习模型每一层卷积处理的卷积输入数据和第二内存的空间大小关系,自适应优化数据处理策略,提高了应用程序的执行效率,提高了深度学习模型推理的实时性。
在一些技术方案中,可选地,在获取深度学习模型的卷积数据之后,部署方法还包括:获取每个数据输出通道输出的卷积数据,得到处理后的至少一个卷积数据;对处理后的至少一个卷积数据进行拼接,得到模型输出数据。
在上述技术方案中,在处理器获取深度学习模型的卷积数据,并按照相应的数据处理策略,对获取到的卷积数据进行处理之后,处理器还会按照深度学习模型的数据输出通道维度,获取每个数据输出通道所输出的处理后的卷积数据,进而通过对每个数据输出通道所输出的处理后的卷积数据进行拼接,得到最终的卷积结果,也即得到最终的模型输出数据。
在一些技术方案中,可选地,待处理数据的数量与数据输出通道的数量相对应。
在上述技术方案中,在处理器对卷积核的权重数据进行分割,以将卷积核的权重数据分割为N个待处理数据的过程中,具体地,处理器按照上述深度学习模型的数据输出通道维度,对卷积核的权重数据进行分割。也即,上述分割后得到的待处理数据的数量,与上述深度学习模型的数据输出通道的数量之间相对应。
根据本申请的第三个方面,提出了一种数据处理装置,该装置应用于控制芯片上的处理器,控制芯片还包括系统总线,系统总线上分配有第一存储区间和第二存储区间,数据处理装置包括:处理单元,用于通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,N为正整数;处理单元,还用于根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;处理单元,还用于根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至N个待处理数据处理完成。
本申请提供的数据处理装置,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
具体地,本申请所提供的数据处理装置包括处理单元,在对主存数据进行处理的过程中,处理单元可将主存数据分为N份,以得到N个待处理数据。其中,N为大于1的正整数。在此基础上,在对N个待处理数据进行处理的过程中,处理单元启动DMA控制器即直接内存访问控制器,通过直接内存访问控制器,将上述N个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,处理单元获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。
在此基础上,处理单元按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,在处理单元对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理单元会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内,如此循环往复,直至主存数据也即上述N个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理单元对N个待处理数据处理完成。这样,实现了在处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
根据本申请的第四个方面,提出了一种深度学习模型的部署装置,该装置包括:获取单元,用于获取深度学习模型的卷积数据,卷积数据包括深度学习模型的卷积核的参数量;处理单元,用于在参数量大于第一内存值的情况下,将卷积核的权重数据分割为N个待处理数据,通过上述任一技术方案中的数据处理方法,处理N个待处理数据;其中,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,N为正整数。
本申请提供的深度学习模型的部署装置,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存DTCM。
具体地,本申请所提供的深度学习模型的部署装置包括获取单元以及处理单元,在通过深度学习模型进行卷积处理的过程中,获取单元获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理单元比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理单元会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为N个待处理数据。其中,N为大于1的正整数。进一步地,在处理单元通过对卷积核的权重数据进行分割从而得到N个待处理数据之后,处理单元再通过上述任一技术方案中的数据处理方法,对分割得到的N个待处理数据进行处理,直至N个待处理数据被处理完成。这样,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
根据本申请的第五个方面,提出了一种芯片,该芯片包括处理器及系统总线,系统总线上分配有第一存储区间和第二存储区间,芯片上的处理器用于实现如上述任一技术方案中的数据处理方法的步骤,或者,实现如上述任一技术方案中的深度学习模型的部署方法的步骤。因此,本申请第五个方面所提出的芯片具备上述第一个方面任一技术方案中的数据处理方法的全部有益效果,或者,本申请第五个方面所提出的芯片具备上述第二个方面任一技术方案中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
根据本申请的第六个方面,提出了一种可读存储介质,其上存储有程序或指令,该程序或指令被处理器执行时实现如上述任一技术方案中的数据处理方法,或者,该程序或指令被处理器执行时实现如上述任一技术方案中的深度学习模型的部署方法。因此,本申请第六个方面所提出的可读存储介质具备上述第一个方面任一技术方案中的数据处理方法的全部有益效果,或者,本申请第六个方面所提出的可读存储介质具备上述第二个方面任一技术方案中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
根据本申请的第七个方面,提出了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述任一技术方案中的数据处理方法,或者,该计算机程序被处理器执行时实现如上述任一技术方案中的深度学习模型的部署方法。因此,本申请第七个方面所提出的计算机程序产品具备上述第一个方面任一技术方案中的数据处理方法的全部有益效果,或者,本申请所提出的计算机程序产品具备上述第二个方面任一技术方案中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
本申请的附加方面和优点将在下面的描述部分中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本申请实施例的数据处理方法的流程示意图;
图2示出了本申请实施例的深度学习模型的部署方法的流程示意图;
图3示出了本申请实施例的数据处理方法的原理图;
图4示出了本申请实施例的深度学习模型的部署方法的原理图;
图5示出了本申请实施例的数据处理装置的结构框图;
图6示出了本申请实施例的深度学习模型的部署装置的结构框图;
图7示出了本申请实施例的电子设备的结构框图;
图8示出了本申请实施例的芯片的结构框图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不限于下面公开的具体实施例的限制。
下面结合图1至图8,通过具体的实施例及其应用场景对本申请实施例提供的数据处理方法、深度学习模型的部署方法、装置及芯片进行详细地说明。
在本申请的一个实施例中,如图1所示,数据处理方法具体可包括下述的步骤102至步骤106:
步骤102,通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间;
步骤104,根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;
步骤106,根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至N个待处理数据处理完成;
其中,N为正整数。
本申请提供的数据处理方法,由控制芯片上的CPU即中央处理器执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
具体地,在本申请所提供的数据处理方法中,在对主存数据进行处理的过程中,具体可将主存数据分为N份,以得到N个待处理数据。其中,N为大于1的正整数。在此基础上,在对N个待处理数据进行处理的过程中,启动DMA控制器(即直接内存访问控制器),通过直接内存访问控制器,将上述N个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。具体地,在通过直接内存访问控制器,将上述第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间的过程中,一旦上述第一个待处理数据向第二存储区间以及第一存储区间中的任意一者拷贝成功,便将数据拷贝成功的存储区间确定为后续先被执行数据处理操作的存储区间,并将另一个存储区间确定为后续后被执行数据处理操作的存储区间。
在此基础上,在确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序之后,处理器便按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,需要说明的是,在本申请所提出的数据处理方法中,在处理器对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理器会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内。具体地,在处理器对第一存储区间中已拷贝的待处理数据进行处理的过程中,处理器会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间内,而在处理器对第二存储区间中已拷贝的待处理数据进行处理的过程中,处理器则会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第一存储区间内。如此循环往复,直至主存数据也即上述N个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理器对N个待处理数据处理完成。
如此,在系统总线上分配两份地址空间相互独立的存储区间,在对主存数据进行处理的过程中,将主存数据分为N个待处理数据,进而基于乒乓操作机制,通过直接内存访问控制器交替向两份存储区间内拷贝待处理数据,以及通过处理器交替处理两份存储区间中已拷贝的待处理数据。其中,处理器以及直接内存访问控制器两者异步工作,也即上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理器处理两份存储区间任意一者中的待处理数据时,通过直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,实现了在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存DTCM。
进一步地,在实际的应用过程中,可在控制芯片的系统软件层对直接内存访问控制器的数据拷贝过程进行函数封装,得到数据拷贝函数,该数据拷贝函数用于实现从源地址即主存,借助直接内存访问控制器,拷贝数据到目的地址即上述第二存储区间以及第一存储区间的过程。在此基础上,在对主存数据即上述N个待处理数据进行传输处理的过程中,处理器可直接调用上述数据拷贝函数,以启动直接内存访问控制器,并通过直接内存访问控制器,将待处理数据分别从主存中拷贝到上述第二存储区间和/或第一存储区间之内。
另外,在实际的应用过程中,上述控制芯片具体可为DSP(Digital SignalProcessor,数字信号处理器)主控芯片,本领域技术人员可根据实际情况,对上述主控芯片的具体类型进行选择,在此不作具体限制。
在本申请的一些实施例中,可选地,控制芯片中封装有中断服务函数,在此基础上,在上述步骤104之前,上述数据处理方法具体还可包括下述的步骤108和步骤110:
步骤108,调用中断服务函数,以获取分别对应第二存储区间和第一存储区间的中断标志位;
步骤110,在中断标志位为有效状态的情况下,判定第一个待处理数据向对应的存储区间复制成功。
在该实施例中,上述控制芯片中还可封装有中断服务函数。具体地,在实际的应用过程中,可在控制芯片的系统软件层对中断服务处理程序进行函数封装,得到中断服务函数。该中断服务函数用于指示中断标志位的状态,以通过中断标志位的状态,判断通过直接内存访问控制器,向上述第二存储区间或者第一存储区间中拷贝待处理数据的数据拷贝过程是否完成。
在此基础上,在该实施例中,在根据直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序之前,处理器会调用上述中断服务函数,以获取分别对应第二存储区间以及第一存储区间的中断标志位。进一步地,处理器根据第二存储区间以及第一存储区间的中断标志位的状态,分别判断通过直接内存访问控制器,向上述第二存储区间或者第一存储区间中拷贝上述第一个待处理数据的数据拷贝过程是否完成。具体地,在中断标志位为有效状态的情况下,判定通过直接内存访问控制器,向对应的存储区间内拷贝上述第一个待处理数据的数据拷贝过程完成,也即判定直接内存访问控制器成功将上述第一个待处理数据拷贝至对应的存储区间内。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,保证了对数据拷贝过程是否完成进行判断的准确性,进而保证了数据传输处理的有序性,提高了数据的传输处理效率。
另外,在实际的应用过程中,在上述任一存储区间的中断标志位为无效状态的情况下,判定通过直接内存访问控制器,向该存储区间内拷贝上述第一个待处理数据的数据拷贝过程并未完成,也即判定直接内存访问控制器并未成功将上述第一个待处理数据拷贝至该存储区间内。
在本申请的一些实施例中,可选地,上述交替处理第二存储区间以及第一存储区间中的待处理数据的步骤,具体可包括下述的步骤112:
步骤112,在中断标志位为有效状态的情况下,处理第二存储区间或者第一存储区间中的待处理数据。
在该实施例中,在处理器按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理的过程中,具体地,在处理器对第二存储区间或者第一存储区间中的待处理数据进行处理之前,处理器会调用上述中断服务函数,以获取第二存储区间或者第一存储区间所对应的中断标志位,进而在获取到的中断标志位为有效状态的情况下,也即在直接内存访问控制器,向对应的第二存储区间或者第一存储区间的数据拷贝过程完成的情况下,处理器才会处理对应的第二存储区间或者第一存储区间中的待处理数据。
具体地,在处理器对第二存储区间以及第一存储区间中的待处理数据进行交替处理的过程中,在处理器处理完第一存储区间中的待处理数据之后,处理器会获取第二存储区间所对应的中断标志位,在该中断标志位为有效状态的情况下,也即在直接内存访问控制器并行向第二存储区间的数据拷贝过程完成的情况下,处理器才会开始处理第二存储区间内已拷贝的待处理数据。而在处理器处理完第二存储区间中的待处理数据之后,处理器会获取第一存储区间所对应的中断标志位,在该中断标志位为有效状态的情况下,也即在直接内存访问控制器并行向第一存储区间的数据拷贝过程完成的情况下,处理器才会开始处理第一存储区间内已拷贝的待处理数据。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,进而再根据数据拷贝过程的完成情况进行数据处理工作,保证了数据传输处理的有序性,提高了数据的传输处理效率。
在本申请的一些实施例中,可选地,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。
其中,上述第一内存支持编程寻址。在实际的应用过程中,上述第一内存具体可为片上紧耦合高度缓存。
进一步地,上述第二存储区间以及第一存储区间二者的空间地址相互独立,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
在此基础上,通过在系统总线上分配的地址空间相互独立的第二存储区间以及第一存储区间,即可基于乒乓操作机制,通过直接内存访问控制器交替向两份存储区间内拷贝待处理数据,以及通过处理器交替处理两份存储区间中已拷贝的待处理数据,从而实现在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
在本申请的一些实施例中,可选地,上述直接内存访问控制器的硬件通道数量,与上述系统总线上分配的存储区间的数量相对应。
例如,在上述系统总线上分配有两份地址空间相互独立的存储区间的情况下,上述直接内存访问控制器的硬件通道数量也设置为2。如此,直接内存访问控制器的硬件通道能够与上述系统总线上分配的存储区间之间一一对应,以便实现在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,从而在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高数据的传输处理效率,进而提高应用程序的执行效率。
综上所述,本申请所提出的数据处理方法,基于片上紧耦合高速缓存、DMA控制器以及中断服务处理程序的联合工作,实现数据的传输处理操作。同时,在进行数据传输处理的过程中,基于DTCM双缓冲区即DTCM的两个存储区间实现异步数据预取,以及基于中断标志位实现对数据拷贝过程的完成状态的同步查询,在时间维度上对数据处理操作以及数据拷贝操作进行复用,保证了数据传输处理的有序性,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
示例性地,如图3所示,在本申请所提出的数据处理方法中,在对主存数据进行处理的过程中,将主存数据分为N份,得到N个待处理数据,进而启动DMA,通过DMA将上述N个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。在此基础上,CPU根据DMA将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序,并按照该数据处理顺序,交替处理第二存储区间以及第一存储区间中的待处理数据。
具体地,在上述数据处理顺序为第一存储区间先于第二存储区间的情况下,在CPU交替处理第二存储区间以及第一存储区间中的待处理数据的过程中,如图3所示,CPU调用中断服务函数,以通过中断状态查询,判断DMA向第一存储区间的数据拷贝过程是否完成。在DMA向第一存储区间的数据拷贝过程完成的情况下,CPU对第一存储区间内的数据进行处理,已完成该部分数据的处理计算。同时,在CPU对第一存储区间内的数据进行处理的过程中,CPU启动DMA,并控制DMA将下一份待处理数据从主存中预先拷贝到第二存储区间内。进一步地,CPU调用中断服务函数,以通过中断状态查询,判断DMA向第二存储区间的数据拷贝过程是否完成。在DMA向第二存储区间的数据拷贝过程完成的情况下,CPU对第二存储区间内的数据进行处理,已完成该部分数据的处理计算。同时,在CPU对第二存储区间内的数据进行处理的过程中,CPU启动DMA,并控制DMA将下一份待处理数据从主存中预先拷贝到第一存储区间内。如此循环往复,直至主存数据也即上述N个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理器对N个待处理数据处理计算完成。
在本申请的一个实施例中,如图2所示,深度学习模型的部署方法具体可包括下述的步骤202和步骤204:
步骤202,获取深度学习模型的卷积数据;
步骤204,在参数量大于第一内存值的情况下,将卷积核的权重数据分割为N个待处理数据,通过数据处理方法,处理N个待处理数据;
其中,卷积数据包括深度学习模型的卷积核的参数量,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,N为正整数。
本申请提供的深度学习模型的部署方法,由控制芯片上的处理器执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存DTCM。
具体地,在本申请所提供的深度学习模型的部署方法中,在通过深度学习模型进行卷积处理的过程中,获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理器比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理器会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为N个待处理数据。其中,N为大于1的正整数。进一步地,在处理器通过对卷积核的权重数据进行分割从而得到N个待处理数据之后,处理器再通过上述任一技术方案中的数据处理方法,对分割得到的N个待处理数据进行处理,直至N个待处理数据被处理完成。
具体地,处理器基于乒乓操作机制,控制直接内存访问控制器交替向两份存储区间内拷贝待处理数据,并交替处理两份存储区间中已拷贝的待处理数据。其中,处理器以及直接内存访问控制器两者异步工作,也即上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理器处理两份存储区间任意一者中的待处理数据时,通过直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
例如,基于本申请的深度学习模型的部署方法,在主频400M的DSP主控芯片、256KB的DTCM片上紧耦合高速缓存以及支持DMA控制数据传输的边缘设备平台上进行深度学习模型的部署时,深度学习模型至少可达到2倍以上的性能提升。
在本申请的一些实施例中,可选地,在上述步骤202之后,上述深度学习模型的部署方法具体还可包括下述的步骤206:
步骤206,在参数量小于或等于第一内存值的情况下,将权重数据整体复制到第一内存中进行处理。
在该实施例中,在处理器获取深度学习模型的卷积数据之后,处理器会将上述第一内存的内存值即第一内存值以及上述卷积核的参数量进行比较。在此基础上,在上述第一内存值大于或等于上述参数量的情况下,说明卷积核的参数量在第一内存所能承载的数据量范围之内。此时,处理器不会对上述权重数据进行分割,而是直接将上述权重数据整体拷贝到第一内存中进行处理。这样,基于上述第一内存的内存值与卷积核的参数量的比较结果,采取不同的数据传输处理模式,对权重数据进行传输处理,实现了基于深度学习模型的权重层参数量和DTCM即第一内存的空间大小关系,自适应优化权重数据的处理策略,提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
在本申请的一些实施例中,可选地,上述卷积数据还可包括每一层卷积处理的卷积输入数据,在此基础上,在上述步骤202之后,上述深度学习模型的部署方法具体还可包括下述的步骤208和步骤210:
步骤208,针对每一层卷积处理,在卷积输入数据小于第二内存值的情况下,将卷积输入数据传输至第二内存,并对卷积输入数据进行卷积处理;
步骤210,在卷积输入数据大于或等于第二内存值的情况下,将卷积输入数据中的部分数据传输至第一内存,对部分数据进行卷积处理,并将卷积结果存储在第一内存中;
其中,第二内存值与第二内存的内存值相关,部分数据的数据量,与每一层卷积处理的数据输入通道的数量相对应。
在该实施例中,上述卷积数据具体还包括深度学习模型中每一层卷积处理的卷积输入数据。
在此基础上,在处理器获取深度学习模型的卷积数据之后,针对深度学习模型中的每一层卷积处理,处理器将设定的第二内存值与该层卷积处理的卷积输入数据进行比较。其中,上述第二内存值与第二内存的内存值相关。在设定的第二内存值大于该层卷积处理的卷积输入数据的情况下,说明该层卷积处理的卷积输入数据,位于第二内存所能承载的数据量范围之内。此时,处理器会整体拷贝该层卷积的卷积输入数据至第二内存,并对该层卷积的卷积输入数据进行卷积处理。进一步地,在上述第二内存值小于或等于该层卷积的卷积输入数据的情况下,基于该层卷积处理的数据输入通道维度,预取该层卷积的卷积输入数据中的部分数据至上述第一内存。其中,预取至上述第一内存中的部分数据的数据量,与该层卷积处理的数据输入通道的数量相对应。进一步地,处理器对预取至上述第一内存中的部分数据直接进行卷积计算,并将卷积结果存储在上述第一内存中。如此,处理器按照上述数据处理模式,对深度学习模型中的每一层卷积处理的卷积输入数据进行卷积处理,直至卷积结束。这样,基于深度学习模型每一层卷积处理的卷积输入数据和第二内存的空间大小关系,自适应优化数据处理策略,提高了应用程序的执行效率,提高了深度学习模型推理的实时性。
其中,上述第二内存具体可为高速缓冲存储器Cache中的D-Cache。可以理解的是,在按照数据类型对Cache进行划分时,Cache可包括D-Cache以及I-Cache,其中,D-Cache用于放置数据,I-Cache则用于放置指令。
进一步地,上述第二内存值具体可为第二内存的内存值与目标数值的乘积。在实际的应用过程中,上述目标数值具体可为0.75、0.8、0.85以及0.9等数值,本领域技术人员可根据实际情况,对上述目标数值的具体取值进行设置,在此不作具体限制。
在本申请的一些实施例中,可选地,在上述步骤202之后,上述深度学习模型的部署方法具体还可包括下述的步骤212和步骤214:
步骤212,获取每个数据输出通道输出的卷积数据,得到处理后的至少一个卷积数据;
步骤214,对处理后的至少一个卷积数据进行拼接,得到模型输出数据。
在该实施例中,在处理器获取深度学习模型的卷积数据,并按照相应的数据处理策略,对获取到的卷积数据进行处理之后,处理器还会按照深度学习模型的数据输出通道维度,获取每个数据输出通道所输出的处理后的卷积数据,进而通过对每个数据输出通道所输出的处理后的卷积数据进行拼接,得到最终的卷积结果,也即得到最终的模型输出数据。
在本申请的一些实施例中,可选地,待处理数据的数量,与数据输出通道的数量相对应。
在该实施例中,在处理器对卷积核的权重数据进行分割,以将卷积核的权重数据分割为N个待处理数据的过程中,具体地,处理器按照上述深度学习模型的数据输出通道维度,对卷积核的权重数据进行分割。也即,上述分割后得到的待处理数据的数量,与上述深度学习模型的数据输出通道的数量之间相对应。
综上所述,本申请所提出的深度学习模型的部署方法,基于深度学习模型的权重层参数量和DTCM即第一内存的空间大小关系,自适应优化权重数据的处理策略,以及基于深度学习模型每一层卷积处理的卷积输入数据和第二内存的空间大小关系,自适应优化卷积输入数据的处理策略,提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
具体地,如图4所示,在本申请所提出的深度学习模型的部署方法中,在通过处理器对卷积数据进行处理过程中,在第一内存的内存值小于深度学习模型的卷积核的参数量的情况下,处理器按照上述深度学习模型的数据输出通道维度,对卷积核的权重数据进行分割,得到N个待处理数据,并按照上述任一技术方案中的数据处理方法,对得到的N个待处理数据进行卷积处理。其中,针对深度学习模型的每一层卷积处理的卷积输入数据,在设定的第二内存值大于卷积输入数据的情况下,处理器会整体拷贝卷积输入数据至第二内存中进行卷积处理;而在上述第二内存值小于或等于卷积输入数据的情况下,处理器则按照每层卷积处理的数据输入通道维度,预取部分数据至上述第一内存中进行卷积计算,并将卷积结果存储在上述第一内存中。在此基础上,在处理器对卷积数据处理结束之后,如图4所示,处理器还会按照深度学习模型的数据输出通道维度,获取每个数据输出通道所输出的处理后的卷积数据,进而通过对每个数据输出通道所输出的处理后的卷积数据进行拼接,得到最终的模型输出数据,从而输出最终的卷积结果。
在本申请的一个实施例中,还提出了一种数据处理装置。如图5所示,图5示出了本申请实施例的数据处理装置500的结构框图。其中,该数据处理装置500具体可包括下述的处理单元502:
处理单元502,用于通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,N为正整数;
处理单元502,还用于根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;
处理单元502,还用于根据数据处理顺序,交替处理第一存储区间和第二存储区间中的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至N个待处理数据处理完成。
本申请实施例提供的数据处理装置500,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
具体地,本申请所提供的数据处理装置包括处理单元502,在对主存数据进行处理的过程中,处理单元502可将主存数据分为N份,以得到N个待处理数据。其中,N为大于1的正整数。在此基础上,在对N个待处理数据进行处理的过程中,处理单元502启动DMA控制器即直接内存访问控制器,通过直接内存访问控制器,将上述N个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,处理单元502获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。具体地,在通过直接内存访问控制器,将上述第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间的过程中,一旦上述第一个待处理数据向第二存储区间以及第一存储区间中的任意一者拷贝成功,处理单元502便将数据拷贝成功的存储区间确定为后续先被执行数据处理操作的存储区间,并将另一个存储区间确定为后续后被执行数据处理操作的存储区间。
在此基础上,在处理单元502确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序之后,处理单元502便按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,需要说明的是,在处理单元502对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理单元502会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内。具体地,在处理单元502对第一存储区间中已拷贝的待处理数据进行处理的过程中,处理单元502会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间内,而在处理单元502对第二存储区间中已拷贝的待处理数据进行处理的过程中,处理单元502则会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第一存储区间内。如此循环往复,直至主存数据也即上述N个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理单元502对N个待处理数据处理完成。
如此,在系统总线上分配两份地址空间相互独立的存储区间,在对主存数据进行处理的过程中,将主存数据分为N个待处理数据,进而基于乒乓操作机制,通过直接内存访问控制器交替向两份存储区间内拷贝待处理数据,以及通过处理器交替处理两份存储区间中已拷贝的待处理数据。其中,上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理单元502处理两份存储区间任意一者中的待处理数据时,启动直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,实现了在处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存DTCM。
进一步地,在实际的应用过程中,可在控制芯片的系统软件层对直接内存访问控制器的数据拷贝过程进行函数封装,得到数据拷贝函数,该数据拷贝函数用于实现从源地址即主存,借助直接内存访问控制器,拷贝数据到目的地址即上述第二存储区间以及第一存储区间的过程。在此基础上,在对主存数据即上述N个待处理数据进行传输处理的过程中,处理单元502可直接调用上述数据拷贝函数,以启动直接内存访问控制器,并通过直接内存访问控制器,将待处理数据分别从主存中拷贝到上述第二存储区间和/或第一存储区间之内。
另外,在实际的应用过程中,上述控制芯片具体可为DSP主控芯片,本领域技术人员可根据实际情况,对上述主控芯片的具体类型进行选择,在此不作具体限制。
在本申请的一些实施例中,可选地,控制芯片中封装有中断服务函数,处理单元502还用于:调用中断服务函数,以获取分别对应第二存储区间和第一存储区间的中断标志位;在中断标志位为有效状态的情况下,判定第一个待处理数据向对应的存储区间复制成功。
在本申请的一些实施例中,可选地,处理单元502具体用于:在中断标志位为有效状态的情况下,处理第二存储区间或者第一存储区间中的待处理数据。
在本申请的一些实施例中,可选地,第二存储区间以及第一存储区间均为第一内存的存储区间;第一内存支持编程寻址;第一内存为紧耦合高度缓存;第一存储区间和第二存储区间的空间地址相互独立。
在本申请的一些实施例中,可选地,直接内存访问控制器的通道数量,与系统总线上分配的存储区间的数量相对应。
在本申请的一个实施例中,还提出了一种深度学习模型的部署装置。如图6所示,图6示出了本申请实施例的深度学习模型的部署装置600的结构框图。其中,该深度学习模型的部署装置600具体可包括下述的获取单元602以及处理单元604:
获取单元602,用于获取深度学习模型的卷积数据,该卷积数据包括深度学习模型的卷积核的参数量;
处理单元604,用于在第一内存值小于参数量的情况下,将卷积核的权重数据分割为N个待处理数据,并通过上述任一实施例中的数据处理方法,处理N个待处理数据;
其中,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,N为正整数。
本申请提供的深度学习模型的部署装置600,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存DTCM。
具体地,本申请所提供的深度学习模型的部署装置600包括获取单元602以及处理单元604,在通过深度学习模型进行卷积处理的过程中,获取单元602获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理单元604比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理单元604会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为N个待处理数据。其中,N为大于1的正整数。进一步地,在处理单元604通过对卷积核的权重数据进行分割从而得到N个待处理数据之后,处理单元604再通过上述任一技术方案中的数据处理方法,对分割得到的N个待处理数据进行处理,直至N个待处理数据被处理完成。
具体地,处理单元604基于乒乓操作机制,控制直接内存访问控制器交替向两份存储区间内拷贝待处理数据,并交替处理两份存储区间中已拷贝的待处理数据。其中,上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理单元604处理两份存储区间任意一者中的待处理数据时,启动直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
例如,基于本申请的深度学习模型的部署装置600,在主频400M的DSP主控芯片、256KB的DTCM片上紧耦合高速缓存以及支持DMA控制数据传输的边缘设备平台上进行深度学习模型的部署时,深度学习模型至少可达到2倍以上的性能提升。
在本申请的一些实施例中,可选地,处理单元604还用于:在第一内存值大于或等于参数量的情况下,将权重数据整体复制到第一内存中进行处理。
在本申请的一些实施例中,可选地,上述卷积数据还可包括每一层卷积处理的卷积输入数据,处理单元604还用于:针对每一层卷积处理,在第二内存值大于卷积输入数据的情况下,将卷积输入数据传输至第二内存,并对卷积输入数据进行卷积处理;在第二内存值小于或等于卷积输入数据的情况下,将卷积输入数据中的部分数据传输至第一内存,对部分数据进行卷积处理,并将卷积结果存储在第一内存中;其中,第二内存值与第二内存的内存值相关,部分数据的数据量,与每一层卷积处理的数据输入通道的数量相对应。
在本申请的一些实施例中,可选地,处理单元604还用于:获取每个数据输出通道输出的卷积数据,得到处理后的至少一个卷积数据;对处理后的至少一个卷积数据进行拼接,得到模型输出数据。
在本申请的一些实施例中,可选地,待处理数据的数量,与数据输出通道的数量相对应。
在本申请的一个实施例中,还提出了一种电子设备。如图7所示,图7示出了本申请实施例提供的电子设备700的结构框图。其中,该电子设备700包括:
存储器702,存储器702上存储有程序或指令;
处理器704,处理器704执行上述程序或指令时实现如上述任一实施例中的数据处理方法的步骤,或者,处理器704执行上述程序或指令时实现如上述任一实施例中的深度学习模型的部署方法的步骤。
本实施例提供的电子设备700包括存储器702和处理器704,存储器702中的程序或指令被处理器704执行时实现如上述任一实施例中的数据处理方法的步骤,或者,存储器702中的程序或指令被处理器704执行时实现如上述任一实施例中的深度学习模型的部署方法的步骤。
因此,本申请实施例提出的电子设备700具备上述任一实施例中的数据处理方法的全部有益效果,或者,该电子设备700具备上述任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
具体地,存储器702和处理器704可以通过总线或者其它方式连接。处理器704可包括一个或多个处理单元,处理器704可以为中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable GateArray,FPGA)等芯片。
在本申请的一个实施例中,还提出了一种芯片。如图8所示,图8示出了本申请实施例提供的芯片800的结构框图。其中,该芯片800包括处理器802及系统总线804,系统总线804上分配有第一存储区间806和第二存储区间808,芯片800上的处理器802用于实现如上述任一实施例中的数据处理方法的步骤,或者,实现如上述任一实施例中的深度学习模型的部署方法的步骤。
因此,本申请实施例提出的芯片800具备上述第一个方面任一实施例中的数据处理方法的全部有益效果,或者,本申请实施例提出的芯片800具备上述第二个方面任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
在本申请的一个实施例中,还提出了一种可读存储介质。其上存储有程序或指令,程序或指令被处理器执行时实现如上述任一实施例中的数据处理方法的步骤,或者,程序或指令被处理器执行时实现如上述任一实施例中的深度学习模型的部署方法的步骤。
本申请实施例提供的可读存储介质,其存储的程序或指令被处理器执行时,可实现如上述任一实施例中的数据处理方法的步骤,或者实现如上述任一实施例中的深度学习模型的部署方法的步骤。因此,该可读存储介质具备上述任一实施例中的数据处理方法或者上述任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
具体地,上述可读存储介质可以包括能够存储或传输信息的任何介质。可读存储介质的例子包括电子电路、半导体存储器设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(Compact Disc Read-OnlyMemory,CD-ROM)、闪存、可擦除ROM(EROM)、磁带、软盘、光盘、硬盘、光纤介质、射频(RF)链路、光数据存储设备等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
在本申请的一个实施例中,还提出了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现如上述任一实施例中的数据处理方法,或者,该计算机程序被处理器执行时实现如上述任一实施例中的深度学习模型的部署方法。
因此,本申请所提出的计算机程序产品具备上述第一个方面任一实施例中的数据处理方法的全部有益效果,或者,本申请所提出的计算机程序产品具备上述第二个方面任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
在一些实施例中,本申请提供一种基于片上可寻址的数据紧耦合高速缓存的软硬件协同优化部署方法。具体地,本申请提出一种基于片上紧耦合高速缓存、DMA控制器和中断服务处理程序的联合优化方案;本申请提出一种基于DTCM双缓冲区的异步数据预取,以及基于中断标志的同步状态查询的方案;本申请提出一种基于深度学习模型权重层参数量和DTCM空间的大小关系的自适应优化处理策略。
在一些实施例中,本申请基于TCM、DMA和中断服务处理的联合方式,提出了一种基于乒乓操作的软硬件协同部署优化方案,通过开辟两份DTCM空间进行乒乓操作,并借助DMA从主存搬运数据到DTCM,CPU查询中断标志位判断搬运完成后进行数据处理操作,在处理完当前数据块后启动DMA搬运下一份数据到当前DTCM地址空间,然后判断另一份DTCM地址空间的状态并进行相同的操作。这样,保证在CPU处理当前DTCM中的数据块时,DMA可同时进行将下一份待处理数据从主存往另一DTCM搬运的操作,在时间维度对数据计算和数据拷贝进行复用,可极大地提升应用程序的执行效率。
具体地,本申请提出了一种基于片上紧耦合高速缓存、DMA控制器和中断服务处理程序,在深度学习模型在边缘设备应用部署场景中的联合优化方案,该方案具体包括以下步骤:
片上硬件配置和系统软件层功能实现:
(1)在芯片系统总线上分配两份地址空间独立的片上DTCM存储区间,分别标记为DTCM_0和DTCM_1,DTCM_0和DTCM_1用于支持双缓冲区的异步数据预取;
(2)在系统软件层对DMA数据拷贝过程进行函数封装,该函数用于实现从源地址借助DMA拷贝数据到目的地址的过程,该函数记为dma_copy(),并把DMA硬件通道数配置为2,以与DTCM双缓冲区相对应;
(3)在系统软件层实现中断服务函数dma_status(),该函数用于CPU查询判断DMA搬运数据完成的标志位是否有效;
应用软件层功能实现:
(4)CPU通过调用dma_copy(),启动DMA从主存往DTCM_0和DTCM_1的数据拷贝过程;
(5)CPU调用dma_status()查询DMA往DTCM_0拷贝数据的过程是否完成,如果中断标志位有效,则CPU执行读取并处理DTCM_0中的数据的处理流程,同时CPU异步启动一个新的DMA从主存往DTCM_1拷贝数据的请求;
(6)CPU调用dma_status()查询DMA往DTCM_1拷贝数据的过程是否完成,如果中断标志位有效,则CPU执行读取并处理DTCM_1中的数据的处理流程,同时CPU异步启动一个新的DMA从主存往DTCM_0拷贝数据的请求;
(7)重复(5)和(6)的过程,直至所有需要处理的数据均从内存先后搬运到DTCM_0和DTCM_1中,并由CPU完成相应的计算处理。
深度学习模型卷积层特化操作:
(8)如果卷积核参数量<=DTCM空间大小,整体拷贝卷积核权重;如果卷积核参数量>DTCM空间大小,则沿输出通道维度切分权重数据,然后分别启动DMA进行拷贝,并把每一步计算处理后的数据concat(拼接)在一起做为最终的输出;
(9)如果卷积输入特征量<D-Cache的空间大小×0.9(0.9即为上述目标数值,其还可取其他数值),则输入卷积特征不做优化;如果卷积输入特征量>=D-Cache的空间大小×0.9,则将输入卷积特征沿输入通道维度预取一部分到DTCM,对卷积核沿每个输出通道维度对每个输入通道预取部分数据到DTCM,对这一部分数据直接做卷积计算得到中间结果并保存在DTCM中,然后沿输入通道循环往复上述过程,最后在输出通道维度做concat完成计算结果的拼接。
基于本申请提供的技术方案,在主频400M的DSP主控芯片、256KB的DTCM片上紧耦合高速缓存以及支持DMA控制数据传输的边缘设备平台上进行深度学习模型的部署,实测本方案可达到2倍以上的性能提升。
本申请提供的技术方案可以解决深度学习模型在边缘设备上部署时由于内存带宽受限所导致的模型推理实时性差的问题,本申请通过提出一种基于片上可寻址的紧耦合高速缓存、DMA以及中断控制相结合的方式,极大地提升了深度学习模型推理的实时性和应用程序的数据吞吐量。
在一些实施例中,本申请提供的技术方案还包括:获取待处理数据,基于如上述任一实施例中的深度学习模型的部署方案,将基于神经网络的深度学习模型部署至边缘设备上,部署的深度学习模型可用于对待处理数据进行处理以得到处理结果。其中,待处理数据可以包括语音数据、图像数据等,对语音数据进行处理包括但不限于:语音识别、语音唤醒、语音降噪等,在此不做限制。其中,神经网络可以是卷积神经网络。
本申请提供的技术方案可以应用于linux/rtos/android/ios等不同边端系统,面向armv7/v8及dsp等不同边端平台提供指令级加速。本申请的技术方案展现出轻量级部署、通用性强、易用性强、高性能推理等特点,全面解决智能设备低资源瓶颈的问题,大幅缩短了AI模型部署周期,在边端AI部署领域达到业界领先水平。并且,本申请提供的技术方案可以应用于自研芯片中,例如可以应用于业界首款支持语音、连接、显示三合一芯片FL119中。相关成果已全面赋能语音冰箱、空调、机器人等智能家电量产落地,提升了智能家电工作的智能性以及增加了智能家电的工作效率。
在本说明书的描述中,术语“第一”、“第二”仅用于描述的目的,而不能理解为指示或暗示相对重要性,除非另有明确的规定和限定;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
另外,本申请各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,由控制芯片上的处理器执行,所述控制芯片还包括系统总线,所述系统总线上分配有第一存储区间和第二存储区间,所述数据处理方法包括:
通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到所述第一存储区间和所述第二存储区间,N为正整数;
根据所述第一个待处理数据向所述第一存储区间和所述第二存储区间复制成功的先后顺序,确定所述第一存储区间和所述第二存储区间的数据处理顺序;
根据所述数据处理顺序,交替处理所述第一存储区间和所述第二存储区间的待处理数据,并在对所述第一存储区间和所述第二存储区间一者中的待处理数据进行处理的过程中,通过所述直接内存访问控制器复制下一个待处理数据至所述第一存储区间和所述第二存储区间中的另一者,直至所述N个待处理数据处理完成。
2.根据权利要求1所述的数据处理方法,其特征在于,所述控制芯片中封装有中断服务函数,在根据所述第一个待处理数据向所述第一存储区间和所述第二存储区间复制成功的先后顺序,确定所述第一存储区间和所述第二存储区间的数据处理顺序之前,所述数据处理方法还包括:
调用所述中断服务函数,以获取对应所述第一存储区间和所述第二存储区间的中断标志位;
在所述中断标志位为有效状态的情况下,判定所述第一个待处理数据向对应的存储区间复制成功。
3.根据权利要求2所述的数据处理方法,其特征在于,所述交替处理所述第一存储区间和所述第二存储区间的待处理数据,包括:
在所述中断标志位为有效状态的情况下,处理所述第一存储区间或所述第二存储区间中的待处理数据。
4.根据权利要求1至3中任一项所述的数据处理方法,其特征在于,所述第一存储区间和所述第二存储区间为第一内存的存储区间,所述第一内存支持编程寻址,所述第一内存为紧耦合高度缓存,所述第一存储区间和所述第二存储区间的空间地址相互独立。
5.根据权利要求1至3中任一项所述的数据处理方法,其特征在于,所述直接内存访问控制器的通道数量与所述系统总线上分配的存储区间的数量相对应。
6.一种深度学习模型的部署方法,其特征在于,包括:
获取深度学习模型的卷积数据,所述卷积数据包括所述深度学习模型的卷积核的参数量;
在所述参数量大于第一内存值的情况下,将所述卷积核的权重数据分割为N个待处理数据,通过如权利要求1至5中任一项所述的数据处理方法,处理所述N个待处理数据;
其中,所述第一内存值为第一内存的内存值,所述第一内存为紧耦合高度缓存,N为正整数。
7.根据权利要求6所述的深度学习模型的部署方法,其特征在于,在获取深度学习模型的卷积数据之后,所述深度学习模型的部署方法还包括:
在所述参数量小于或等于所述第一内存值的情况下,将所述权重数据整体复制到所述第一内存中进行处理。
8.根据权利要求6所述的深度学习模型的部署方法,其特征在于,所述卷积数据还包括每一层卷积处理的卷积输入数据,在获取深度学习模型的卷积数据之后,所述深度学习模型的部署方法还包括:
针对每一层卷积处理,在所述卷积输入数据小于第二内存值的情况下,将所述卷积输入数据传输至第二内存,并对所述卷积输入数据进行卷积处理,所述第二内存值与所述第二内存的内存值相关;
在所述卷积输入数据大于或等于所述第二内存值的情况下,将所述卷积输入数据中的部分数据传输至所述第一内存,对所述部分数据进行卷积处理,并将卷积结果存储在所述第一内存中;
其中,所述部分数据的数据量与每一层卷积处理的数据输入通道的数量相对应。
9.根据权利要求6至8中任一项所述的深度学习模型的部署方法,其特征在于,在获取深度学习模型的卷积数据之后,所述深度学习模型的部署方法还包括:
获取每个数据输出通道输出的卷积数据,得到处理后的至少一个卷积数据;
对处理后的所述至少一个卷积数据进行拼接,得到模型输出数据。
10.根据权利要求9所述的深度学习模型的部署方法,其特征在于,所述待处理数据的数量与所述数据输出通道的数量相对应。
11.一种数据处理装置,其特征在于,应用于控制芯片上的处理器,所述控制芯片还包括系统总线,所述系统总线上分配有第一存储区间和第二存储区间,所述数据处理装置包括:
处理单元,用于通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到所述第一存储区间和所述第二存储区间,N为正整数;
所述处理单元,还用于根据所述第一个待处理数据向所述第一存储区间和所述第二存储区间复制成功的先后顺序,确定所述第一存储区间和所述第二存储区间的数据处理顺序;
所述处理单元,还用于根据所述数据处理顺序,交替处理所述第一存储区间和所述第二存储区间的待处理数据,并在对所述第一存储区间和所述第二存储区间一者中的待处理数据进行处理的过程中,通过所述直接内存访问控制器复制下一个待处理数据至所述第一存储区间和所述第二存储区间中的另一者,直至所述N个待处理数据处理完成。
12.一种深度学习模型的部署装置,其特征在于,包括:
获取单元,用于获取深度学习模型的卷积数据,所述卷积数据包括所述深度学习模型的卷积核的参数量;
处理单元,用于在所述参数量大于第一内存值的情况下,将所述卷积核的权重数据分割为N个待处理数据,通过如权利要求1至5中任一项所述的数据处理方法,处理所述N个待处理数据;
其中,所述第一内存值为第一内存的内存值,所述第一内存为紧耦合高度缓存,N为正整数。
13.一种芯片,其特征在于,所述芯片包括处理器及系统总线,所述系统总线上分配有第一存储区间和第二存储区间,所述芯片上的处理器用于实现如权利要求1至5中任一项所述的数据处理方法的步骤,或者实现如权利要求6至10中任一项所述的深度学习模型的部署方法的步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时,实现如权利要求1至5中任一项所述的数据处理方法的步骤,或者实现如权利要求6至10中任一项所述的深度学习模型的部署方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至5中任一项所述的数据处理方法的步骤,或者实现如权利要求6至10中任一项所述的深度学习模型的部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310903082.XA CN116627357B (zh) | 2023-07-21 | 2023-07-21 | 数据处理方法、深度学习模型的部署方法、装置及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310903082.XA CN116627357B (zh) | 2023-07-21 | 2023-07-21 | 数据处理方法、深度学习模型的部署方法、装置及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116627357A true CN116627357A (zh) | 2023-08-22 |
CN116627357B CN116627357B (zh) | 2023-09-29 |
Family
ID=87617414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310903082.XA Active CN116627357B (zh) | 2023-07-21 | 2023-07-21 | 数据处理方法、深度学习模型的部署方法、装置及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627357B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1096384A1 (en) * | 1999-10-26 | 2001-05-02 | Bull S.A. | Bridge unit between a system bus and a local bus |
JP2008059155A (ja) * | 2006-08-30 | 2008-03-13 | Toshiba Corp | 情報処理装置及び情報処理方法 |
US20110161608A1 (en) * | 2009-12-30 | 2011-06-30 | Ibm Corporation | Method to customize function behavior based on cache and scheduling parameters of a memory argument |
CN104281537A (zh) * | 2013-07-05 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 一种内存复制方法及装置 |
CN207817702U (zh) * | 2018-02-24 | 2018-09-04 | 丰郅(上海)新能源科技有限公司 | 用于提高数据处理速度的数据处理系统 |
CN109921895A (zh) * | 2019-02-26 | 2019-06-21 | 成都国科微电子有限公司 | 一种数据Hash值的计算方法及系统 |
CN112015553A (zh) * | 2020-08-27 | 2020-12-01 | 深圳壹账通智能科技有限公司 | 基于机器学习模型的数据处理方法、装置、设备和介质 |
CN113673701A (zh) * | 2021-08-24 | 2021-11-19 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
CN113853592A (zh) * | 2019-05-24 | 2021-12-28 | 德州仪器公司 | 用于促进高速缓存中的管线化读取-修改-写入支持的方法和设备 |
CN114328315A (zh) * | 2021-11-22 | 2022-04-12 | 北京智芯微电子科技有限公司 | 基于dma的数据预处理方法、dma部件及芯片结构 |
-
2023
- 2023-07-21 CN CN202310903082.XA patent/CN116627357B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1096384A1 (en) * | 1999-10-26 | 2001-05-02 | Bull S.A. | Bridge unit between a system bus and a local bus |
JP2008059155A (ja) * | 2006-08-30 | 2008-03-13 | Toshiba Corp | 情報処理装置及び情報処理方法 |
US20110161608A1 (en) * | 2009-12-30 | 2011-06-30 | Ibm Corporation | Method to customize function behavior based on cache and scheduling parameters of a memory argument |
CN104281537A (zh) * | 2013-07-05 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 一种内存复制方法及装置 |
CN207817702U (zh) * | 2018-02-24 | 2018-09-04 | 丰郅(上海)新能源科技有限公司 | 用于提高数据处理速度的数据处理系统 |
CN109921895A (zh) * | 2019-02-26 | 2019-06-21 | 成都国科微电子有限公司 | 一种数据Hash值的计算方法及系统 |
CN113853592A (zh) * | 2019-05-24 | 2021-12-28 | 德州仪器公司 | 用于促进高速缓存中的管线化读取-修改-写入支持的方法和设备 |
CN112015553A (zh) * | 2020-08-27 | 2020-12-01 | 深圳壹账通智能科技有限公司 | 基于机器学习模型的数据处理方法、装置、设备和介质 |
CN113673701A (zh) * | 2021-08-24 | 2021-11-19 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
CN114328315A (zh) * | 2021-11-22 | 2022-04-12 | 北京智芯微电子科技有限公司 | 基于dma的数据预处理方法、dma部件及芯片结构 |
Also Published As
Publication number | Publication date |
---|---|
CN116627357B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814130B2 (en) | Efficient parallel bitwise sweep during garbage collection | |
US7916150B2 (en) | Methods, systems, and data structures for generating a rasterizer | |
US7149870B2 (en) | Assigning sections within a memory heap for efficient garbage collection of large objects | |
CN116627357B (zh) | 数据处理方法、深度学习模型的部署方法、装置及芯片 | |
EP1700209B1 (en) | Data layout mechanism to reduce hardware resource conflicts | |
CN109373521B (zh) | 空调器的通讯方法、装置、室外机、室内机及空调器 | |
JPH0816871B2 (ja) | プログラム翻訳装置およびプログラム翻訳方法 | |
JP2008516320A (ja) | メモリフレームのサイズを決定する方法および装置 | |
CN116414542B (zh) | 任务调度方法、装置、设备及存储介质 | |
KR20170037851A (ko) | 매니코어 시스템을 작동하기 위한 방법 및 장치 | |
CN114780215A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN113055892A (zh) | 载波调度方法、装置、计算设备及计算机存储介质 | |
JPH08227363A (ja) | 分岐命令処理方法 | |
US20020010823A1 (en) | Multimaster bus system and method for operating the multimaster bus system | |
CN113821456A (zh) | 存储器数据读取方法、装置、电子设备及可读介质 | |
JP2001005721A (ja) | Dspによるリング・バッファ用メモリ確保によるフィルタ処理方法及びそのフィルタ処理システム | |
JP3008890B2 (ja) | 処理制御装置 | |
CN114265699A (zh) | 任务调度方法、装置及电子装置、可读存储介质 | |
JP2003263364A (ja) | キャッシュ割り当て方式 | |
US20010045954A1 (en) | Data processing apparatus and recording medium | |
CN117273083A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN116483520A (zh) | 云主机处理器与物理主机处理器的绑核方法及相关组件 | |
CN116643269A (zh) | 雷达数据处理方法、装置、设备及存储介质 | |
CN115222025A (zh) | 人工智能模型部署和人工智能运算方法、系统 | |
CN113994646A (zh) | 车载装置、车辆管理系统、资源管理方法以及资源管理程序 |
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 |