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

1054                                                       软件学报  2026  年第  37  卷第  3  期


                 加, 固定的迭代次数不足以使得各数据点获得较高质量的邻居, 进而使得                          F1  分数略有下降. 为此, 本文选择
                 k = 2×minPts  作为聚类算法的输入参数.
                  4.6.2    K-means 树分区
                    为了验证本文第       3.2  节提出的层间并行策略的有效性, 本节首先在两个代表性数据集上对基于层间并行的
                 K-means 树分区和不采用层间并行策略的          K-means 树分区进行对比. 在     DEEP1M  数据集上, 分区时间分别为       0.64 s
                 和  0.98 s, 层间并行策略将分区效率提升了        47%; 在  SIFT1M  数据集上, 分区时间分别为      0.79 s 和  1.52 s, 层间并行
                 策略将分区效率提升了         92%. 由此可见, 层间并行策略进一步提升了分区效率, 这是因为该策略通过合理分配
                 GPU  线程块, 并行计算各层所有数据点, 提高了           GPU  资源利用率, 进而提升了分区效率.
                    此外, 为了验证     K-means 树分区的有效性, 本节将       K-means 树分区与随机分区和       KD  树分区进行对比, 采用
                 以上  3  种方式得到的分区进行聚类. 在达到相近精度的前提下, 随机分区、KD                    树分区和    K-means 树分区所得分
                 区结果在   DEEP1M  数据集上的并行聚类时间分别为           0.50 s、0.49 s 和  0.34 s, 在  SIFT1M  数据集上为  0.21 s、0.21 s
                 和  0.17 s, 可见采用  K-means 树分区后的并行聚类相较于随机分区和         KD  树分区后聚类的效率分别高        35.3%  和  33.8%.
                 这是由于   K-means 树分区不受到维度灾难的影响, 将距离相近的节点分至同一区域, 减小了合并聚类簇的代价, 进
                 而提高了并行聚类的效率.
                  4.6.3    并行聚类
                    本节在不同参数设置下, 在两个代表性数据集上对第                  3.3  节提出的  KG-DBSCAN  的并行聚类模块进行评估.
                 由于  cuML-DBSCAN  的近邻计算与聚类是耦合的, 无法单独测量聚类时间, 而                 h-DBSCAN  的聚类是串行计算, 因
                 此只与   KNN-DBSCAN  和  Cal-DBSCAN  的聚类模块进行对比, 结果如表         3  所示. 结果表明, KG-DBSCAN   的聚类
                 模块效率显著优于基线算法的聚类模块, 平均超过                KNN-DBSCAN   算法  8.1  倍、Cal-DBSCAN  算法  10.1  倍. 这是
                 由于本文在第     3.3  节中提出的基于广度优先搜索的分区局部并行               DBSCAN  算法对   GPU  并行遍历数据点进行了
                 优化, 利用共享内存的高速访存速度以及多线程并行访问的特性加速局部                         DBSCAN  的效率. 此外, 所提出的基于
                 核心近邻图的簇合并利用         GPU  的并行能力高效构建了核心近邻图, 基于并查集进行了高效的簇合并. 以上技术共
                 同促进了聚类的计算. Cal-DBSCAN       算法在   ε 固定、  minPts 变化时聚类时间变化幅度较小, 这是由于该算法聚类
                 策略比较简单, 仅涉及广度优先搜索扩展聚类簇, 当               minPts 变化时其计算代价所受影响较小.


                                                  表 3 并行聚类时间对比 (s)

                             数据集       参数 [  ε, minPts]  KNN-DBSCAN   Cal-DBSCAN    KG-DBSCAN
                                          [0.5, 50]        1.39          0.48          0.10
                                          [0.5, 70]        1.73          0.47          0.15
                            DEEP1M
                                          [0.7, 50]        1.99          4.77          0.31
                                          [0.7, 70]        2.00          4.74          0.34
                                          [200, 50]        1.63          1.85          0.17
                                          [200, 70]        1.75          1.86          0.24
                             SIFT1M
                                          [220, 50]        1.76          4.01          0.29
                                          [220, 70]        1.99          4.04          0.36


                  5   总结与展望

                    大规模高维向量聚类旨在揭示数据分布的内在规律, 为异常检测等数据分析任务提供基础支撑. 针对现有的
                 基于密度的聚类方法在高维场景下效率低下的问题, 本文提出了一种                       GPU  加速的高维向量聚类算法. 首先, 本文
                 采用  K  近邻图作为   DBSCAN  算法的索引, 设计了一种       GPU  加速的  K  近邻图索引构建算法, 利用偏好采样技术进
                 一步提高   K  近邻图的构建精度并提高构建速度, 显著减小了索引构建开销. 其次, 本文提出                       Tensor 核心增强的层
                 间并行   K-means 树分区算法, 并设计了层间并行策略高效利用              GPU  资源. 此外, 本文提出基于广度优先搜索和核
                 心近邻图的并行聚类算法, 设计了并行广度优先策略扩展局部簇, 并构造核心近邻图, 基于核心近邻图实现了有效
   86   87   88   89   90   91   92   93   94   95   96