CuAPSS:用于全对相似性搜索的混合CUDA解决方案
1. 并行解决APSS问题的方法
解决APSS(All-Pairs Similarity Search,全对相似性搜索)问题的并行方法主要有MapReduce和多核解决方案。大多数并行方法基于MapReduce框架,利用其特性设计算法。
- 传统MapReduce方法 :一些MapReduce方法首先使用映射器计算向量对的部分相似性值,经过洗牌阶段后,相同对的部分相似性值被传输到归约器进行累加。然而,这些方法存在节点间通信成本高的问题,并且随着数据集大小的增加,扩展性较差。
- 基于分区的MapReduce方法 :为了解决上述问题,基于分区的MapReduce方法仅使用映射任务。它先将数据集划分为若干块,然后在每个块中并行执行串行APSS算法,还会使用一些过滤策略来修剪不相似的向量。
- 多核解决方案 :只有两项工作专注于多核解决方案,即pAPT和PL2AP。pAPT基于APT引入,使用索引共享技术,使线程能够独立执行搜索;PL2AP利用内存层次结构的特性,通过缓存平铺优化来提高性能。
2. 背景知识
在进行APSS之前,需要了解一些初步知识,包括基于余弦的APSS问题和倒排列表表示(即倒排索引)。
- 符号表示 :设$D = {d_1, d_2, \ldots, d_n}$是一组$n$个对象,每个$d_i$是$m$维特征空间中的实值、非负、稀疏向量,$d_i = {w_{i,1}, w_{i,2}, \ldots, w_{i,m}
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



