[发明专利]数据运算的加速方法、装置、终端及可读存储介质有效
申请号: | 201810500501.4 | 申请日: | 2018-05-23 |
公开(公告)号: | CN108681773B | 公开(公告)日: | 2020-01-10 |
发明(设计)人: | 尚海豹;李昊沅;左小祥;周蔚;李峰;程君 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06T1/20 |
代理公司: | 11270 北京派特恩知识产权代理有限公司 | 代理人: | 蒋雅洁;张颖玲 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据组 运算过程 运算 可读存储介质 读取 缓存 存储单元 数据运算 终端 待运算数据 并行运算 矩阵数据 数据读取 数据元素 占用率 调用 存储 | ||
1.一种数据运算的加速方法,其特征在于,所述方法包括:
在预置存储阵列的各行存储单元的尾部添加空白存储单元,使所述存储阵列的各行存储单元中待选择的存储单元的数量为N的倍数;
从所述存储阵列中待选择的连续的N个存储单元内读取待运算的数据组,其中,N为正整数,单个所述存储单元中已存储待运算的各个矩阵数据中,位于相同位置的数据元素构成的数据组;
将读取的所述数据组缓存至图形处理器;
调用所述图形处理器对所述数据组进行并行运算。
2.如权利要求1所述的方法,其特征在于,所述从所述存储阵列中待选择的连续的N个存储单元内读取待运算的数据组的步骤之前还包括:
读取前馈神经网络的各个数据通道中的矩阵数据;
将各个矩阵数据中位于相同位置的数据元素作为一个数据组存储在预置存储阵列中的同一存储单元。
3.如权利要求2所述的方法,其特征在于,所述从所述存储阵列中待选择的连续的N个存储单元内读取待运算的数据组的步骤,包括:
在执行读取操作时,从所述存储阵列中选择连续的N个存储单元;
读取已选择的所述N个存储单元内存储的数据组。
4.如权利要求3所述的方法,其特征在于,所述在预置存储阵列的各行存储单元的尾部添加空白存储单元,使所述存储阵列的各行存储单元中待选择的存储单元的数量为N的倍数的步骤,包括:
确定所述存储阵列的各行存储单元中待选择的存储单元的数量;
当所述存储阵列的各行存储单元中待选择的存储单元的数量不为N的倍数时,在各行存储单元的尾部添加若干数量的空白存储单元,使所述存储阵列的各行存储单元中待选择的存储单元的数量为N的倍数。
5.如权利要求1至4任意一项所述的方法,其特征在于,所述调用所述图形处理器对所述数据组进行并行运算的步骤包括:
加载预置的开放运算语言库;
利用所述开放运算语言库调用预置的核函数,并基于所述核函数对缓存至图形处理器的各个数据组进行并行运算。
6.如权利要求5所述的方法,其特征在于,所述利用所述核函数对缓存至图形处理器的各个数据组进行并行运算的步骤之后还包括:
读取所述图形处理器中各个数据组运算后的输出数据;
转换读取到的输出数据的格式,使读取到的输出数据的格式与前馈神经网络中的各个矩阵数据的格式相同。
7.一种数据运算的加速装置,其特征在于,所述装置包括:
添加模块,用于在预置存储阵列的各行存储单元的尾部添加空白存储单元,使所述存储阵列的各行存储单元中待选择的存储单元的数量为N的倍数;
读取模块,用于从所述存储阵列中待选择的连续的N个存储单元内读取待运算的数据组,其中,N为正整数,单个所述存储单元中已存储待运算的各个矩阵数据中,位于相同位置的数据元素构成的数据组;
存储模块,用于将读取的所述数据组缓存至图形处理器;
运算模块,用于调用所述图形处理器对所述数据组进行并行运算。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
初始数据读取模块,用于读取前馈神经网络的各个数据通道中的矩阵数据;
排列存储模块,用于将各个矩阵数据中位于相同位置的数据元素作为一个数据组存储在预置存储阵列中的同一存储单元。
9.如权利要求8所述的装置,其特征在于,所述读取模块包括:
选择模块,用于在执行读取操作时,从所述存储阵列中选择连续的N个存储单元;
读取子模块,用于读取已选择的N个存储单元内存储的数据组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810500501.4/1.html,转载请声明来源钻瓜专利网。