CN112636765B - 基于数据压缩存储的细粒度并行查表方法 - Google Patents

基于数据压缩存储的细粒度并行查表方法 Download PDF

Info

Publication number
CN112636765B
CN112636765B CN201910903873.6A CN201910903873A CN112636765B CN 112636765 B CN112636765 B CN 112636765B CN 201910903873 A CN201910903873 A CN 201910903873A CN 112636765 B CN112636765 B CN 112636765B
Authority
CN
China
Prior art keywords
granularity
fine
original
parallel
lookup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910903873.6A
Other languages
English (en)
Other versions
CN112636765A (zh
Inventor
董恩铭
方燕飞
杨建斌
杨小川
尉红梅
李雁冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910903873.6A priority Critical patent/CN112636765B/zh
Publication of CN112636765A publication Critical patent/CN112636765A/zh
Application granted granted Critical
Publication of CN112636765B publication Critical patent/CN112636765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种基于数据压缩存储的细粒度并行查表方法,包括以下步骤,原始数据压缩,将原细元素粒度的表按照其粒度压缩存储为int类型的表X;根据原表元素粒度生成不同的掩码表Y;根据原表元素粒度对原查表偏移进行处理,得到偏移量为A和B;按查表偏移A按int类型并行查表X,得到查表结果X1;按查表偏移B按int类型并行查表Y,得到查表结果Y1;对X1和Y1进行逻辑运算及移位操作得到最终查表结果。本发明是对用户原始细粒度表元素合并压缩存储,通过增加简单逻辑运算及移位运算实现细粒度的并行查表功能,有效避免以int为单位进行查表导致的空间膨胀,大大提升了具有细粒度查表类课题的向量并行优化的可能性。

Description

基于数据压缩存储的细粒度并行查表方法
技术领域
本发明属于计算机算法领域,尤其涉及一种基于数据压缩存储的细粒度并行查表方法。
背景技术
许多大规模并行算法运算复杂,一种常见的提升性能的方法是将复杂运算简化为等效的查表(以某索引值对某数组进行离散访存)操作,对于以向量宽度并行存储的数据,简单的算术或逻辑运算的效率可以大幅提升,但是并行查表(以向量宽度并行存储的数据作为索引进行并行查表(离散访存)操作)是其一大瓶颈,如果向量并行查表的效率等于甚至弱于各分位的标量查表之和,则失去了向量并行的意义。
现有部分的异构众核平台支持快速int类型的并行查表功能,但这需要按照向量宽度将原表空间复制多份。应用课题中往往存在byte类型甚至是bit类型的细粒度并行查表需求,针对大规模的表,若采用int类型存储byte类型甚至是bit类型的表元素数据,再结合并行查表带来的空间复制,会使表空间迅速膨胀,以至于无法存入高速暂存存储器(Scratch Pad Memory,SPM)空间,这种方法不能满足byte类型甚至是bit类型的细粒度并行查表需求。
发明内容
本发明目的在于提供一种基于数据压缩存储的细粒度并行查表方法,以解决使用int类型存储byte类型或bit类型的表元素数据后,再结合并行查表带来的空间复制,使表空间迅速膨胀,以至于无法存入高速存储区域的问题。
为达到上述目的,本发明采用的技术方案是:一种基于数据压缩存储的细粒度并行查表方法,包括以下步骤,
S1:原始数据压缩,将原细粒度的表按照其原始元素粒度压缩存储为int类型的表X;
S2:根据原表元素粒度生成不同的掩码表Y;
S3:根据原表元素粒度对原查表偏移进行处理,得到偏移量为A和B;
S4:按S3中生成的查表偏移A按int类型并行查S1中生成的表X,得到查表结果X1
S5:按S3中生成的查表偏移B按int类型并行查S1中生成的表Y,得到查表结果Y1
S6:对S4和S5中的查表结果X1和Y1进行逻辑运算及移位操作得到最终查表结果。
1. 上述方案中,所述原细粒度表的元素粒度为半字粒度或byte粒度或bit粒度。
2. 上述方案中,所述细粒度查表对于半字粒度或byte粒度的查表结果处理是通过两次查表结果X1和Y1进行简单逻辑运算及移位得出的。
3. 上述方案中,所述细粒度查表对于bit粒度的查表结果处理是将两次查表结果X1和Y1进行逻辑运算后判断结果为0或1,不需做移位运算。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明基于数据压缩存储的细粒度并行查表方法,该细粒度并行查表方法是对用户原始细粒度表元素合并压缩存储,通过增加简单逻辑运算及移位运算实现细粒度的并行查表功能,有效避免以int为单位直接存储原始表空间后进行查表导致的空间膨胀,大大提升了具有细粒度查表类课题的向量并行优化的可能性。
附图说明
附图1为本发明基于数据压缩存储的细粒度并行查表方法的流程图。
附图2为本发明的基于数据压缩存储的细粒度并行查表法与现有的直接查表的对比表格。
具体实施方式
实施例:如图1所示,一种基于数据压缩存储的细粒度并行查表方法,包括以下步骤,
S1:原始数据压缩,将原细粒度的表按照其原始元素粒度压缩存储为int类型的表X;
S2:根据原表元素粒度生成不同的掩码表Y;
S3:根据原表元素粒度对原查表偏移进行处理,得到偏移量为A和B;
S4:按S3中生成的查表偏移A按int类型并行查S1中生成的表X,得到查表结果X1
S5:按S3中生成的查表偏移B按int类型并行查S1中生成的表Y,得到查表结果Y1
S6:对S4和S5中的查表结果X1和Y1进行逻辑运算及移位操作得到最终查表结果。
所述原细粒度表的元素粒度为半字粒度或byte粒度或bit粒度。
所述细粒度查表对于半字粒度或byte粒度的查表结果处理是通过两次查表结果X1和Y1进行简单逻辑运算及移位得出的。
所述细粒度查表对于bit粒度的查表结果处理是将两次查表结果X1和Y1进行逻辑运算后判断结果为0或1,不需做移位运算。
实施例进一步解释如下:
基于数据压缩存储的细粒度并行查表方法的具体流程如下:第一步原始数据处理:
S1:原始数据压缩,将原本细粒度的表Xo按照其元素粒度压缩存储为int类型的表X。如以byte类型的查表操作为例,设原表为
char Xo[8]={0xaa,0xbb,0xcc,0xdd,0x11,0x22,0x33,0x44};
压缩后的表为int X[2]={0xddccbbaa,0x44332211};
虽然压缩后的表数据所占空间没有变化,但是压缩后的表项为int类型,可以进行int类型的并行查表。
S2:根据S1中的原元素粒度生成不同的掩码表,该掩码表很小。该原细粒度表的元素粒度可以为byte粒度或bit粒度。如以byte类型查表为例,该掩码表为:Y={0xff000000,0xff0000;0xff00;0xff}。
S3:根据S1中的原元素粒度对原查表偏移P进行处理。如以byte类型的查表操作为例,生成的偏移A和B为:A=P>>2,B=P&3。
第二步并行查表:
S4:根据S3中的查表偏移A并行查找S1中生成的int类型表X,得到查表结果X1
S5:根据S3中的查表偏移B并行查找S2中生成的int类型掩码表Y,得到查表结果Y1
第三步查表结果处理:
此处根据S1中的原始表元素粒度的不同,其查表结果处理略有不同,以byte类型查表与bit类型查表为例作为对比。
对于byte类型查表,对两次查表结果进行简单逻辑运算及移位即可得到最终的查表结果。其运算为:
C=A&B,
Res=((C)|(C>>8)| (C>>16)| (C>>24))&0xff;
对于bit类型查表,因为查表结果仅为0或者1,因此只要将两次查表结果做逻辑运算后判断结果为0或1即可,不需做移位运算。运算为:
C=A&B,
Res=IsZero(C);
其中IsZero是用来判断C的各分量是否为0,只需2条指令即可实现。
通过以上过程,通过两次int类型查表及一些简单的逻辑运算就可以在仅仅增加了很小的掩码表(byte类型为0.25kb,bit类型为2kb)的基础上,实现细粒度查表,这大大节省了查表空间。
如图2给出了基于数据压缩存储的并行查表方法与直接查表的对比,可见以表空间为2kb的byte类型查表为例,将4个byte类型的表项压缩拼接成为一个int类型的表项,这样将所有表元素都转为int类型的基础上,并不增加原始表所占空间,而直接将byte类型转换为int类型则需要将原表空间扩大4倍;而后进行int类型并行查表,表空间需要复制16份,所以直接int类型查表的表空间变为128kb,而压缩查表的表空间则仅仅为32kb左右,这样压缩查表仅仅增加了10条左右的指令,就节省了接近4倍的SPM空间。
采用一种基于数据压缩存储的细粒度并行查表方法时,通过对用户原始byte类型或bit类型表元素合并压缩存储,以时间换空间,在增加很少的额外空间以及少量运算指令的的情况下,实现细粒度的并行查表功能。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (4)

1.一种基于数据压缩存储的细粒度并行查表方法,其特征在于:包括以下步骤,
S1:原始数据压缩,将原细粒度的表按照其原始元素粒度压缩存储为int类型的表X;
S2:根据S1中的原表元素粒度生成不同的掩码表Y;
S3:根据S1中的原表元素粒度对原查表偏移进行处理,得到偏移量为A和B;
S4:按S3中生成的查表偏移A按int类型并行查S1中生成的表X,得到查表结果X1
S5:按S3中生成的查表偏移B按int类型并行查S2中生成的表Y,得到查表结果Y1
S6:根据S1中的原表元素粒度对S4和S5中的查表结果X1和Y1进行逻辑运算及移位操作得到最终查表结果。
2.根据权利要求1所述的基于数据压缩存储的细粒度并行查表方法,其特征在于:所述原细粒度表的元素粒度为字以内的元素粒度,包括半字粒度、byte粒度和bit粒度。
3.根据权利要求2所述的基于数据压缩存储的细粒度并行查表方法,其特征在于:所述细粒度查表对于半字粒度或byte粒度的查表结果处理是通过两次查表结果X1和Y1进行简单逻辑运算及移位得出的。
4.根据权利要求2所述的基于数据压缩存储的细粒度并行查表方法,其特征在于:所述细粒度查表对于bit粒度的查表结果处理是将两次查表结果X1和Y1进行逻辑运算后判断结果为0或1,不需做移位运算。
CN201910903873.6A 2019-09-24 2019-09-24 基于数据压缩存储的细粒度并行查表方法 Active CN112636765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910903873.6A CN112636765B (zh) 2019-09-24 2019-09-24 基于数据压缩存储的细粒度并行查表方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910903873.6A CN112636765B (zh) 2019-09-24 2019-09-24 基于数据压缩存储的细粒度并行查表方法

Publications (2)

Publication Number Publication Date
CN112636765A CN112636765A (zh) 2021-04-09
CN112636765B true CN112636765B (zh) 2022-07-12

Family

ID=75282924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910903873.6A Active CN112636765B (zh) 2019-09-24 2019-09-24 基于数据压缩存储的细粒度并行查表方法

Country Status (1)

Country Link
CN (1) CN112636765B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1658513A (zh) * 2005-03-10 2005-08-24 复旦大学 通过查表实现的算术编解码方法
US10270464B1 (en) * 2018-03-30 2019-04-23 Intel Corporation Method and apparatus for high performance compression and decompression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1658513A (zh) * 2005-03-10 2005-08-24 复旦大学 通过查表实现的算术编解码方法
US10270464B1 (en) * 2018-03-30 2019-04-23 Intel Corporation Method and apparatus for high performance compression and decompression

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Scalable and queryable compressed storage structure for raster data》;Susana Ladra 等;《Information Systems》;20171018;全文 *
《基于Huffman编码的XML文件压缩存储算法研究与实现》;周伟;《软件导刊》;20140731;第13卷(第7期);全文 *

Also Published As

Publication number Publication date
CN112636765A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
Yamabe A generalization of a theorem of Gleason
Loetamonphong et al. An efficient solution procedure for fuzzy relation equations with max-product composition
CN113705135B (zh) 基于fpga进位链的电路结构优化方法及系统
CN101630323B (zh) 确定自动机的空间压缩方法
CN105824974B (zh) 数据分析处理的方法和系统
CN110943744B (zh) 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置
CN112636765B (zh) 基于数据压缩存储的细粒度并行查表方法
Pang et al. Positive Davio-based synthesis algorithm for reversible logic
CN114610267A (zh) 一种基于指数函数和softmax函数的优化方法、硬件系统及芯片
CN114385139B (zh) 一种flink框架运行ETL流程的消息序列化以及比较方法与装置
Sun et al. Applying prefixed-itemset and compression matrix to optimize the MapReduce-based Apriori algorithm on Hadoop
CN115526131A (zh) 多级编码近似计算Tanh函数的方法及装置
WO2021185287A1 (zh) 一种解压装置、加速器、和用于解压装置的方法
CN110941938B (zh) 基于与非/或非-与异或非图的电路面积和功耗优化方法
CN114449061A (zh) 一种可配置式的协议解析方法、装置、设备及存储介质
CN114330669A (zh) 一种面向向量处理器的半精度向量化conv1×1卷积方法及系统
Jelodari et al. An O (1) time complexity sorting network for small number of inputs with hardware implementation
CN113157247A (zh) 一种可重构整型-浮点型乘法器
CN106027032A (zh) 一种单位延时模型下rm逻辑电路延时优化方法
CN114095036B (zh) 一种动态哈夫曼编码的码长生成装置
CN105930521A (zh) 一种数据库管理装置和方法
JPH07210533A (ja) ニューラルネットワーク回路及びこれを用いた演算方法
CN113726342B (zh) 面向大规模图迭代计算的分段差值压缩与惰性解压方法
CN114239818B (zh) 基于tcam和lut的存内计算架构神经网络加速器
KR102447445B1 (ko) 행렬 연산의 효율적 병렬처리를 위한 연산 장치 및 이를 포함하는 메모리 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant