利索能及
我要发布
收藏
专利号: 2019101643716
申请人: 上海商汤智能科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-11-13
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种数据处理方法,其特征在于,包括:基于待处理数据的大小和卷积核的大小,确定所述待处理数据对应的转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,其中,所述待处理数据包括N个图像,每个所述图像包括C个通道,所述N和C中的至少一项为大于1的整数;

基于所述转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,对所述待处理数据进行转换处理,得到所述转换结果矩阵;

对所述转换结果矩阵和所述卷积核进行矩阵乘法操作,获得所述待处理数据的卷积结果;

所述第一数据块包括所述图像在一个通道中的一行数据;

所述第二数据块为大小为R×P的数据块,其中,R为所述卷积核的列数,P为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中横向滑动的次数;

所述第一数据块对应的所述至少一个第二数据块的个数依赖于所述第一数据块在所述第一数据块所属通道中对应的行数;

若所述第一数据块对应的行数L小于所述卷积核的列数R,所述第一数据块对应的第二数据块的数量为L;

若所述第一数据块对应的行数L大于或等于R且小于或等于Q,所述第一数据块对应的第二数据块的数量为R;其中,Q为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中纵向滑动的次数;

若所述第一数据块对应的行数L大于Q,所述第一数据块对应的第二数据块的数量为Q+S‑1‑L;其中,S为所述卷积核的行数。

2.根据权利要求1所述的方法,其特征在于,所述至少一个第二数据块为多个第二数据块,所述第一数据块对应的所述多个第二数据块包括至少一个数据块组,其中,每个所述数据块组包括所述多个第二数据块中两个相邻的第二数据块,其中,所述数据块组中一个第二数据块的右邻居数据块为所述数据块组中另一个第二数据块的下邻居。

3.根据权利要求1所述的方法,其特征在于,所述基于所述转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,对所述待处理数据进行转换处理,得到所述转换结果矩阵,包括:基于所述转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,为所述待处理数据中的每个所述第一数据块分配线程块;

利用为所述第一数据块分配的线程块从所述待处理数据中读取所述第一数据块,并将读取的所述第一数据块写入所述转换结果矩阵中对所述第一数据块具有重用关系的至少一个第二数据块。

4.根据权利要求3所述的方法,其特征在于,所述基于所述转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,为所述待处理数据中的每个所述第一数据块分配线程块,包括:基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块;

将所述多个线程块中每个线程块分配给所述每个线程块对应的第一数据块。

5.根据权利要求4所述的方法,其特征在于,所述基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块,包括:基于所述多个线程块中第一线程块的编号、所述待处理数据中每个图像包含的通道数量C、和每个所述通道需要的线程块数量,确定所述第一线程块在所述待处理数据中对应的图像、图像中的通道以及通道中的第一数据块所对应的行。

6.根据权利要求3所述的方法,其特征在于,还包括:利用为所述第一数据块分配的线程块,将读取的所述第一数据块存储到共享内存中;

所述将读取的所述第一数据块写入转换结果矩阵中对所述第一数据块具有重用关系的至少一个第二数据块,包括:

读取所述共享内存中存储的所述第一数据块的至少一部分,并将读取的数据写入所述转换结果矩阵中的第二数据块。

7.根据权利要求6所述的方法,其特征在于,每个所述线程块包括T个线程;

在利用为所述第一数据块分配的线程块,将读取的所述第一数据块存储到共享内存中之前,还包括:

基于所述共享内存的大小W与所述线程个数T,确定所述T个线程中每个线程读取的所述第一数据块的数据。

8.根据权利要求3至7任一所述的方法,其特征在于,所述利用为所述第一数据块分配的线程块从所述待处理数据中读取所述第一数据块,并将读取的所述第一数据块写入所述转换结果矩阵中对所述第一数据块具有重用关系的至少一个第二数据块,包括:通过为所述第一数据块分配的线程块对所述第一数据块进行滑动读取,并将每次读取到的数据写入所述第一数据块对应的每个所述第二数据块中的一行。

9.一种数据处理方法,其特征在于,包括:读取待处理数据中多个第一数据块中的每个第一数据块,其中,所述待处理数据包括N个图像,每个所述图像包括C个通道,所述N和C中的至少一项为大于1的整数;

