[发明专利]矩阵存储方法、矩阵访问方法、装置和电子设备在审
申请号: | 201911420575.8 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111176582A | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 阮元;李浩洋 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 许静;黄灿 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 矩阵 存储 方法 访问 装置 电子设备 | ||
本申请公开了一种矩阵存储方法、矩阵访问方法、装置和电子设备,涉及数据访存技术领域。其中存储方法包括:按照预设的N行×M列的分割粒度,将矩阵分割成多个数据块;多个数据块包括至少一个第一数据块,第一数据块为N行×M列的数据块;若矩阵的列数不为M的整数倍,则多个数据块还包括至少一个N行×P列的第二数据块,第二数据块与相邻的第一数据块行对齐;将第一数据块、第二数据块中的数据连续存储于片外存储。本申请一个实施例具有如下有益效果:能够实现将数据块完整且连续地写入片外存储,在需要访问矩阵的数据块时,可以对连续存储于片外存储的数据块进行完整的读取,提高了矩阵处理效率。
技术领域
本申请涉及数据处理技术,尤其涉及数据访存技术领域,具体涉及一种矩阵存储方法、矩阵访问方法、装置和电子设备。
背景技术
神经网络被广泛应用于人工智能场景中,如语音识别、图像识别等,神经网络的运算过程通常涉及大量的矩阵操作。随着神经网络运算过程所需的存储空间增大,NPU(Neural-network Processing Unit,神经网络处理器)除了片内存储之外,通常还设置有片外存储。这样,可先将待处理的矩阵存储于片外存储中,处理时,再将存储于片外存储的矩阵按需加载至片内存储。目前,通常采用行存或列存的方式来存储矩阵,而NPU做矩阵运算时通常不会基于现有存储方式加载数据,这使得NPU的矩阵处理效率较低。
发明内容
本申请提供一种矩阵存储方法、矩阵访问方法、装置和电子设备,以解决NPU的矩阵处理效率较低的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请提供了一种矩阵存储方法,包括:
按照预设的N行×M列的分割粒度,将矩阵分割成多个数据块,所述N和M中的至少一者大于1;其中,所述多个数据块包括至少一个第一数据块,所述第一数据块为N行×M列的数据块;若所述矩阵的列数不为所述M的整数倍,则所述多个数据块还包括至少一个N行×P列的第二数据块,所述第二数据块与相邻的所述第一数据块行对齐,所述P小于所述M;
将每个所述第一数据块中的数据连续存储于片外存储,且将每个所述第二数据块中的数据连续存储于所述片外存储。
可选的,若所述矩阵的行数不为所述N的整数倍,则所述多个数据块还包括至少一个L行×S列的第三数据块,所述L小于所述N。
可选的,所述第三数据块的数量为1,所述S等于所述矩阵的列数。
可选的,所述方法还包括:
将每个所述第三数据块中的数据连续存储于所述片外存储。
可选的,若所述片外存储包括多个存储通道,则所述分割粒度为单个存储通道的存储粒度的整数倍。
第二方面,本申请提供了一种矩阵访问方法,所述矩阵为采用第一方面中任一项的矩阵存储方法存储于片外存储的矩阵,所述方法包括:
接收针对所述矩阵的访问请求,所述访问请求包括所述矩阵的访问参数;
若所述访问参数对应的数据块包括完整的第一数据块或完整的第二数据块,则从片外存储中读取所述数据块的数据;
若所述访问参数对应的数据块包括不完整的第一数据块或不完整的第二数据块,则禁止从所述片外存储中读取所述数据块的数据。
第三方面,本申请提供了一种矩阵存储装置,包括:
分割模块,用于按照预设的N行×M列的分割粒度,将矩阵分割成多个数据块,所述N和M中的至少一者大于1;其中,所述多个数据块包括至少一个第一数据块,所述第一数据块为N行×M列的数据块;若所述矩阵的列数不为所述M的整数倍,则所述多个数据块还包括至少一个N行×P列的第二数据块,所述第二数据块与相邻的所述第一数据块行对齐,所述P小于所述M;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911420575.8/2.html,转载请声明来源钻瓜专利网。