稀疏矩阵压缩格式相互转换方法技术

技术编号:39503954 阅读:10 留言:0更新日期:2023-11-24 11:35
本申请提供一种稀疏矩阵压缩格式相互转换方法

【技术实现步骤摘要】
稀疏矩阵压缩格式相互转换方法、装置、设备及存储介质


[0001]本申请涉及仿真
,尤其涉及稀疏矩阵压缩格式相互转换方法

装置

设备及存储介质


技术介绍

[0002]在仿真技术中求解大型稀疏矩阵方程组问题时,针对不同的算法,对应形成了不少开源或商业的求解器库,这些求解器库都会根据自己的需求采用一种压缩格式对稀疏矩阵本身的数据进行存储

因此,在不同的通用方程组求解器的相互适配过程中,稀疏矩阵压缩格式的相互转换成为关键问题之一

[0003]相关技术中,通常的技术方案只针对两个数据格式进行转换,在对多种格式适配的需求下,需要在不同压缩格式间进行转换,代码开发量较大,扩展性较差;另外,在格式转换所需的排序过程中,由于需要对三个数组进行同时排序,往往会产生一些中间数据记录排序信息,这对于内存占用庞大的稀疏矩阵成本较高,无法兼顾内存效率和运行效率


技术实现思路

[0004]为克服相关技术中存在的问题,本申请提供一种稀疏矩阵压缩格式相互转换方法

装置

设备及存储介质,能够兼顾内存效率和运行效率

[0005]本申请第一方面提供一种稀疏矩阵压缩格式相互转换方法,包括:
[0006]在接收到格式转换指令时,解析所述格式转换指令,确定当前压缩存储格式和目标压缩存储格式;
[0007]获取满足所述当前压缩存储格式的第一稀疏矩阵数据;
[0008]将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据;
[0009]使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据;
[0010]将所述第三稀疏矩阵数据按照所述目标压缩存储格式进行压缩存储,得到满足所述目标压缩格式的第四稀疏矩阵数据

[0011]进一步的,若所述第一稀疏矩阵数据为按照行索引的稀疏矩阵数据,则所述将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据,包括:
[0012]按照设定计算公式将所述行索引展开为行号,确定非零元素值对应的行号;
[0013]根据行号

列号以及非零元素值之间的对应关系确定满足中间压缩存储格式的第二稀疏矩阵数据,所述第二稀疏矩阵数据为先按列排序,再按行排序的稀疏矩阵数据

[0014]进一步的,所述使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据,包括:
[0015]根据行号

列号以及非零元素值之间的对应关系,使用预设迭代器对所述第二稀
疏矩阵数据进行不产生中间数据的原位重排列操作,得到所述第三稀疏矩阵数据,所述第三稀疏矩阵数据为先按行排序,再按列排序的稀疏矩阵数据

[0016]进一步的,若所述第一稀疏矩阵数据为按照列索引的稀疏矩阵数据,则所述将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据,包括:
[0017]按照设定计算公式将所述列索引展开为列号,确定非零元素值对应的列号;
[0018]根据行号

列号以及非零元素值之间的对应关系确定满足中间压缩存储格式的第二稀疏矩阵数据,所述第二稀疏矩阵数据为先按行排序,再按列排序的稀疏矩阵数据

[0019]进一步的,所述使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据,包括:
[0020]根据行号

列号以及非零元素值之间的对应关系,使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到所述第三稀疏矩阵数据,所述第三稀疏矩阵数据为先按列排序,再按行排序的稀疏矩阵数据

[0021]本申请第二方面提供一种稀疏矩阵压缩格式相互转换装置,包括:
[0022]第一处理单元,用于在接收到格式转换指令时,解析所述格式转换指令,确定当前压缩存储格式和目标压缩存储格式;
[0023]第二处理单元,用于获取满足所述当前压缩存储格式的第一稀疏矩阵数据;
[0024]第三处理单元,用于将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据;
[0025]第四处理单元,用于使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据;
[0026]第五处理单元,用于将所述第三稀疏矩阵数据按照所述目标压缩存储格式进行压缩存储,得到满足所述目标压缩格式的第四稀疏矩阵数据

