【技术实现步骤摘要】
一种用于二值稀疏矩阵的混合编码方法
[0001]本专利技术涉及二值稀疏矩阵的高效压缩
,更具体的说是涉及一种用于二值稀疏矩阵的混合编码方法。
技术介绍
[0002]稀疏矩阵最直观的一个特点是其非零元的数量要远远小于其元素总数,通常认为非零元数和矩阵元素总数的比值小于等于0.05的矩阵为稀疏矩阵,但这并非是一个严格的标准。稀疏矩阵几乎涉及到所有的大型科学工程计算领域中,比如计算流体动力学、统计物理、电路模拟、土木和机械工程、金融规划、气候模拟、医学图像、信息检索等。
[0003]二值稀疏矩阵是稀疏矩阵的一个特例,其非零元的取值都为1,这类稀疏矩阵常见于图计算相关的应用中,另外在稀疏矩阵和稀疏矩阵相乘的结果矩阵非零元数量预测中也会经常涉及到二值稀疏矩阵的计算。充分利用其非零元取值都为1的特点,往往能得到比通用稀疏矩阵压缩格式更高的压缩比和更优的计算性能。
[0004]随着通用图形处理器GPGPU(General
‑
purpose computing on Graphics Processing Units)的快速发展和广泛应用,越来越多的研究人员聚焦于稀疏矩阵计算在GPU平台上的性能优化。稀疏矩阵计算在GPU上的实现基本由三个步骤组成:一是将稀疏编码的矩阵从主机端(CPU内存)传输到设备端(GPU内存),二是利用GPU众多的计算核心完成稀疏矩阵计算,三是将计算得到的结果从设备端传输到主机端。
[0005](1)数据传输的时间开销
[0006]目前,许多研究人员提出的 ...
【技术保护点】
【技术特征摘要】
1.一种用于二值稀疏矩阵的混合编码方法,其特征在于,包括:计算稀疏矩阵缩略图中连通域的数量,初步确定可能的稠密区域具体位置;根据每个稠密区域中黑色像素数占该区域边界矩形的比值判定稠密区域形状;将稀疏矩阵缩略图映射回原稀疏矩阵中,根据每个特定形状的稠密区域子矩阵中非零元占比,得到最终的稠密子矩阵;对稠密子矩阵进行反向编码;将原稀疏矩阵中其余零散分布的非零元组成一个超稀疏剩余子矩阵,并采用正向编码;将反向编码和正向编码结果传输到GPU上,根据输入向量X分别完成稀疏矩阵向量乘之后求和,得到稀疏矩阵向量乘计算结果。2.根据权利要求1所述的一种用于二值稀疏矩阵的混合编码方法,其特征在于,稠密区域形状包括对角块状、矩形和三角形。3.根据权利要求1所述的一种用于二值稀疏矩阵的混合编码方法,其特征在于,稠密子矩阵包括对角块稠密子矩阵、矩形块稠密子矩阵和三角块稠密子矩阵。4.根据权利要求3所述的一种用于二值稀疏矩阵的混合编码方法,其特征在于,对稠密子矩阵进行反向编码具体包括:假设稠密子矩阵中全是非零元,计算稠密子矩阵中所有元素均为非零元时稀疏矩阵向量乘结果;将稠密子矩阵中所有零元采用CSR格式存储,并计算将零元看作
‑
1后对应的向量乘结果;将非零元向量乘结果与零元向量乘结果相加即为稠密子矩阵的编码结果。5.根据权利要求4所述的一种用于二值稀疏矩阵的混合编码方法,其特征在于,矩形块稠密子矩阵具体反向编码方法包括:记录矩形块稠密子矩阵左上角位置(x
r
,y
r
),矩形块大小a
r
×
b
r
,以及矩形块中每一零元的行列索引信息;假设矩形块稠密子矩阵中所有元素均为非零元,根据矩形块的位置、大小信息,以及输入向量x,计算矩形块稠密子矩阵所有元素均为非零元时对应的向量乘结果y
rect
,具体计算公式为:其中,y
rect
[i]表示向量y
rect
的第i个元素,x[j]是向量x的第j个元素,i和j是向量的索引值;三角块稠密子矩阵具体反向编码方法包括:记录三角块稠密子矩阵左上角位置(x
t
,y
t
),三角形块大小a
t
×
b
t<...
【专利技术属性】
技术研发人员:计卫星,高建花,王一拙,石峰,
申请(专利权)人:北京理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。