[发明专利]张量维度变换的方法以及装置有效
申请号: | 201910939477.9 | 申请日: | 2019-09-30 |
公开(公告)号: | CN110837483B | 公开(公告)日: | 2021-07-23 |
发明(设计)人: | 陈永胜 | 申请(专利权)人: | 厦门星宸科技有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;G06F15/78 |
代理公司: | 上海盈盛知识产权代理事务所(普通合伙) 31294 | 代理人: | 孙佳胤 |
地址: | 361000 福建省厦门市思*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 张量 维度 变换 方法 以及 装置 | ||
1.一种张量维度变换的方法,其特征在于,包括如下步骤:
1)构建DMA读取原始张量数据的维度排布;
2)用DMA按照步骤1)构建的维度排布将张量数据读入片内缓存中;
3)在片内缓存中,通过硬件矢量处理单元实现维度交换,同时会形成新的张量维度排布;
4)用DMA按照步骤3)中维度交换后的维度排布读取片内缓存中的数据写到目标张量的相应位置。
2.根据权利要求1所述的方法,其特征在于,步骤1)进一步包括如下步骤:
A.根据片内缓存的宽度和张量维度变换的顺序确定维度拆分规则和对原始张量实行维度拆分;
B.根据拆分后的维度排布确定片内缓存每行能写入的原始张量的维度组作为第一维度组,根据拆分后的维度排布确定片内缓存每行能写入的目标张量的维度组作为第二维度组;
C.构建读取原始张量数据的维度排布:第一维度组排在最内侧,第二维度组排在第一维度组的外侧,将剩下的维度按照原来的顺序依次排在第二维度组的外侧。
3.根据权利要求1所述的方法,其特征在于,步骤2)进一步包括如下步骤:
A.根据步骤1)中的维度排布,确定DMA每批可以直接读入数据元素的个数;根据片内缓存的大小,确定DMA读入数据的次数;
B.根据步骤1)中的维度排布,DMA读取数据到片内缓存时依赖于两个循环,内层循环是从DMA可以直接读取的最高维度到片内缓存能放下的最高维度,外层循环包含比内层循环更高的所有维度;根据这两层循环中各个维度上对应的值,计算出DMA从原始张量中读取数据的位置;
C.DMA从B中计算出来的原始张量的位置处读取数据到片内缓存中,DMA每读取一次数据,内层循环的最低维加一,当这个维度上的值达到本维度的维度值后向高一维进位并将循环中对应的这个维度上的值清零,DMA读满片内缓存区后,向外层循环进位。
4.根据权利要求1所述的方法,其特征在于,步骤3)进一步包括如下步骤:
A.根据目标张量的维度排布顺序,确定是否需要在第一维度组内进行维度交换,如果需要则利用硬件矢量处理单元进行维度交换;
B.利用硬件矢量处理单元,将第一维度组和第二维度组各作为一个整体按照二维矩阵转置的方式,对片内缓存中的数据做转置,这样实现了第一维度组和第二维度组进行交换;
C.根据目标张量的维度排布顺序,确定是否需要在第二维度组内进行维度交换,如果需要则利用硬件矢量处理单元进行维度交换,这样就形成了一个新的维度排布。
5.根据权利要求1所述的方法,其特征在于,步骤4)进一步包括如下步骤:
A.DMA在从片内缓存中读取数据写到目标张量中指定的位置时依赖于一个循环,这个循环包括比DMA每次可以直接读取数据的最高维度更高的所有维度,根据这个循环中的值,可以计算出DMA当前从片内缓存中读取的这批数据要写到目标张量的位置;
B.DMA从片内缓存中读取数据写到目标张量中的指定位置,DMA每读取一次数据,这个循环的最低维上加一,当最低维度上的值达到该维度的维度值后向高一维进位并将该维度上的值清零。
6.一种用于张量维度变换的装置,包括执行器和片内缓存,其特征在于,所述执行器操作所述片内缓存,执行如下步骤:
1)构建DMA读取原始张量数据的维度排布;
2)用DMA按照步骤1)构建的维度排布将张量数据读入片内缓存中;
3)在片内缓存中,通过硬件矢量处理单元实现维度交换,同时会形成新的张量维度排布;
4)用DMA按照步骤3)中维度交换后的维度排布读取片内缓存中的数据写到目标张量的相应位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门星宸科技有限公司,未经厦门星宸科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910939477.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:投影触控方法、投影设备、投影幕布及存储介质
- 下一篇:一种黑臭水体处理系统