[0027]进一步的,若所述第一稀疏矩阵数据为按照行索引的稀疏矩阵数据,则所述第三处理单元具体用于:
[0028]按照设定计算公式将所述行索引展开为行号,确定非零元素值对应的行号;
[0029]根据行号

列号以及非零元素值之间的对应关系确定满足中间压缩存储格式的第二稀疏矩阵数据,所述第二稀疏矩阵数据为先按列排序,再按行排序的稀疏矩阵数据

[0030]进一步的,所述第四处理单元具体用于:
[0031]根据行号

列号以及非零元素值之间的对应关系,使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到所述第三稀疏矩阵数据,所述第三稀疏矩阵数据为先按行排序,再按列排序的稀疏矩阵数据

[0032]本申请第三方面提供一种电子设备,包括:
[0033]处理器;以及
[0034]存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法

[0035]本申请第四方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法

[0036]本申请提供的技术方案可以包括以下有益效果:
[0037]本申请在接收到格式转换指令时,解析所述格式转换指令,确定当前压缩存储格式和目标压缩存储格式;获取满足所述当前压缩存储格式的第一稀疏矩阵数据;将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据,使用中间压缩存储格式作为中间数据,将各个格式之间相互解耦,可以提高复用率和可扩展性,降低代码开发量;使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据,通过预设迭代器同时指向稀疏矩阵数据中的相同位置,并采用原位置换操作实现重新排序,不用额外产生中间数据,以达到兼顾内存效率和运行效率的效果;将所述第三稀疏矩阵数据按照所述目标压缩存储格式进行压缩存储,得到满足所述目标压缩格式的第四稀疏矩阵数据

...

【技术保护点】

【技术特征摘要】
1.
一种稀疏矩阵压缩格式相互转换方法,其特征在于,包括:在接收到格式转换指令时,解析所述格式转换指令,确定当前压缩存储格式和目标压缩存储格式;获取满足所述当前压缩存储格式的第一稀疏矩阵数据;将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据;使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据;将所述第三稀疏矩阵数据按照所述目标压缩存储格式进行压缩存储,得到满足所述目标压缩格式的第四稀疏矩阵数据
。2.
根据权利要求1所述的方法,其特征在于,若所述第一稀疏矩阵数据为按照行索引的稀疏矩阵数据,则所述将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据,包括:按照设定计算公式将所述行索引展开为行号,确定非零元素值对应的行号;根据行号

列号以及非零元素值之间的对应关系确定满足中间压缩存储格式的第二稀疏矩阵数据,所述第二稀疏矩阵数据为先按列排序,再按行排序的稀疏矩阵数据
。3.
根据权利要求2所述的方法,其特征在于,所述使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据,包括:根据行号

列号以及非零元素值之间的对应关系,使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到所述第三稀疏矩阵数据,所述第三稀疏矩阵数据为先按行排序,再按列排序的稀疏矩阵数据
。4.
根据权利要求1所述的方法,其特征在于,若所述第一稀疏矩阵数据为按照列索引的稀疏矩阵数据,则所述将所述第一稀疏矩阵数据进行格式转换,得到满足中间压缩存储格式的第二稀疏矩阵数据,包括:按照设定计算公式将所述列索引展开为列号,确定非零元素值对应的列号;根据行号

列号以及非零元素值之间的对应关系确定满足中间压缩存储格式的第二稀疏矩阵数据,所述第二稀疏矩阵数据为先按行排序,再按列排序的稀疏矩阵数据
。5.
根据权利要求4所述的方法,其特征在于,所述使用预设迭代器对所述第二稀疏矩阵数据进行不产生中间数据的原位重排列操作,得到第三稀疏矩阵数据,包...

【专利技术属性】
技术研发人员:王哲成郑建国刁含之包刚强
申请(专利权)人:安世亚太科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1