【技术实现步骤摘要】
图像数据的矩阵运算方法、装置、设备及存储介质
本申请涉及计算机
,特别涉及一种图像数据的矩阵运算方法、装置、设备及存储介质。
技术介绍
在使用神经网络中的神经元对图像数据进行计算的场景中,由于神经元均为矩阵形式的算子,因此计算机需要将图像数据以矩阵的形式进行存储和计算。由于矩阵的运算过程往往计算量很大,时延严重,因此需要对矩阵运算进行优化来提升运算效率。相关技术中提供有针对矩阵数据重排的优化方法,对源矩阵数据进行重排操作,例如将数据排为NC4HW4格式。该重排算法不仅由于数据的大规模调整会带来额外的耗时,而且对于通道数不能被4整除的矩阵,在运算时会加入额外的通道填充步骤。对于大型矩阵而言,重排算法对矩阵运算整体效率带来的提升可以抵消通道填充带来的额外耗费;而对于小型矩阵而言,通道填充带来的额外耗费对矩阵运算效率的影响非常大。在对图像数据进行计算的场景中,如何提高小型矩阵的运算效率,是亟待解决的技术问题。
技术实现思路
本申请实施例提供了一种图像数据的矩阵运算方法、装置、设备及存储介质,能够通过对矩阵数据的中间计算结果进行重排,使得对图像数据的矩阵运算的效率得到提升。所述技术方案如下:根据本申请的一个方面,提供了一种图像数据的矩阵运算方法,应用于计算机设备中,所述方法包括:基于图像算子的矩阵尺寸M行N列,在所述图像数据中读取矩阵数据;采用所述图像算子对应的单一计算指令对所述矩阵数据中的每列数据分别计算,得到1行中间计算结果;将所述1行中间计算结果 ...
【技术保护点】
1.一种图像数据的矩阵运算方法,其特征在于,所述方法包括:/n基于图像算子的矩阵尺寸M行N列,在所述图像数据中读取矩阵数据;/n采用所述图像算子对应的单一计算指令对所述矩阵数据中的每列数据分别计算,得到1行中间计算结果;/n将所述1行中间计算结果复用重排为N行缓存数据;/n采用所述单一计算指令对所述缓存数据中目标列的矩阵元素进行计算,得到所述矩阵数据在所述单一计算指令下的计算结果,所述目标列是所述中间计算结果中的N个矩阵元素在所述N行缓存数据中同时所在的列;/n将所述计算结果输出为所述图像算子对所述矩阵数据的图像处理结果。/n
【技术特征摘要】
1.一种图像数据的矩阵运算方法,其特征在于,所述方法包括:
基于图像算子的矩阵尺寸M行N列,在所述图像数据中读取矩阵数据;
采用所述图像算子对应的单一计算指令对所述矩阵数据中的每列数据分别计算,得到1行中间计算结果;
将所述1行中间计算结果复用重排为N行缓存数据;
采用所述单一计算指令对所述缓存数据中目标列的矩阵元素进行计算,得到所述矩阵数据在所述单一计算指令下的计算结果,所述目标列是所述中间计算结果中的N个矩阵元素在所述N行缓存数据中同时所在的列;
将所述计算结果输出为所述图像算子对所述矩阵数据的图像处理结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述一行中间计算结果复用重排为N行缓存数据,包括:
采用基于滑动窗口的处理指令,将所述滑动窗口中的数据存储至第j个寄存器中,所述滑动窗口中的数据包含所述1行中间计算结果的部分或全部,j的起始值为0;
将所述滑动窗口进行滑动后,将所述滑动窗口中的数据存储至第j+1个寄存器中,所述滑动窗口中的数据包含所述1行中间计算结果的部分或全部;
重复上一步骤,直至得到存储在N个寄存器中的N行缓存数据。
3.根据权利要求2所述的方法,其特征在于,所述处理指令是单指令多数据流指令,所述处理指令支持同时处理K个数据;
所述采用基于滑动窗口的处理指令,将所述滑动窗口中的数据存储至第j个寄存器中,所述滑动窗口中的数据包含所述1行中间计算结果的部分或全部,j的起始值为0,包括:
采用基于所述滑动窗口的处理指令,将所述滑动窗口中的K个数据存储至第j个寄存器中,所述滑动窗口中的数据包含所述1行中间计算结果的部分或全部;
所述将所述滑动窗口进行滑动后,将所述滑动窗口中的数据存储至第j+1个寄存器中,所述滑动窗口中的数据包含所述1行中间计算结果的部分或全部,包括:
将所述滑动窗口进行滑动后,将所述滑动窗口中的K个数据存储至第j+1个寄存器中,所述滑动窗口中的数据包含所述1行中间计算结果的部分或全部。
4.根据权利要求3所述的方法,其特征在于,所述将所述滑动窗口进行滑动后,将所述滑动窗口中的K个数据存储至第j+1个寄存器中,包括:
将所述滑动窗口左滑一位后,将所述滑动窗口中的K个数据存储至第j+1个寄存器中;
或,
将所述滑动窗口右滑一位后,将所述滑动窗口中的K个数据存储至第j+1个寄存器中。
5.根据权利要求2至4任一所述的方法,其特征在于,在所述N行缓存数据中:
存在第j行第i列的矩阵元素与第j+1行第i-1列的矩阵元素相同;
和/或,
存在第t行第i列的矩阵元素与第t-1行第i+1列的矩阵元素相同。
6.根据权利要求1至4任一所述的方法,其特征在于,所述单一运算指令包括如下至少之一:
求和指令;
均值滤波指令;
求最大值指令;
求最小值指令;
卷积指令。
7.根据权利要求1至4任一所述的方法,其特征在于,所述单一运算指令是均值滤波指令或卷积指令,所述采用所述单一运算指令对所述缓存数据中目标列的矩阵元素进行计算,输出所述矩阵数据在所述单一计算指令下的计算结果,包括:
将所述缓存数据中目标列的N个矩阵元素进行相加,得到矩阵元素和;
将所述矩阵...
【专利技术属性】
技术研发人员:陈仲华,李峰,刘程浩,刘毅,艾通,李昊沅,陈其锋,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。