[发明专利]张量维度变换的方法以及装置有效
申请号: | 201910939477.9 | 申请日: | 2019-09-30 |
公开(公告)号: | CN110837483B | 公开(公告)日: | 2021-07-23 |
发明(设计)人: | 陈永胜 | 申请(专利权)人: | 厦门星宸科技有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;G06F15/78 |
代理公司: | 上海盈盛知识产权代理事务所(普通合伙) 31294 | 代理人: | 孙佳胤 |
地址: | 361000 福建省厦门市思*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 张量 维度 变换 方法 以及 装置 | ||
本发明提供了一种张量维度变换的方法,包括如下步骤:1)构建DMA读取原始张量数据的维度排布;2)用DMA按照步骤1)构建的维度排布将张量数据读入片内缓存中;3)在片内缓存中,通过硬件矢量处理单元实现维度交换,同时会形成新的张量维度排布;4)用DMA按照步骤3)中维度交换后的维度排布将数据读取片内缓存中的数据写到目标张量的相应位置。
技术领域
本发明涉及芯片设计领域,尤其涉及一种张量维度变换的方法以及装置。
背景技术
人工智能算法中大部分都存在大量张量维度变换。现有技术中的SOC内部硬件模块内部没有张量维度变换的处理单元,张量维度变换都是使用CPU来实现的。使用CPU实现张量变换的流程:
1逐个计算出张量中的各个元素的目标位置;
2将元素逐个复制到目标位置。
CPU实现张量变换需要大量的运算去计算出元素的目标位置,然后读写数据,运行效率很低。
发明内容
本发明所要解决的技术问题是,提供一种张量维度变换方法,能够提高计算速度,节约系统资源。
为了解决上述问题,本发明提供了一种张量维度变换的方法,包括如下步骤:1)构建DMA读取原始张量数据的维度排布;2)用DMA按照步骤1)构建的维度排布将张量数据读入片内缓存中;3)在片内缓存中,通过硬件矢量处理单元实现维度交换,同时会形成新的张量维度排布;4)用DMA按照步骤3)中维度交换后的维度排布读取片内缓存中的数据写到目标张量的相应位置。
本发明还提供了一种用于张量维度变换的装置,包括执行器和片内缓存,所述执行器操作所述片内缓存,执行如下步骤:1)构建DMA读取原始张量数据的维度排布;2)用DMA按照步骤1)构建的维度排布将张量数据读入片内缓存中;3)在片内缓存中,通过硬件矢量处理单元实现维度交换,同时会形成新的张量维度排布;4)用DMA按照步骤3)中维度交换后的维度排布读取片内缓存中的数据写到目标张量的相应位置。
本发明将原本由CPU直接计算进行张量变换和展开的过程,变为借助于专用的硬件矢量处理单元和片内缓存实施,节省了系统资源,提高了计算效率。
附图说明
附图1A与附图1B所示是本发明一具体实施方式的实施步骤示意图。
附图2A-2D所示是本发明一具体实施方式所采用的原始张量以及变换后张量的结构示意图。
附图3所示是本发明附图1的具体实施方式的中内外层循环的张量示意图。
附图4所示是本发明又一具体实施方式的实施步骤示意图。
具体实施方式
下面结合附图对本发明提供的张量维度变换的方法以及装置的具体实施方式做详细说明。
附图1A所示是本发明一具体实施方式的实施步骤示意图,包括:1)构建DMA(Direct Memory Access,直接内存存取单元)读取原始张量数据的维度排布;2)用DMA按照步骤1)构建的维度排布将张量数据读入片内缓存中;3)在片内缓存中,通过硬件矢量处理单元实现维度交换,同时会形成新的张量维度排布;4)用DMA按照步骤3)中维度交换后的维度排布读取片内缓存中的数据写到目标张量的相应位置。附图1B所示是上述步骤展开后的实施步骤示意图。
参考步骤1),构建DMA读取原始张量数据的维度排布。
本步骤又可以包括如下详细步骤:
A.根据片内缓存的宽度和张量维度变换的顺序确定维度拆分规则和对原始张量实行维度拆分。附图2A所示是本具体实施方式所采用的原始张量的结构示意图,为一个N+1维张量,各个维度的维度数分别为Di(i的取值从0到N)。在本具体实施方式的叙述中,以右侧为内,以左侧为外。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门星宸科技有限公司,未经厦门星宸科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910939477.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:投影触控方法、投影设备、投影幕布及存储介质
- 下一篇:一种黑臭水体处理系统