将所述第一数据块写入转换结果矩阵中与所述第一数据块对应的至少一个第二数据块,得到所述转换结果矩阵,其中,所述至少一个第二数据块重用所述第一数据块;

对所述转换结果矩阵和卷积核进行矩阵乘法操作,获得所述待处理数据的卷积结果;

所述第一数据块包括所述图像在一个通道中的一行数据;

所述第二数据块为大小为R×P的数据块,其中,R为所述卷积核的列数,P为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中横向滑动的次数;

所述第一数据块对应的所述至少一个第二数据块的个数依赖于所述第一数据块在所述第一数据块所属通道中对应的行数;

若所述第一数据块对应的行数L小于所述卷积核的列数R,所述第一数据块对应的第二数据块的数量为L;

若所述第一数据块对应的行数L大于或等于R且小于或等于Q,所述第一数据块对应的第二数据块的数量为R;其中,Q为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中纵向滑动的次数;

若所述第一数据块对应的行数L大于Q,所述第一数据块对应的第二数据块的数量为Q+S‑1‑L;其中,S为所述卷积核的行数。

10.根据权利要求9所述的方法,其特征在于,所述至少一个第二数据块为多个第二数据块,所述第一数据块对应的所述多个第二数据块包括至少一个数据块组,其中,每个所述数据块组包括所述多个第二数据块中两个相邻的第二数据块,其中,所述数据块组中一个第二数据块的右邻居数据块为所述数据块组中另一个第二数据块的下邻居。

11.根据权利要求9所述的方法,其特征在于,所述将所述第一数据块写入转换结果矩阵中与所述第一数据块对应的至少一个第二数据块,得到所述转换结果矩阵之前,还包括:基于待处理数据的大小和所述卷积核的大小,确定所述转换结果矩阵中的所述至少一个第二数据块与所述第一数据块的数据重用关系;

所述将所述第一数据块写入转换结果矩阵中与所述第一数据块对应的至少一个第二数据块,包括:

基于所述转换结果矩阵中的所述至少一个第二数据块与所述第一数据块的数据重用关系,将所述第一数据块写入转换结果矩阵中的所述至少一个第二数据块。

12.根据权利要求9所述的方法,其特征在于,所述读取待处理数据中多个第一数据块中的每个第一数据块,包括:

为所述待处理数据中的每个所述第一数据块分配线程块;

利用为所述第一数据块分配的线程块从所述待处理数据中读取所述第一数据块。

13.根据权利要求12所述的方法,其特征在于,所述为所述待处理数据中的每个所述第一数据块分配线程块,包括:

基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块;

将所述多个线程块中每个线程块分配给所述每个线程块对应的第一数据块。

14.根据权利要求13所述的方法,其特征在于,所述基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块,包括:基于所述多个线程块中第一线程块的编号、所述待处理数据中每个图像包含的通道数量C、和每个所述通道需要的线程块数量,确定所述第一线程块在所述待处理数据中对应的图像、图像中的通道以及通道中的第一数据块所对应的行。

15.根据权利要求12所述的方法,其特征在于,还包括:利用为所述第一数据块分配的线程块,将读取的所述第一数据块存储到共享内存中;

所述将所述第一数据块写入转换结果矩阵中与所述第一数据块对应的至少一个第二数据块,包括:

读取所述共享内存中存储的所述第一数据块的至少一部分,并将读取的数据写入所述转换结果矩阵中的第二数据块。

16.根据权利要求15所述的方法,其特征在于,每个所述线程块包括T个线程;

在利用为所述第一数据块分配的线程块,将读取的所述第一数据块存储到共享内存中之前,还包括:

基于所述共享内存的大小W与所述线程个数T,确定所述T个线程中每个线程读取的所述第一数据块的数据。

17.根据权利要求9至16任一所述的方法,其特征在于,所述将所述第一数据块写入转换结果矩阵中与所述第一数据块对应的至少一个第二数据块,包括:将每次对所述第一数据块进行滑动读取到的数据写入所述第一数据块对应的每个所述第二数据块中的一行。

18.一种数据处理装置,其特征在于,包括:数据重用关系确定单元,用于基于待处理数据的大小和卷积核的大小,确定所述待处理数据对应的转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,其中,所述待处理数据包括N个图像,每个所述图像包括C个通道,所述N和C中的至少一项为大于1的整数;

数据转换单元,用于基于所述转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,对所述待处理数据进行转换处理,得到所述转换结果矩阵;

结果计算单元,用于对所述转换结果矩阵和所述卷积核进行矩阵乘法操作,获得所述待处理数据的卷积结果;

所述第一数据块包括所述图像在一个通道中的一行数据;

所述第二数据块为大小为R×P的数据块,其中,R为所述卷积核的列数,P为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中横向滑动的次数;

所述第一数据块对应的所述至少一个第二数据块的个数依赖于所述第一数据块在所述第一数据块所属通道中对应的行数;

若所述第一数据块对应的行数L小于所述卷积核的列数R,所述第一数据块对应的第二数据块的数量为L;

若所述第一数据块对应的行数L大于或等于R且小于或等于Q,所述第一数据块对应的第二数据块的数量为R;其中,Q为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中纵向滑动的次数;

若所述第一数据块对应的行数L大于Q,所述第一数据块对应的第二数据块的数量为Q+S‑1‑L;其中,S为所述卷积核的行数。

19.根据权利要求18所述的装置,其特征在于,所述至少一个第二数据块为多个第二数据块,所述第一数据块对应的所述多个第二数据块包括至少一个数据块组,其中,每个所述数据块组包括所述多个第二数据块中两个相邻的第二数据块,其中,所述数据块组中一个第二数据块的右邻居数据块为所述数据块组中另一个第二数据块的下邻居。

20.根据权利要求18所述的装置,其特征在于,所述数据转换单元,用于基于所述转换结果矩阵中至少一个第二数据块对所述待处理数据中的第一数据块的数据重用关系,为所述待处理数据中的每个所述第一数据块分配线程块;利用为所述第一数据块分配的线程块从所述待处理数据中读取所述第一数据块,并将读取的所述第一数据块写入所述转换结果矩阵中对所述第一数据块具有重用关系的至少一个第二数据块。

21.根据权利要求20所述的装置,其特征在于,所述数据转换单元在基于所述转换结果矩阵中多个第二数据块对所述待处理数据中的第一数据块的数据重用关系,为所述待处理数据中的每个所述第一数据块分配线程块时,用于基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块;将所述多个线程块中每个线程块分配给所述每个线程块对应的第一数据块。

22.根据权利要求21所述的装置,其特征在于,所述数据转换单元在基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块时,用于基于所述多个线程块中第一线程块的编号、所述待处理数据中每个图像包含的通道数量C、和每个所述通道需要的线程块数量,确定所述第一线程块在所述待处理数据中对应的图像、图像中的通道以及通道中的第一数据块所对应的行。

23.根据权利要求20所述的装置,其特征在于,所述装置还包括:数据读取单元,用于利用为所述第一数据块分配的线程块,将读取的所述第一数据块存储到共享内存中;

所述数据转换单元,用于读取所述共享内存中存储的所述第一数据块的至少一部分,并将读取的数据写入所述转换结果矩阵中的第二数据块。

24.根据权利要求23所述的装置,其特征在于,每个所述线程块包括T个线程;

所述数据读取单元,还用于基于所述共享内存的大小W与所述线程个数T,确定所述T个线程中每个线程读取的所述第一数据块的数据。

25.根据权利要求20至24任一所述的装置,其特征在于,所述数据转换单元在利用为所述第一数据块分配的线程块从所述待处理数据中读取所述第一数据块,并将读取的所述第一数据块写入所述转换结果矩阵中对所述第一数据块具有重用关系的至少一个第二数据块时,具体用于通过为所述第一数据块分配的线程块对所述第一数据块进行滑动读取,并将每次读取到的数据写入所述第一数据块对应的每个所述第二数据块中的一行。

26.一种数据处理装置,其特征在于,包括:数据读取单元,用于读取待处理数据中多个第一数据块中的每个第一数据块,其中,所述待处理数据包括N个图像,每个所述图像包括C个通道,所述N和C中的至少一项为大于1的整数;

