Page 76 - 《软件学报》2026年第3期
P. 76

李忠根 等: GPU  加速的高维向量聚类算法                                                         1039


                 间的距离计算; 其次, 为了高效地划分大规模数据, 设计了层间并行计算模式, 利用                    GPU  中的  Tensor 核心加速  K-means
                 树的计算, 使得    GPU  能够对每一层的树节点进行并行计算, 避免了数据点规模的指数衰减对并行计算效率产生的
                 影响; 最后, 基于   K  近邻图索引进行并行广度优先遍历, 加速分区局部                DBSCAN  计算, 利用不同分区的核心点之
                 间的密度直达关系构建核心近邻图, 基于核心近邻图合并局部计算结果, 减少了遍历所有数据点带来的计算开销.
                    本文的主要贡献总结为以下          4  点.
                    (1) 设计了一种    GPU  加速的  K  近邻图构建算法. 该算法利用       GPU  和偏好采样策略协同加速向量间距离计算
                 与近邻更新, 显著提高了计算效率.
                    (2) 设计了一种   Tensor 核心增强的层间并行       K-means 树分区算法. 层间并行计算模式避免了数据点规模的指
                 数衰减对并行计算产生的影响, 保证在生成              K-means 树的过程中对    GPU  资源的充分利用.
                    (3) 提出了基于广度优先遍历策略和核心近邻图的高效并行聚类方法. 并行广度优先遍历显著加速了分区局
                 部  DBSCAN  计算. 同时, 核心近邻图减少了遍历所有数据点带来的计算开销, 极大地提升了聚类效率.
                    (4) 在  4  个真实数据集上开展了详尽的实验评估, 与现有方法进行了对比. 结果表明, 相比于现有的基于树索
                 引和图索引及     GPU  加速的方法, 本文提出的方法在保证精度的同时, 显著提升了高维向量聚类的计算效率.
                    本文第   1  节介绍基于近邻图和      GPU  加速的  DBSCAN  的相关工作与研究现状. 第         2  节介绍  DBSCAN  算法及
                 基于  K  近邻图的  DBSCAN  算法的相关基础知识. 第        3  节介绍  GPU  加速的高维向量聚类算法. 第       4  节进行实验分
                 析, 验证并分析算法的性能. 第        5  节总结全文.

                  1   相关工作

                    本节总结与本文相关的研究工作, 第            1.1  节介绍基于近邻图的     DBSCAN  的相关工作, 第    1.2  节总结  GPU  加速
                 的  DBSCAN  的相关工作.
                  1.1   基于近邻图的  DBSCAN  算法
                    Gan 等人  [32] 指出, 当数据维度大于   3 时, DBSCAN  的计算开销将显著增加, 这使得高维场景下的近似              DBSCAN
                 算法设计成为必然选择. 为了加速          DBSCAN  中开销最高的近邻查询, 现有研究使用多种数据结构优化近邻查询, 例
                 如局部敏感哈希 (locality sensitive hashing, LSH) [33,34] 、KD  树  [15,16] 、覆盖树  [35] 等. 然而在高维场景下, 基于哈希或
                 树等数据结构的方法将面临维度灾难, 且存在效率低下的问题. 为了进一步加速高维空间向量聚类计算, PARDICLE                             [36]
                 构建了   ε 近邻图, 并设计了一种密度估计方法, 在密集区域采样计算最近邻, 而在稀疏区域执行精确最近邻, 以降
                 低  DBSCAN  的计算量. NG-DBSCAN   [21] 提出了一种快速构建     ε 近邻图的方法, 即随机初始化图中节点的近邻, 每
                                                        ε, 并根据判断结果更新节点的邻居列表, 直至达到既定迭代次
                 次迭代时判断节点及其二阶邻居的距离是否小于
                 数. 为了进一步减小     ε 近邻图的构造代价, SNG-DBSCAN      [37] 提出一种采样方法, 基于该方法构造了         ε 近邻图. KNN-
                 DBSCAN [22] 指出, 上述基于  ε 近邻图的方法在高维场景下对         ε 的取值十分敏感,     ε 取值发生变动时即需重新构建近
                 邻图结构, 而这将产生极高的索引构建开销. 为此, h-DBSCAN              [19,20] 使用  HNSW  图  [38] 作为索引, 基于该索引进行高
                 效的近邻查询以加速       DBSCAN  算法. 为了避免额外的索引查询开销, KNN-DBSCAN            [22] 使用  K  近邻图作为索引结
                 构, 引入了新的核心点、可达等          DBSCAN  相关概念的定义方式, 重新定义了基于密度的聚类, 基于最小生成树计
                 算聚类. 然而, 这类方法在高维场景下仍面临索引构建低效的问题, 制约了聚类效率的提升.
                  1.2   GPU  加速的  DBSCAN  算法
                    CPU  架构受限于有限运算能力, 难以满足高效             DBSCAN  计算的需求. 由于    DBSCAN  的开销主要来源于近邻
                 点搜索, 其中涉及大量的距离计算, 这促使研究者转向利用                 GPU  的并行架构寻求加速. 现有的        GPU  加速  DBSCAN
                 的算法分为    3  类: 全局聚类计算、分区聚类计算和基于索引的聚类计算. 全局聚类计算利用                       GPU  强大的计算能力
                 遍历数据集为各数据点计算近邻点, 如            CUDA-DClust [39] 和  Cal-DBSCAN [40] 将每个数据点划分至不同的线程并行
                 计算近邻点; G-DBSCAN    [41] 则遍历所有数据点以构造密度连通图, 而后在该近邻图上开展并行广度优先搜索, 以
                 扩展簇的范围. 上述方法对所有数据点的遍历造成了大量的计算开销. 分区聚类计算首先将数据进行分区, 将近邻
   71   72   73   74   75   76   77   78   79   80   81