数据处理方法、深度学习模型的部署方法、装置及芯片与流程

未命名 08-26 阅读:111 评论:0


1.本技术涉及计算机技术领域,具体而言,涉及一种数据处理方法、深度学习模型的部署方法、装置及芯片。


背景技术:

2.tcm(tightly coupled memory,紧耦合内存)是一种被直接集成在控制芯片内部总线上的紧耦合高速缓存。tcm包括itcm(instruction tcm,指令tcm)和dtcm(data tcm,数据tcm)。
3.目前,基于tcm的加速优化方案,主要方法是把应用程序中频繁需要访问的数据放在dtcm,频繁需要执行的代码放在itcm。
4.然而,在需要频繁访问的数据或需要频繁执行的代码超过tcm的空间大小时,难以直接把相应的数据或者代码直接在初始化阶段固化在tcm中,降低了数据处理效率以及应用程序的执行效率。


技术实现要素:

5.本技术旨在至少解决现有技术或相关技术中存在的技术问题之一。
6.为此,本技术的第一个方面在于提出一种数据处理方法。
7.本技术的第二个方面在于提出一种深度学习模型的部署方法。
8.本技术的第三个方面在于提出一种数据处理装置。
9.本技术的第四个方面在于提出一种深度学习模型的部署装置。
10.本技术的第五个方面在于提出一种芯片。
11.本技术的第六个方面在于提出一种可读存储介质。
12.本技术的第七个方面在于提出一种计算机程序产品。
13.有鉴于此,根据本技术的一个方面,提出了一种数据处理方法,该方法由控制芯片上的处理器执行,控制芯片还包括系统总线,系统总线上分配有第一存储区间和第二存储区间。数据处理方法包括:通过直接内存访问控制器将n个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,n为正整数;根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至n个待处理数据处理完成。
14.本技术提供的数据处理方法,由控制芯片上的cpu(central processing unit,中央处理器)执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
15.具体地,在本技术所提供的数据处理方法中,在对主存数据进行处理的过程中,具体可将主存数据分为n份,以得到n个待处理数据。其中,n为大于1的正整数。在此基础上,在对n个待处理数据进行处理的过程中,启动dma(direct memory access,直接内存访问)控制器,通过直接内存访问控制器,将上述n个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。
16.处理器按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,在处理器对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理器会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内,如此循环往复,直至主存数据也即上述n个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理器对n个待处理数据处理完成。这样,实现了在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
17.根据本技术的上述数据处理方法,还可以具有以下附加技术特征:在一些技术方案中,可选地,控制芯片中封装有中断服务函数,在根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序之前,数据处理方法还包括:调用中断服务函数,以获取对应第一存储区间和第二存储区间的中断标志位;在中断标志位为有效状态的情况下,判定第一个待处理数据向对应的存储区间复制成功。
18.在上述技术方案中,上述控制芯片中还可封装有中断服务函数。处理器会调用上述中断服务函数,以获取分别对应第二存储区间以及第一存储区间的中断标志位。进一步地,处理器根据第二存储区间以及第一存储区间的中断标志位的状态,分别判断通过直接内存访问控制器,向上述第二存储区间或者第一存储区间中拷贝上述第一个待处理数据的数据拷贝过程是否完成。具体地,在中断标志位为有效状态的情况下,判定通过直接内存访问控制器,向对应的存储区间内拷贝上述第一个待处理数据的数据拷贝过程完成,也即判定直接内存访问控制器成功将上述第一个待处理数据拷贝至对应的存储区间内。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,保证了对数据拷贝过程是否完成进行判断的准确性,进而保证了数据传输处理的有序性,提高了数据的传输处理效率。
19.在一些技术方案中,可选地,交替处理第一存储区间和第二存储区间的待处理数据,包括:在中断标志位为有效状态的情况下,处理第一存储区间或第二存储区间中的待处理数据。
20.在上述技术方案中,在处理器对第二存储区间或者第一存储区间中的待处理数据进行处理之前,处理器会调用上述中断服务函数,以获取第二存储区间或者第一存储区间
所对应的中断标志位。进而在获取到的中断标志位为有效状态的情况下,也即在直接内存访问控制器,向对应的第二存储区间或者第一存储区间的数据拷贝过程完成的情况下,处理器才会处理对应的第二存储区间或者第一存储区间中的待处理数据。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,进而再根据数据拷贝过程的完成情况进行数据处理工作,保证了数据传输处理的有序性,提高了数据的传输处理效率。
21.在一些技术方案中,可选地,第一存储区间和第二存储区间为第一内存的存储区间,第一内存支持编程寻址,第一内存为紧耦合高度缓存,第一存储区间和第二存储区间的空间地址相互独立。
22.在上述技术方案中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。
23.其中,上述第一内存支持编程寻址。在实际的应用过程中,上述第一内存具体可为片上紧耦合高度缓存。
24.进一步地,上述第二存储区间以及第一存储区间二者的空间地址相互独立,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
25.在一些技术方案中,可选地,直接内存访问控制器的通道数量与系统总线上分配的存储区间的数量相对应。
26.在上述技术方案中,上述直接内存访问控制器的硬件通道数量,与上述系统总线上分配的存储区间的数量相对应。如此,直接内存访问控制器的硬件通道能够与上述系统总线上分配的存储区间之间一一对应,以便实现在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,从而在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高数据的传输处理效率,进而提高应用程序的执行效率。
27.根据本技术的第二个方面,提出了一种深度学习模型的部署方法,该方法包括:获取深度学习模型的卷积数据,卷积数据包括深度学习模型的卷积核的参数量;在参数量大于第一内存值的情况下,将卷积核的权重数据分割为n个待处理数据,通过上述任一技术方案中的数据处理方法,处理n个待处理数据;其中,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,n为正整数。
28.本技术提供的深度学习模型的部署方法,由控制芯片上的处理器执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
29.其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存dtcm。
30.具体地,在本技术所提供的深度学习模型的部署方法中,在通过深度学习模型进行卷积处理的过程中,获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理器比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理器会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为n个待处理数据。其中,n为大于1的正整数。进一步地,在处理器
通过对卷积核的权重数据进行分割从而得到n个待处理数据之后,处理器再通过上述任一技术方案中的数据处理方法,对分割得到的n个待处理数据进行处理,直至n个待处理数据被处理完成。这样,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
31.根据本技术的上述深度学习模型的部署方法,还可以具有以下附加技术特征:在一些技术方案中,可选地,在获取深度学习模型的卷积数据之后,深度学习模型的部署方法还包括:在参数量小于或等于第一内存值的情况下,将权重数据整体复制到第一内存中进行处理。
32.在上述技术方案中,在上述第一内存值大于或等于上述参数量的情况下,说明卷积核的参数量在第一内存所能承载的数据量范围之内。此时,处理器直接将上述权重数据整体拷贝到第一内存中进行处理。这样,基于上述第一内存的内存值与卷积核的参数量的比较结果,采取不同的数据传输处理模式,对权重数据进行传输处理,实现了基于深度学习模型的权重层参数量和dtcm即第一内存的空间大小关系,自适应优化权重数据的处理策略,提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
33.在一些技术方案中,可选地,卷积数据还包括每一层卷积处理的卷积输入数据,在获取深度学习模型的卷积数据之后,部署方法还包括:针对每一层卷积处理,在卷积输入数据小于第二内存值的情况下,将卷积输入数据传输至第二内存,并对卷积输入数据进行卷积处理,第二内存值与第二内存的内存值相关;在卷积输入数据大于或等于第二内存值的情况下,将卷积输入数据中的部分数据传输至第一内存,对部分数据进行卷积处理,并将卷积结果存储在第一内存中;其中,部分数据的数据量与每一层卷积处理的数据输入通道的数量相对应。
34.在上述技术方案中,上述卷积数据具体还包括深度学习模型中每一层卷积处理的卷积输入数据。
35.在此基础上,针对深度学习模型中的每一层卷积处理,处理器将设定的第二内存值与该层卷积处理的卷积输入数据进行比较。其中,上述第二内存值与第二内存的内存值相关。在设定的第二内存值大于该层卷积处理的卷积输入数据的情况下,说明该层卷积处理的卷积输入数据,位于第二内存所能承载的数据量范围之内。此时,处理器会整体拷贝该层卷积的卷积输入数据至第二内存,并对该层卷积的卷积输入数据进行卷积处理。进一步地,在上述第二内存值小于或等于该层卷积的卷积输入数据的情况下,基于该层卷积处理的数据输入通道维度,预取该层卷积的卷积输入数据中的部分数据至上述第一内存。其中,预取至上述第一内存中的部分数据的数据量,与该层卷积处理的数据输入通道的数量相对应。进一步地,处理器对预取至上述第一内存中的部分数据直接进行卷积计算,并将卷积结果存储在上述第一内存中。如此,处理器按照上述数据处理模式,对深度学习模型中的每一层卷积处理的卷积输入数据进行卷积处理,直至卷积结束。这样,基于深度学习模型每一层卷积处理的卷积输入数据和第二内存的空间大小关系,自适应优化数据处理策略,提高了应用程序的执行效率,提高了深度学习模型推理的实时性。
36.在一些技术方案中,可选地,在获取深度学习模型的卷积数据之后,部署方法还包
括:获取每个数据输出通道输出的卷积数据,得到处理后的至少一个卷积数据;对处理后的至少一个卷积数据进行拼接,得到模型输出数据。
37.在上述技术方案中,在处理器获取深度学习模型的卷积数据,并按照相应的数据处理策略,对获取到的卷积数据进行处理之后,处理器还会按照深度学习模型的数据输出通道维度,获取每个数据输出通道所输出的处理后的卷积数据,进而通过对每个数据输出通道所输出的处理后的卷积数据进行拼接,得到最终的卷积结果,也即得到最终的模型输出数据。
38.在一些技术方案中,可选地,待处理数据的数量与数据输出通道的数量相对应。
39.在上述技术方案中,在处理器对卷积核的权重数据进行分割,以将卷积核的权重数据分割为n个待处理数据的过程中,具体地,处理器按照上述深度学习模型的数据输出通道维度,对卷积核的权重数据进行分割。也即,上述分割后得到的待处理数据的数量,与上述深度学习模型的数据输出通道的数量之间相对应。
40.根据本技术的第三个方面,提出了一种数据处理装置,该装置应用于控制芯片上的处理器,控制芯片还包括系统总线,系统总线上分配有第一存储区间和第二存储区间,数据处理装置包括:处理单元,用于通过直接内存访问控制器将n个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,n为正整数;处理单元,还用于根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;处理单元,还用于根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至n个待处理数据处理完成。
41.本技术提供的数据处理装置,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
42.具体地,本技术所提供的数据处理装置包括处理单元,在对主存数据进行处理的过程中,处理单元可将主存数据分为n份,以得到n个待处理数据。其中,n为大于1的正整数。在此基础上,在对n个待处理数据进行处理的过程中,处理单元启动dma控制器即直接内存访问控制器,通过直接内存访问控制器,将上述n个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,处理单元获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。
43.在此基础上,处理单元按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,在处理单元对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理单元会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内,如此循环往复,直至主存数据也即上述n个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理单元对n个待处理数据处理完成。这样,实现了在处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进
行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
44.根据本技术的第四个方面,提出了一种深度学习模型的部署装置,该装置包括:获取单元,用于获取深度学习模型的卷积数据,卷积数据包括深度学习模型的卷积核的参数量;处理单元,用于在参数量大于第一内存值的情况下,将卷积核的权重数据分割为n个待处理数据,通过上述任一技术方案中的数据处理方法,处理n个待处理数据;其中,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,n为正整数。
45.本技术提供的深度学习模型的部署装置,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
46.其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存dtcm。
47.具体地,本技术所提供的深度学习模型的部署装置包括获取单元以及处理单元,在通过深度学习模型进行卷积处理的过程中,获取单元获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理单元比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理单元会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为n个待处理数据。其中,n为大于1的正整数。进一步地,在处理单元通过对卷积核的权重数据进行分割从而得到n个待处理数据之后,处理单元再通过上述任一技术方案中的数据处理方法,对分割得到的n个待处理数据进行处理,直至n个待处理数据被处理完成。这样,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
48.根据本技术的第五个方面,提出了一种芯片,该芯片包括处理器及系统总线,系统总线上分配有第一存储区间和第二存储区间,芯片上的处理器用于实现如上述任一技术方案中的数据处理方法的步骤,或者,实现如上述任一技术方案中的深度学习模型的部署方法的步骤。因此,本技术第五个方面所提出的芯片具备上述第一个方面任一技术方案中的数据处理方法的全部有益效果,或者,本技术第五个方面所提出的芯片具备上述第二个方面任一技术方案中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
49.根据本技术的第六个方面,提出了一种可读存储介质,其上存储有程序或指令,该程序或指令被处理器执行时实现如上述任一技术方案中的数据处理方法,或者,该程序或指令被处理器执行时实现如上述任一技术方案中的深度学习模型的部署方法。因此,本技术第六个方面所提出的可读存储介质具备上述第一个方面任一技术方案中的数据处理方法的全部有益效果,或者,本技术第六个方面所提出的可读存储介质具备上述第二个方面任一技术方案中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
50.根据本技术的第七个方面,提出了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述任一技术方案中的数据处理方法,或者,该计算机程序
被处理器执行时实现如上述任一技术方案中的深度学习模型的部署方法。因此,本技术第七个方面所提出的计算机程序产品具备上述第一个方面任一技术方案中的数据处理方法的全部有益效果,或者,本技术所提出的计算机程序产品具备上述第二个方面任一技术方案中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
51.本技术的附加方面和优点将在下面的描述部分中变得明显,或通过本技术的实践了解到。
附图说明
52.本技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1示出了本技术实施例的数据处理方法的流程示意图;图2示出了本技术实施例的深度学习模型的部署方法的流程示意图;图3示出了本技术实施例的数据处理方法的原理图;图4示出了本技术实施例的深度学习模型的部署方法的原理图;图5示出了本技术实施例的数据处理装置的结构框图;图6示出了本技术实施例的深度学习模型的部署装置的结构框图;图7示出了本技术实施例的电子设备的结构框图;图8示出了本技术实施例的芯片的结构框图。
具体实施方式
53.为了能够更清楚地理解本技术的上述目的、特征和优点,下面结合附图和具体实施方式对本技术进行进一步的详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
54.在下面的描述中阐述了很多具体细节以便于充分理解本技术,但是,本技术还可以采用其他不同于在此描述的其他方式来实施,因此,本技术的保护范围并不限于下面公开的具体实施例的限制。
55.下面结合图1至图8,通过具体的实施例及其应用场景对本技术实施例提供的数据处理方法、深度学习模型的部署方法、装置及芯片进行详细地说明。
56.在本技术的一个实施例中,如图1所示,数据处理方法具体可包括下述的步骤102至步骤106:步骤102,通过直接内存访问控制器将n个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间;步骤104,根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;步骤106,根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至n个待处理数据处理完成;其中,n为正整数。
57.本技术提供的数据处理方法,由控制芯片上的cpu即中央处理器执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
58.具体地,在本技术所提供的数据处理方法中,在对主存数据进行处理的过程中,具体可将主存数据分为n份,以得到n个待处理数据。其中,n为大于1的正整数。在此基础上,在对n个待处理数据进行处理的过程中,启动dma控制器(即直接内存访问控制器),通过直接内存访问控制器,将上述n个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。具体地,在通过直接内存访问控制器,将上述第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间的过程中,一旦上述第一个待处理数据向第二存储区间以及第一存储区间中的任意一者拷贝成功,便将数据拷贝成功的存储区间确定为后续先被执行数据处理操作的存储区间,并将另一个存储区间确定为后续后被执行数据处理操作的存储区间。
59.在此基础上,在确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序之后,处理器便按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,需要说明的是,在本技术所提出的数据处理方法中,在处理器对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理器会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内。具体地,在处理器对第一存储区间中已拷贝的待处理数据进行处理的过程中,处理器会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间内,而在处理器对第二存储区间中已拷贝的待处理数据进行处理的过程中,处理器则会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第一存储区间内。如此循环往复,直至主存数据也即上述n个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理器对n个待处理数据处理完成。
60.如此,在系统总线上分配两份地址空间相互独立的存储区间,在对主存数据进行处理的过程中,将主存数据分为n个待处理数据,进而基于乒乓操作机制,通过直接内存访问控制器交替向两份存储区间内拷贝待处理数据,以及通过处理器交替处理两份存储区间中已拷贝的待处理数据。其中,处理器以及直接内存访问控制器两者异步工作,也即上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理器处理两份存储区间任意一者中的待处理数据时,通过直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,实现了在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
61.其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实
际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存dtcm。
62.进一步地,在实际的应用过程中,可在控制芯片的系统软件层对直接内存访问控制器的数据拷贝过程进行函数封装,得到数据拷贝函数,该数据拷贝函数用于实现从源地址即主存,借助直接内存访问控制器,拷贝数据到目的地址即上述第二存储区间以及第一存储区间的过程。在此基础上,在对主存数据即上述n个待处理数据进行传输处理的过程中,处理器可直接调用上述数据拷贝函数,以启动直接内存访问控制器,并通过直接内存访问控制器,将待处理数据分别从主存中拷贝到上述第二存储区间和/或第一存储区间之内。
63.另外,在实际的应用过程中,上述控制芯片具体可为dsp(digital signal processor,数字信号处理器)主控芯片,本领域技术人员可根据实际情况,对上述主控芯片的具体类型进行选择,在此不作具体限制。
64.在本技术的一些实施例中,可选地,控制芯片中封装有中断服务函数,在此基础上,在上述步骤104之前,上述数据处理方法具体还可包括下述的步骤108和步骤110:步骤108,调用中断服务函数,以获取分别对应第二存储区间和第一存储区间的中断标志位;步骤110,在中断标志位为有效状态的情况下,判定第一个待处理数据向对应的存储区间复制成功。
65.在该实施例中,上述控制芯片中还可封装有中断服务函数。具体地,在实际的应用过程中,可在控制芯片的系统软件层对中断服务处理程序进行函数封装,得到中断服务函数。该中断服务函数用于指示中断标志位的状态,以通过中断标志位的状态,判断通过直接内存访问控制器,向上述第二存储区间或者第一存储区间中拷贝待处理数据的数据拷贝过程是否完成。
66.在此基础上,在该实施例中,在根据直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序之前,处理器会调用上述中断服务函数,以获取分别对应第二存储区间以及第一存储区间的中断标志位。进一步地,处理器根据第二存储区间以及第一存储区间的中断标志位的状态,分别判断通过直接内存访问控制器,向上述第二存储区间或者第一存储区间中拷贝上述第一个待处理数据的数据拷贝过程是否完成。具体地,在中断标志位为有效状态的情况下,判定通过直接内存访问控制器,向对应的存储区间内拷贝上述第一个待处理数据的数据拷贝过程完成,也即判定直接内存访问控制器成功将上述第一个待处理数据拷贝至对应的存储区间内。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,保证了对数据拷贝过程是否完成进行判断的准确性,进而保证了数据传输处理的有序性,提高了数据的传输处理效率。
67.另外,在实际的应用过程中,在上述任一存储区间的中断标志位为无效状态的情况下,判定通过直接内存访问控制器,向该存储区间内拷贝上述第一个待处理数据的数据拷贝过程并未完成,也即判定直接内存访问控制器并未成功将上述第一个待处理数据拷贝至该存储区间内。
68.在本技术的一些实施例中,可选地,上述交替处理第二存储区间以及第一存储区间中的待处理数据的步骤,具体可包括下述的步骤112:
步骤112,在中断标志位为有效状态的情况下,处理第二存储区间或者第一存储区间中的待处理数据。
69.在该实施例中,在处理器按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理的过程中,具体地,在处理器对第二存储区间或者第一存储区间中的待处理数据进行处理之前,处理器会调用上述中断服务函数,以获取第二存储区间或者第一存储区间所对应的中断标志位,进而在获取到的中断标志位为有效状态的情况下,也即在直接内存访问控制器,向对应的第二存储区间或者第一存储区间的数据拷贝过程完成的情况下,处理器才会处理对应的第二存储区间或者第一存储区间中的待处理数据。
70.具体地,在处理器对第二存储区间以及第一存储区间中的待处理数据进行交替处理的过程中,在处理器处理完第一存储区间中的待处理数据之后,处理器会获取第二存储区间所对应的中断标志位,在该中断标志位为有效状态的情况下,也即在直接内存访问控制器并行向第二存储区间的数据拷贝过程完成的情况下,处理器才会开始处理第二存储区间内已拷贝的待处理数据。而在处理器处理完第二存储区间中的待处理数据之后,处理器会获取第一存储区间所对应的中断标志位,在该中断标志位为有效状态的情况下,也即在直接内存访问控制器并行向第一存储区间的数据拷贝过程完成的情况下,处理器才会开始处理第一存储区间内已拷贝的待处理数据。这样,结合中断服务处理程序,判断直接内存访问控制器针对上述第二存储区间或者第一存储区间的数据拷贝过程是否完成,进而再根据数据拷贝过程的完成情况进行数据处理工作,保证了数据传输处理的有序性,提高了数据的传输处理效率。
71.在本技术的一些实施例中,可选地,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。
72.其中,上述第一内存支持编程寻址。在实际的应用过程中,上述第一内存具体可为片上紧耦合高度缓存。
73.进一步地,上述第二存储区间以及第一存储区间二者的空间地址相互独立,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
74.在此基础上,通过在系统总线上分配的地址空间相互独立的第二存储区间以及第一存储区间,即可基于乒乓操作机制,通过直接内存访问控制器交替向两份存储区间内拷贝待处理数据,以及通过处理器交替处理两份存储区间中已拷贝的待处理数据,从而实现在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
75.在本技术的一些实施例中,可选地,上述直接内存访问控制器的硬件通道数量,与上述系统总线上分配的存储区间的数量相对应。
76.例如,在上述系统总线上分配有两份地址空间相互独立的存储区间的情况下,上述直接内存访问控制器的硬件通道数量也设置为2。如此,直接内存访问控制器的硬件通道能够与上述系统总线上分配的存储区间之间一一对应,以便实现在通过处理器处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往
另一存储区间的搬运操作的数据传输处理模式,从而在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高数据的传输处理效率,进而提高应用程序的执行效率。
77.综上所述,本技术所提出的数据处理方法,基于片上紧耦合高速缓存、dma控制器以及中断服务处理程序的联合工作,实现数据的传输处理操作。同时,在进行数据传输处理的过程中,基于dtcm双缓冲区即dtcm的两个存储区间实现异步数据预取,以及基于中断标志位实现对数据拷贝过程的完成状态的同步查询,在时间维度上对数据处理操作以及数据拷贝操作进行复用,保证了数据传输处理的有序性,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
78.示例性地,如图3所示,在本技术所提出的数据处理方法中,在对主存数据进行处理的过程中,将主存数据分为n份,得到n个待处理数据,进而启动dma,通过dma将上述n个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。在此基础上,cpu根据dma将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第一存储区间的先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序,并按照该数据处理顺序,交替处理第二存储区间以及第一存储区间中的待处理数据。
79.具体地,在上述数据处理顺序为第一存储区间先于第二存储区间的情况下,在cpu交替处理第二存储区间以及第一存储区间中的待处理数据的过程中,如图3所示,cpu调用中断服务函数,以通过中断状态查询,判断dma向第一存储区间的数据拷贝过程是否完成。在dma向第一存储区间的数据拷贝过程完成的情况下,cpu对第一存储区间内的数据进行处理,已完成该部分数据的处理计算。同时,在cpu对第一存储区间内的数据进行处理的过程中,cpu启动dma,并控制dma将下一份待处理数据从主存中预先拷贝到第二存储区间内。进一步地,cpu调用中断服务函数,以通过中断状态查询,判断dma向第二存储区间的数据拷贝过程是否完成。在dma向第二存储区间的数据拷贝过程完成的情况下,cpu对第二存储区间内的数据进行处理,已完成该部分数据的处理计算。同时,在cpu对第二存储区间内的数据进行处理的过程中,cpu启动dma,并控制dma将下一份待处理数据从主存中预先拷贝到第一存储区间内。如此循环往复,直至主存数据也即上述n个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理器对n个待处理数据处理计算完成。
80.在本技术的一个实施例中,如图2所示,深度学习模型的部署方法具体可包括下述的步骤202和步骤204:步骤202,获取深度学习模型的卷积数据;步骤204,在参数量大于第一内存值的情况下,将卷积核的权重数据分割为n个待处理数据,通过数据处理方法,处理n个待处理数据;其中,卷积数据包括深度学习模型的卷积核的参数量,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,n为正整数。
81.本技术提供的深度学习模型的部署方法,由控制芯片上的处理器执行,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
82.其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存dtcm。
83.具体地,在本技术所提供的深度学习模型的部署方法中,在通过深度学习模型进行卷积处理的过程中,获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理器比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理器会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为n个待处理数据。其中,n为大于1的正整数。进一步地,在处理器通过对卷积核的权重数据进行分割从而得到n个待处理数据之后,处理器再通过上述任一技术方案中的数据处理方法,对分割得到的n个待处理数据进行处理,直至n个待处理数据被处理完成。
84.具体地,处理器基于乒乓操作机制,控制直接内存访问控制器交替向两份存储区间内拷贝待处理数据,并交替处理两份存储区间中已拷贝的待处理数据。其中,处理器以及直接内存访问控制器两者异步工作,也即上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理器处理两份存储区间任意一者中的待处理数据时,通过直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
85.例如,基于本技术的深度学习模型的部署方法,在主频400m的dsp主控芯片、256kb的dtcm片上紧耦合高速缓存以及支持dma控制数据传输的边缘设备平台上进行深度学习模型的部署时,深度学习模型至少可达到2倍以上的性能提升。
86.在本技术的一些实施例中,可选地,在上述步骤202之后,上述深度学习模型的部署方法具体还可包括下述的步骤206:步骤206,在参数量小于或等于第一内存值的情况下,将权重数据整体复制到第一内存中进行处理。
87.在该实施例中,在处理器获取深度学习模型的卷积数据之后,处理器会将上述第一内存的内存值即第一内存值以及上述卷积核的参数量进行比较。在此基础上,在上述第一内存值大于或等于上述参数量的情况下,说明卷积核的参数量在第一内存所能承载的数据量范围之内。此时,处理器不会对上述权重数据进行分割,而是直接将上述权重数据整体拷贝到第一内存中进行处理。这样,基于上述第一内存的内存值与卷积核的参数量的比较结果,采取不同的数据传输处理模式,对权重数据进行传输处理,实现了基于深度学习模型的权重层参数量和dtcm即第一内存的空间大小关系,自适应优化权重数据的处理策略,提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
88.在本技术的一些实施例中,可选地,上述卷积数据还可包括每一层卷积处理的卷积输入数据,在此基础上,在上述步骤202之后,上述深度学习模型的部署方法具体还可包括下述的步骤208和步骤210:步骤208,针对每一层卷积处理,在卷积输入数据小于第二内存值的情况下,将卷积输入数据传输至第二内存,并对卷积输入数据进行卷积处理;步骤210,在卷积输入数据大于或等于第二内存值的情况下,将卷积输入数据中的
部分数据传输至第一内存,对部分数据进行卷积处理,并将卷积结果存储在第一内存中;其中,第二内存值与第二内存的内存值相关,部分数据的数据量,与每一层卷积处理的数据输入通道的数量相对应。
89.在该实施例中,上述卷积数据具体还包括深度学习模型中每一层卷积处理的卷积输入数据。
90.在此基础上,在处理器获取深度学习模型的卷积数据之后,针对深度学习模型中的每一层卷积处理,处理器将设定的第二内存值与该层卷积处理的卷积输入数据进行比较。其中,上述第二内存值与第二内存的内存值相关。在设定的第二内存值大于该层卷积处理的卷积输入数据的情况下,说明该层卷积处理的卷积输入数据,位于第二内存所能承载的数据量范围之内。此时,处理器会整体拷贝该层卷积的卷积输入数据至第二内存,并对该层卷积的卷积输入数据进行卷积处理。进一步地,在上述第二内存值小于或等于该层卷积的卷积输入数据的情况下,基于该层卷积处理的数据输入通道维度,预取该层卷积的卷积输入数据中的部分数据至上述第一内存。其中,预取至上述第一内存中的部分数据的数据量,与该层卷积处理的数据输入通道的数量相对应。进一步地,处理器对预取至上述第一内存中的部分数据直接进行卷积计算,并将卷积结果存储在上述第一内存中。如此,处理器按照上述数据处理模式,对深度学习模型中的每一层卷积处理的卷积输入数据进行卷积处理,直至卷积结束。这样,基于深度学习模型每一层卷积处理的卷积输入数据和第二内存的空间大小关系,自适应优化数据处理策略,提高了应用程序的执行效率,提高了深度学习模型推理的实时性。
91.其中,上述第二内存具体可为高速缓冲存储器cache中的d-cache。可以理解的是,在按照数据类型对cache进行划分时,cache可包括d-cache以及i-cache,其中,d-cache用于放置数据,i-cache则用于放置指令。
92.进一步地,上述第二内存值具体可为第二内存的内存值与目标数值的乘积。在实际的应用过程中,上述目标数值具体可为0.75、0.8、0.85以及0.9等数值,本领域技术人员可根据实际情况,对上述目标数值的具体取值进行设置,在此不作具体限制。
93.在本技术的一些实施例中,可选地,在上述步骤202之后,上述深度学习模型的部署方法具体还可包括下述的步骤212和步骤214:步骤212,获取每个数据输出通道输出的卷积数据,得到处理后的至少一个卷积数据;步骤214,对处理后的至少一个卷积数据进行拼接,得到模型输出数据。
94.在该实施例中,在处理器获取深度学习模型的卷积数据,并按照相应的数据处理策略,对获取到的卷积数据进行处理之后,处理器还会按照深度学习模型的数据输出通道维度,获取每个数据输出通道所输出的处理后的卷积数据,进而通过对每个数据输出通道所输出的处理后的卷积数据进行拼接,得到最终的卷积结果,也即得到最终的模型输出数据。
95.在本技术的一些实施例中,可选地,待处理数据的数量,与数据输出通道的数量相对应。
96.在该实施例中,在处理器对卷积核的权重数据进行分割,以将卷积核的权重数据分割为n个待处理数据的过程中,具体地,处理器按照上述深度学习模型的数据输出通道维
度,对卷积核的权重数据进行分割。也即,上述分割后得到的待处理数据的数量,与上述深度学习模型的数据输出通道的数量之间相对应。
97.综上所述,本技术所提出的深度学习模型的部署方法,基于深度学习模型的权重层参数量和dtcm即第一内存的空间大小关系,自适应优化权重数据的处理策略,以及基于深度学习模型每一层卷积处理的卷积输入数据和第二内存的空间大小关系,自适应优化卷积输入数据的处理策略,提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
98.具体地,如图4所示,在本技术所提出的深度学习模型的部署方法中,在通过处理器对卷积数据进行处理过程中,在第一内存的内存值小于深度学习模型的卷积核的参数量的情况下,处理器按照上述深度学习模型的数据输出通道维度,对卷积核的权重数据进行分割,得到n个待处理数据,并按照上述任一技术方案中的数据处理方法,对得到的n个待处理数据进行卷积处理。其中,针对深度学习模型的每一层卷积处理的卷积输入数据,在设定的第二内存值大于卷积输入数据的情况下,处理器会整体拷贝卷积输入数据至第二内存中进行卷积处理;而在上述第二内存值小于或等于卷积输入数据的情况下,处理器则按照每层卷积处理的数据输入通道维度,预取部分数据至上述第一内存中进行卷积计算,并将卷积结果存储在上述第一内存中。在此基础上,在处理器对卷积数据处理结束之后,如图4所示,处理器还会按照深度学习模型的数据输出通道维度,获取每个数据输出通道所输出的处理后的卷积数据,进而通过对每个数据输出通道所输出的处理后的卷积数据进行拼接,得到最终的模型输出数据,从而输出最终的卷积结果。
99.在本技术的一个实施例中,还提出了一种数据处理装置。如图5所示,图5示出了本技术实施例的数据处理装置500的结构框图。其中,该数据处理装置500具体可包括下述的处理单元502:处理单元502,用于通过直接内存访问控制器将n个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,n为正整数;处理单元502,还用于根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;处理单元502,还用于根据数据处理顺序,交替处理第一存储区间和第二存储区间中的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至n个待处理数据处理完成。
100.本技术实施例提供的数据处理装置500,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
101.具体地,本技术所提供的数据处理装置包括处理单元502,在对主存数据进行处理的过程中,处理单元502可将主存数据分为n份,以得到n个待处理数据。其中,n为大于1的正整数。在此基础上,在对n个待处理数据进行处理的过程中,处理单元502启动dma控制器即直接内存访问控制器,通过直接内存访问控制器,将上述n个待处理数据中的第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间。进一步地,处理单元502获取直接内存访问控制器将上述第一个待处理数据,从主存中成功拷贝到第二存储区间以及第
一存储区间的先后顺序,并根据该先后顺序,确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序。具体地,在通过直接内存访问控制器,将上述第一个待处理数据,分别从主存中拷贝到第二存储区间以及第一存储区间的过程中,一旦上述第一个待处理数据向第二存储区间以及第一存储区间中的任意一者拷贝成功,处理单元502便将数据拷贝成功的存储区间确定为后续先被执行数据处理操作的存储区间,并将另一个存储区间确定为后续后被执行数据处理操作的存储区间。
102.在此基础上,在处理单元502确定后续对第二存储区间以及第一存储区间中的数据进行处理的先后顺序即上述数据处理顺序之后,处理单元502便按照确定的数据处理顺序,对第二存储区间以及第一存储区间中的待处理数据进行交替处理。其中,需要说明的是,在处理单元502对第二存储区间以及第一存储区间这两者中的任意一者中的待处理数据进行处理的过程中,处理单元502会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间以及第一存储区间中的另一者内。具体地,在处理单元502对第一存储区间中已拷贝的待处理数据进行处理的过程中,处理单元502会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第二存储区间内,而在处理单元502对第二存储区间中已拷贝的待处理数据进行处理的过程中,处理单元502则会启动直接内存访问控制器,并通过直接内存访问控制器,将下一个待处理数据从主存中预先拷贝到第一存储区间内。如此循环往复,直至主存数据也即上述n个待处理数据向上述第二存储区间以及第一存储区间内拷贝完成,且处理单元502对n个待处理数据处理完成。
103.如此,在系统总线上分配两份地址空间相互独立的存储区间,在对主存数据进行处理的过程中,将主存数据分为n个待处理数据,进而基于乒乓操作机制,通过直接内存访问控制器交替向两份存储区间内拷贝待处理数据,以及通过处理器交替处理两份存储区间中已拷贝的待处理数据。其中,上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理单元502处理两份存储区间任意一者中的待处理数据时,启动直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,实现了在处理当前存储区间中的待处理数据时,通过直接内存访问控制器同时进行下一份待处理数据从主存往另一存储区间的搬运操作的数据传输处理模式,在时间维度上对数据处理操作以及数据拷贝操作进行复用,提高了数据的传输处理效率,从而提高了应用程序的执行效率。
104.其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存dtcm。
105.进一步地,在实际的应用过程中,可在控制芯片的系统软件层对直接内存访问控制器的数据拷贝过程进行函数封装,得到数据拷贝函数,该数据拷贝函数用于实现从源地址即主存,借助直接内存访问控制器,拷贝数据到目的地址即上述第二存储区间以及第一存储区间的过程。在此基础上,在对主存数据即上述n个待处理数据进行传输处理的过程中,处理单元502可直接调用上述数据拷贝函数,以启动直接内存访问控制器,并通过直接内存访问控制器,将待处理数据分别从主存中拷贝到上述第二存储区间和/或第一存储区间之内。
106.另外,在实际的应用过程中,上述控制芯片具体可为dsp主控芯片,本领域技术人员可根据实际情况,对上述主控芯片的具体类型进行选择,在此不作具体限制。
107.在本技术的一些实施例中,可选地,控制芯片中封装有中断服务函数,处理单元502还用于:调用中断服务函数,以获取分别对应第二存储区间和第一存储区间的中断标志位;在中断标志位为有效状态的情况下,判定第一个待处理数据向对应的存储区间复制成功。
108.在本技术的一些实施例中,可选地,处理单元502具体用于:在中断标志位为有效状态的情况下,处理第二存储区间或者第一存储区间中的待处理数据。
109.在本技术的一些实施例中,可选地,第二存储区间以及第一存储区间均为第一内存的存储区间;第一内存支持编程寻址;第一内存为紧耦合高度缓存;第一存储区间和第二存储区间的空间地址相互独立。
110.在本技术的一些实施例中,可选地,直接内存访问控制器的通道数量,与系统总线上分配的存储区间的数量相对应。
111.在本技术的一个实施例中,还提出了一种深度学习模型的部署装置。如图6所示,图6示出了本技术实施例的深度学习模型的部署装置600的结构框图。其中,该深度学习模型的部署装置600具体可包括下述的获取单元602以及处理单元604:获取单元602,用于获取深度学习模型的卷积数据,该卷积数据包括深度学习模型的卷积核的参数量;处理单元604,用于在第一内存值小于参数量的情况下,将卷积核的权重数据分割为n个待处理数据,并通过上述任一实施例中的数据处理方法,处理n个待处理数据;其中,第一内存值为第一内存的内存值,第一内存为紧耦合高度缓存,n为正整数。
112.本技术提供的深度学习模型的部署装置600,应用于控制芯片上的处理器,该控制芯片上还设置有系统总线。进一步地,系统总线上分配有地址空间相互独立的第二存储区间以及第一存储区间,第二存储区间以及第一存储区间用于支持双缓冲区的异步数据预取。
113.其中,上述第二存储区间以及第一存储区间具体可为第一内存的存储区间。在实际的应用过程中,上述第一内存具体可为片上紧耦合高速缓存dtcm。
114.具体地,本技术所提供的深度学习模型的部署装置600包括获取单元602以及处理单元604,在通过深度学习模型进行卷积处理的过程中,获取单元602获取深度学习模型的卷积数据。该卷积数据具体可包括上述深度学习模型的卷积核的参数量。在此基础上,处理单元604比较上述第一内存的内存值即第一内存值以及上述卷积核的参数量,在上述第一内存值小于上述参数量的情况下,说明卷积核的参数量超出第一内存所能承载的数据大小。此时,处理单元604会对卷积核的权重数据进行分割,以将卷积核的权重数据分割为n个待处理数据。其中,n为大于1的正整数。进一步地,在处理单元604通过对卷积核的权重数据进行分割从而得到n个待处理数据之后,处理单元604再通过上述任一技术方案中的数据处理方法,对分割得到的n个待处理数据进行处理,直至n个待处理数据被处理完成。
115.具体地,处理单元604基于乒乓操作机制,控制直接内存访问控制器交替向两份存储区间内拷贝待处理数据,并交替处理两份存储区间中已拷贝的待处理数据。其中,上述拷贝数据以及处理数据的两个操作流程并行实现。具体地,在通过处理单元604处理两份存储区间任意一者中的待处理数据时,启动直接内存访问控制器并行向两份存储区间中的另一者内拷贝下一份待处理数据。这样,在时间维度上对数据处理操作以及数据拷贝操作进行
复用,提高了数据的传输处理效率,提高了应用程序的数据吞吐量,从而提高了应用程序的执行效率,避免了内存带宽受限对模型推理实时性的影响,提高了深度学习模型推理的实时性。
116.例如,基于本技术的深度学习模型的部署装置600,在主频400m的dsp主控芯片、256kb的dtcm片上紧耦合高速缓存以及支持dma控制数据传输的边缘设备平台上进行深度学习模型的部署时,深度学习模型至少可达到2倍以上的性能提升。
117.在本技术的一些实施例中,可选地,处理单元604还用于:在第一内存值大于或等于参数量的情况下,将权重数据整体复制到第一内存中进行处理。
118.在本技术的一些实施例中,可选地,上述卷积数据还可包括每一层卷积处理的卷积输入数据,处理单元604还用于:针对每一层卷积处理,在第二内存值大于卷积输入数据的情况下,将卷积输入数据传输至第二内存,并对卷积输入数据进行卷积处理;在第二内存值小于或等于卷积输入数据的情况下,将卷积输入数据中的部分数据传输至第一内存,对部分数据进行卷积处理,并将卷积结果存储在第一内存中;其中,第二内存值与第二内存的内存值相关,部分数据的数据量,与每一层卷积处理的数据输入通道的数量相对应。
119.在本技术的一些实施例中,可选地,处理单元604还用于:获取每个数据输出通道输出的卷积数据,得到处理后的至少一个卷积数据;对处理后的至少一个卷积数据进行拼接,得到模型输出数据。
120.在本技术的一些实施例中,可选地,待处理数据的数量,与数据输出通道的数量相对应。
121.在本技术的一个实施例中,还提出了一种电子设备。如图7所示,图7示出了本技术实施例提供的电子设备700的结构框图。其中,该电子设备700包括:存储器702,存储器702上存储有程序或指令;处理器704,处理器704执行上述程序或指令时实现如上述任一实施例中的数据处理方法的步骤,或者,处理器704执行上述程序或指令时实现如上述任一实施例中的深度学习模型的部署方法的步骤。
122.本实施例提供的电子设备700包括存储器702和处理器704,存储器702中的程序或指令被处理器704执行时实现如上述任一实施例中的数据处理方法的步骤,或者,存储器702中的程序或指令被处理器704执行时实现如上述任一实施例中的深度学习模型的部署方法的步骤。
123.因此,本技术实施例提出的电子设备700具备上述任一实施例中的数据处理方法的全部有益效果,或者,该电子设备700具备上述任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
124.具体地,存储器702和处理器704可以通过总线或者其它方式连接。处理器704可包括一个或多个处理单元,处理器704可以为中央处理器(central processing unit,cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(fieldprogrammable gate array,fpga)等芯片。
125.在本技术的一个实施例中,还提出了一种芯片。如图8所示,图8示出了本技术实施例提供的芯片800的结构框图。其中,该芯片800包括处理器802及系统总线804,系统总线
804上分配有第一存储区间806和第二存储区间808,芯片800上的处理器802用于实现如上述任一实施例中的数据处理方法的步骤,或者,实现如上述任一实施例中的深度学习模型的部署方法的步骤。
126.因此,本技术实施例提出的芯片800具备上述第一个方面任一实施例中的数据处理方法的全部有益效果,或者,本技术实施例提出的芯片800具备上述第二个方面任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
127.在本技术的一个实施例中,还提出了一种可读存储介质。其上存储有程序或指令,程序或指令被处理器执行时实现如上述任一实施例中的数据处理方法的步骤,或者,程序或指令被处理器执行时实现如上述任一实施例中的深度学习模型的部署方法的步骤。
128.本技术实施例提供的可读存储介质,其存储的程序或指令被处理器执行时,可实现如上述任一实施例中的数据处理方法的步骤,或者实现如上述任一实施例中的深度学习模型的部署方法的步骤。因此,该可读存储介质具备上述任一实施例中的数据处理方法或者上述任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
129.具体地,上述可读存储介质可以包括能够存储或传输信息的任何介质。可读存储介质的例子包括电子电路、半导体存储器设备、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、光盘只读存储器(compact disc read-only memory,cd-rom)、闪存、可擦除rom(erom)、磁带、软盘、光盘、硬盘、光纤介质、射频(rf)链路、光数据存储设备等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
130.在本技术的一个实施例中,还提出了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现如上述任一实施例中的数据处理方法,或者,该计算机程序被处理器执行时实现如上述任一实施例中的深度学习模型的部署方法。
131.因此,本技术所提出的计算机程序产品具备上述第一个方面任一实施例中的数据处理方法的全部有益效果,或者,本技术所提出的计算机程序产品具备上述第二个方面任一实施例中的深度学习模型的部署方法的全部有益效果,在此不再赘述。
132.在一些实施例中,本技术提供一种基于片上可寻址的数据紧耦合高速缓存的软硬件协同优化部署方法。具体地,本技术提出一种基于片上紧耦合高速缓存、dma控制器和中断服务处理程序的联合优化方案;本技术提出一种基于dtcm双缓冲区的异步数据预取,以及基于中断标志的同步状态查询的方案;本技术提出一种基于深度学习模型权重层参数量和dtcm空间的大小关系的自适应优化处理策略。
133.在一些实施例中,本技术基于tcm、dma和中断服务处理的联合方式,提出了一种基于乒乓操作的软硬件协同部署优化方案,通过开辟两份dtcm空间进行乒乓操作,并借助dma从主存搬运数据到dtcm,cpu查询中断标志位判断搬运完成后进行数据处理操作,在处理完当前数据块后启动dma搬运下一份数据到当前dtcm地址空间,然后判断另一份dtcm地址空间的状态并进行相同的操作。这样,保证在cpu处理当前dtcm中的数据块时,dma可同时进行将下一份待处理数据从主存往另一dtcm搬运的操作,在时间维度对数据计算和数据拷贝进行复用,可极大地提升应用程序的执行效率。
134.具体地,本技术提出了一种基于片上紧耦合高速缓存、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完成相应的计算处理。
135.深度学习模型卷积层特化操作:(8)如果卷积核参数量《=dtcm空间大小,整体拷贝卷积核权重;如果卷积核参数量》dtcm空间大小,则沿输出通道维度切分权重数据,然后分别启动dma进行拷贝,并把每一步计算处理后的数据concat(拼接)在一起做为最终的输出;(9)如果卷积输入特征量《d-cache的空间大小
×
0.9(0.9即为上述目标数值,其还可取其他数值),则输入卷积特征不做优化;如果卷积输入特征量》=d-cache的空间大小
×
0.9,则将输入卷积特征沿输入通道维度预取一部分到dtcm,对卷积核沿每个输出通道维度对每个输入通道预取部分数据到dtcm,对这一部分数据直接做卷积计算得到中间结果并保存在dtcm中,然后沿输入通道循环往复上述过程,最后在输出通道维度做concat完成计算结果的拼接。
136.基于本技术提供的技术方案,在主频400m的dsp主控芯片、256kb的dtcm片上紧耦合高速缓存以及支持dma控制数据传输的边缘设备平台上进行深度学习模型的部署,实测本方案可达到2倍以上的性能提升。
137.本技术提供的技术方案可以解决深度学习模型在边缘设备上部署时由于内存带宽受限所导致的模型推理实时性差的问题,本技术通过提出一种基于片上可寻址的紧耦合高速缓存、dma以及中断控制相结合的方式,极大地提升了深度学习模型推理的实时性和应用程序的数据吞吐量。
138.在一些实施例中,本技术提供的技术方案还包括:获取待处理数据,基于如上述任一实施例中的深度学习模型的部署方案,将基于神经网络的深度学习模型部署至边缘设备上,部署的深度学习模型可用于对待处理数据进行处理以得到处理结果。其中,待处理数据可以包括语音数据、图像数据等,对语音数据进行处理包括但不限于:语音识别、语音唤醒、
语音降噪等,在此不做限制。其中,神经网络可以是卷积神经网络。
139.本技术提供的技术方案可以应用于linux/rtos/android/ios等不同边端系统,面向armv7/v8及dsp等不同边端平台提供指令级加速。本技术的技术方案展现出轻量级部署、通用性强、易用性强、高性能推理等特点,全面解决智能设备低资源瓶颈的问题,大幅缩短了ai模型部署周期,在边端ai部署领域达到业界领先水平。并且,本技术提供的技术方案可以应用于自研芯片中,例如可以应用于业界首款支持语音、连接、显示三合一芯片fl119中。相关成果已全面赋能语音冰箱、空调、机器人等智能家电量产落地,提升了智能家电工作的智能性以及增加了智能家电的工作效率。
140.在本说明书的描述中,术语“第一”、“第二”仅用于描述的目的,而不能理解为指示或暗示相对重要性,除非另有明确的规定和限定;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
141.在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
142.另外,本技术各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
143.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
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中任一项所述的深度学习模型的部署方法的步骤。

技术总结
本申请提出了一种数据处理方法、深度学习模型的部署方法、装置及芯片,涉及计算机技术领域。数据处理方法包括:通过直接内存访问控制器将N个待处理数据中的第一个待处理数据分别复制到第一存储区间和第二存储区间,N为正整数;根据第一个待处理数据向第一存储区间和第二存储区间复制成功的先后顺序,确定第一存储区间和第二存储区间的数据处理顺序;根据数据处理顺序,交替处理第一存储区间和第二存储区间的待处理数据,并在对第一存储区间和第二存储区间一者中的待处理数据进行处理的过程中,通过直接内存访问控制器复制下一个待处理数据至第一存储区间和第二存储区间中的另一者,直至N个待处理数据处理完成。直至N个待处理数据处理完成。直至N个待处理数据处理完成。


技术研发人员:丁维浩 唐剑 牟小峰 张法朝 赵东宇 夏立超
受保护的技术使用者:美智纵横科技有限责任公司
技术研发日:2023.07.21
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