-
公开(公告)号:CN102141976B
公开(公告)日:2013-08-14
申请号:CN201110004075.3
申请日:2011-01-10
Applicant: 中国科学院软件研究所
IPC: G06F17/16
Abstract: 本发明公开一种稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法,存储方法为1)按行扫描稀疏矩阵A,以对角线编号表示非零元对角线的位置;2)以非零元对角线与矩阵A侧边的交点作水平线将矩阵A切分为多个子稀疏矩阵;3)按行顺序存储每个子稀疏矩阵中的非零元对角线上的元素到val数组。SpMV实现方法为:1)遍历稀疏矩阵,计算每个子稀疏矩阵的稀疏矩阵向量乘y=A1*x;2)合并所有子稀疏矩阵向量乘。本发明的数据存储方法不需要存储非零元的列索引,减小了存储空间需求和访存开销;对角线和x数组索引数组占用较小存储空间,降低了访存复杂度,计算所需的数据均为连续访问,使得编译器和硬件可以充分优化。
-
公开(公告)号:CN102141976A
公开(公告)日:2011-08-03
申请号:CN201110004075.3
申请日:2011-01-10
Applicant: 中国科学院软件研究所
IPC: G06F17/16
Abstract: 本发明公开一种稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法,存储方法为1)按行扫描稀疏矩阵A,以对角线编号表示非零元对角线的位置;2)以非零元对角线与矩阵A侧边的交点作水平线将矩阵A切分为多个子稀疏矩阵;3)按行顺序存储每个子稀疏矩阵中的非零元对角线上的元素到val数组。SpMV实现方法为:1)遍历稀疏矩阵,计算每个子稀疏矩阵的稀疏矩阵向量乘y=A1*x;2)合并所有子稀疏矩阵向量乘。本发明的数据存储方法不需要存储非零元的列索引,减小了存储空间需求和访存开销;对角线和x数组索引数组占用较小存储空间,降低了访存复杂度,计算所需的数据均为连续访问,使得编译器和硬件可以充分优化。
-
公开(公告)号:CN102750150B
公开(公告)日:2015-05-13
申请号:CN201210199706.6
申请日:2012-06-14
Applicant: 中国科学院软件研究所
Abstract: 本发明公开了一种基于x86架构的稠密矩阵乘法汇编代码自动生成方法,属于计算机系统应用技术领域。本方法为:1)将稠密矩阵乘法中的源矩阵A、B分别划分为多个子块矩阵;其中,矩阵A划分的子块矩阵AMc*Kc大小为Mc*Kc,矩阵B划分的子块矩阵BKc*Nc大小为Kc*Nc;2)将每个子块矩阵AMc*Kc拷贝到连续的地址空间中,将每个子块矩阵BKc*Nc拷贝至连续的地址空间中;3)代码生成工具利用变化函数将输入的每一AMc*Kc*BKc*Nc子块矩阵乘法过程翻译为x86处理器支持的汇编代码。本发明的代码生成效率高,并可方便的移植到不同的x86处理器上。
-
公开(公告)号:CN103279974A
公开(公告)日:2013-09-04
申请号:CN201310179760.9
申请日:2013-05-15
Applicant: 中国科学院软件研究所
IPC: G06T15/06
Abstract: 本发明涉及一种高精度高分辨率卫星成像模拟引擎及实现方法,包括:场景解析模块、场景组织管理模块、两级任务划分模块、光线追踪模块和图像合成模块;本发明基于光线追踪渲染技术,通过Sender-Worker-Receiver并行计算模型、两级任务划分方法和动态自适应调度方法,能够快速渲染大规模复杂的地形地貌场景,解决了数据通信时单节点性能瓶颈的问题,实现了节点间负载平衡和高扩展性,减少了卫星成像模拟所需的时间,提高了模拟效率。
-
公开(公告)号:CN103336758A
公开(公告)日:2013-10-02
申请号:CN201310271126.8
申请日:2013-06-29
Applicant: 中国科学院软件研究所
IPC: G06F17/16
Abstract: 本发明公开一种稀疏矩阵的存储方法CSRL及SpMV实现方法,按行扫描稀疏矩阵A,用数组val顺序存储每个非零元值信息;定义列下标连续的若干个非零元为一个连续非零元段,用数组jas记录每个连续非零元段的第一个元素的列下标,用数组jan记录每个连续非零元段的非零元个数;用数组ptr记录稀疏矩阵A每行第一个连续非零元段的起始索引。本发明的数据存储方法对非零元的列索引合并存储,减小了存储空间需求;充分挖掘了稀疏矩阵的数据局部性,据此可以利用SIMD指令进行存取和计算,并可减少内存访问次数,提高了稀疏矩阵向量乘SpMV的性能。
-
公开(公告)号:CN102750150A
公开(公告)日:2012-10-24
申请号:CN201210199706.6
申请日:2012-06-14
Applicant: 中国科学院软件研究所
Abstract: 本发明公开了一种基于x86架构的稠密矩阵乘法汇编代码自动生成方法,属于计算机系统应用技术领域。本方法为:1)将稠密矩阵乘法中的源矩阵A、B分别划分为多个子块矩阵;其中,矩阵A划分的子块矩阵AMc*Kc大小为Mc*Kc,矩阵B划分的子块矩阵BKc*Nc大小为Kc*Nc;2)将每个子块矩阵AMc*Kc拷贝到连续的地址空间中,将每个子块矩阵BKc*Nc拷贝至连续的地址空间中;3)代码生成工具利用变化函数将输入的每一AMc*Kc*BKc*Nc子块矩阵乘法过程翻译为x86处理器支持的汇编代码。本发明的代码生成效率高,并可方便的移植到不同的x86处理器上。
-
公开(公告)号:CN103336758B
公开(公告)日:2016-06-01
申请号:CN201310271126.8
申请日:2013-06-29
Applicant: 中国科学院软件研究所
IPC: G06F17/16
Abstract: 本发明公开一种稀疏矩阵的存储方法CSRL及SpMV实现方法,按行扫描稀疏矩阵A,用数组val顺序存储每个非零元值信息;定义列下标连续的若干个非零元为一个连续非零元段,用数组jas记录每个连续非零元段的第一个元素的列下标,用数组jan记录每个连续非零元段的非零元个数;用数组ptr记录稀疏矩阵A每行第一个连续非零元段的起始索引。本发明的数据存储方法对非零元的列索引合并存储,减小了存储空间需求;充分挖掘了稀疏矩阵的数据局部性,据此可以利用SIMD指令进行存取和计算,并可减少内存访问次数,提高了稀疏矩阵向量乘SpMV的性能。
-
公开(公告)号:CN102033854A
公开(公告)日:2011-04-27
申请号:CN201010594672.1
申请日:2010-12-17
Applicant: 中国科学院软件研究所
IPC: G06F17/16
Abstract: 本发明公开一种针对稀疏矩阵的数据存储方法及基于该方法的SpMV实现方法,存储方法包括A、以给定列单元大小的行数扫描稀疏矩阵,当扫描到非零元时,将该非零元所在列的非零元值存储到非零元数组val中;B、计算列值差,判断非零元列单元列值差类型,将列值差类型相同的列单元作为同一列组并存储列组信息到index数组。SpMV实现方法为:1)根据列值差类型,计算列单元的列值;2)根据列值读取相应的x变量,与val中的元素相乘;3)将列组中每个列单元计算得到的结果进行累加后保存在结果数组中;4)继续读取下一个列组的列值差类型。本发明的方法减少了零元填充,提高稀疏矩阵向量乘实现时的操作和存储访问操作的运行效率。
-
-
-
-
-
-
-