数据转换单元,用于将所述第一数据块写入转换结果矩阵中与所述第一数据块对应的至少一个第二数据块,得到所述转换结果矩阵,其中,所述至少一个第二数据块重用所述第一数据块;

结果计算单元,用于对所述转换结果矩阵和卷积核进行矩阵乘法操作,获得所述待处理数据的卷积结果;

所述第一数据块包括所述图像在一个通道中的一行数据;

所述第二数据块为大小为R×P的数据块,其中,R为所述卷积核的列数,P为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中横向滑动的次数;

所述第一数据块对应的所述至少一个第二数据块的个数依赖于所述第一数据块在所述第一数据块所属通道中对应的行数;

若所述第一数据块对应的行数L小于所述卷积核的列数R,所述第一数据块对应的第二数据块的数量为L;

若所述第一数据块对应的行数L大于或等于R且小于或等于Q,所述第一数据块对应的第二数据块的数量为R;其中,Q为利用所述卷积核对所述待处理数据进行卷积操作时在每个通道中纵向滑动的次数;

若所述第一数据块对应的行数L大于Q,所述第一数据块对应的第二数据块的数量为Q+S‑1‑L;其中,S为所述卷积核的行数。

27.根据权利要求26所述的装置,其特征在于,所述至少一个第二数据块为多个第二数据块,所述第一数据块对应的所述多个第二数据块包括至少一个数据块组,其中,每个所述数据块组包括所述多个第二数据块中两个相邻的第二数据块,其中,所述数据块组中一个第二数据块的右邻居数据块为所述数据块组中另一个第二数据块的下邻居。

28.根据权利要求26所述的装置,其特征在于,所述装置,还包括:数据重用关系确定单元,用于基于待处理数据的大小和所述卷积核的大小,确定所述转换结果矩阵中的所述至少一个第二数据块与所述第一数据块的数据重用关系;

所述数据转换单元,用于基于所述转换结果矩阵中的所述至少一个第二数据块与所述第一数据块的数据重用关系,将所述第一数据块写入转换结果矩阵中的所述至少一个第二数据块。

29.根据权利要求26所述的装置,其特征在于,所述数据读取单元,用于为所述待处理数据中的每个所述第一数据块分配线程块;利用为所述第一数据块分配的线程块从所述待处理数据中读取所述第一数据块。

30.根据权利要求29所述的装置,其特征在于,所述数据读取单元在为所述待处理数据中的每个所述第一数据块分配线程块时,用于基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块;将所述多个线程块中每个线程块分配给所述每个线程块对应的第一数据块。

31.根据权利要求30所述的装置,其特征在于,所述数据读取单元在基于多个线程块中每个线程块的编号,确定所述每个线程块在所述待处理数据中对应的第一数据块时,用于基于所述多个线程块中第一线程块的编号、所述待处理数据中每个图像包含的通道数量C、和每个所述通道需要的线程块数量,确定所述第一线程块在所述待处理数据中对应的图像、图像中的通道以及通道中的第一数据块所对应的行。

32.根据权利要求29所述的装置,其特征在于,所述数据读取单元,还用于利用为所述第一数据块分配的线程块,将读取的所述第一数据块存储到共享内存中;

所述数据转换单元,用于读取所述共享内存中存储的所述第一数据块的至少一部分,并将读取的数据写入所述转换结果矩阵中的第二数据块。

33.根据权利要求32所述的装置,其特征在于,每个所述线程块包括T个线程;

所述数据读取单元,还用于基于所述共享内存的大小W与所述线程个数T,确定所述T个线程中每个线程读取的所述第一数据块的数据。

34.根据权利要求26至33任一所述的装置,其特征在于,所述数据转换单元,用于将每次对所述第一数据块进行滑动读取到的数据写入所述第一数据块对应的每个所述第二数据块中的一行。

35.一种电子设备,其特征在于,包括处理器,所述处理器包括权利要求18至34任意一项所述的数据处理装置。

36.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;

以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至17任意一项所述数据处理方法的操作。

37.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1至17任意一项所述数据处理方法的操作。