[发明专利]一种基于CPU-GPU异构体系结构的并行相似性连接方法有效
申请号: | 201911057101.1 | 申请日: | 2019-11-01 |
公开(公告)号: | CN111046092B | 公开(公告)日: | 2022-06-17 |
发明(设计)人: | 聂铁铮;徐坤浩;申德荣;于戈;寇月 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/22;G06F15/163 |
代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 李在川 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cpu gpu 体系结构 并行 相似性 连接 方法 | ||
1.一种基于CPU-GPU异构体系结构的并行相似性连接方法,其特征在于包括以下步骤:
步骤1:使用GPU对初始数据集S并行构建SoA新型倒排索引,过程如下:
步骤1.1:给定数据集S,将其中每行数据Si切分成若干个数据集合token;
步骤1.2:为每个不同的token分配全局唯一数字类型tid;
步骤1.3:在GPU显存中使用全局映射表记录token与分配的tid之间的映射关系,并借助全局映射操作,将体积较大的字符串类型的token转换为数字类型的tid,使得原数据的体积大幅减少,从而大幅减少后续倒排索引中每个关键词的占用空间;
步骤1.4:全局映射关系构建完成后传输至GPU的global memory;
步骤1.5:使用GPU构建SoA新型倒排索引;
步骤1.6:将构建完成的索引回传给CPU内存,对tid相同的匹配对进行合并,得到通用性更好的传统倒排索引;
步骤2:根据倒排索引和前缀过滤生成候选集;
步骤3:基于GPU进行双重长度过滤,得到过滤集,过程如下:
步骤3.1:使用GPU统计数据集信息;
合理设置GPU的grid、block和thread数目,使每个线程完成以下任务:
(a)读取所述全局映射关系表中的部分数据,解析数据长度和token个数;
(b)根据sid值使用原子函数将统计数据分别写入长度表与token表的对应位置,所述长度表与token表的结构同SoA;
步骤3.2:基于步骤3.1中构建的长度表、token表和步骤2所述的候选集,使用GPU进行双重长度过滤;
通过相似度计算确定匹配长度范围,使用GPU多线程同时对候选集进行长度和token个数双重检验,将不满足长度和个数要求的候选对过滤;
步骤4:通过对步骤3构建的过滤集中所有候选对计算相似度,进行相似度验证;
步骤5:将过滤集中相似度大于等于给定阈值τ的候选对进行连接。
2.根据权利要求1所述的一种基于CPU-GPU异构体系结构的并行相似性连接方法,其特征在于所述SoA新型倒排索引含有两个联系数组分别记录数据和token编号。
3.根据权利要求1所述的一种基于CPU-GPU异构体系结构的并行相似性连接方法,其特征在于所述步骤1.5的过程如下:
步骤1.5.1:GPU中每个block负责一部分原始数据的解析工作,block中的每个thread每次读取一个单词,根据所述的全局映射表解析数据,生成tid,sid键值对;
步骤1.5.2:使用原子类型函数将sid和tid分别写入SoA倒排索引的数据数组中。
4.根据权利要求1所述的一种基于CPU-GPU异构体系结构的并行相似性连接方法,其特征在于所述步骤2的过程如下:
步骤2.1:对数据集S的每行数据的前P个token检索倒排索引,记录所有这些token对应的倒排索引中出现的sid;
步骤2.2:对数据集S和所有查找得到的sid构建候选对,添加至候选集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911057101.1/1.html,转载请声明来源钻瓜专利网。