From b1d628b2ceaa7d339e2d35e224f049ea5a52b9ef Mon Sep 17 00:00:00 2001 From: Tamas Bela Feher Date: Thu, 30 Nov 2023 11:27:52 +0100 Subject: [PATCH 1/3] Add AIR-Top-k reference --- cpp/include/raft/matrix/detail/select_radix.cuh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpp/include/raft/matrix/detail/select_radix.cuh b/cpp/include/raft/matrix/detail/select_radix.cuh index fa12005df2..2fbb7371b0 100644 --- a/cpp/include/raft/matrix/detail/select_radix.cuh +++ b/cpp/include/raft/matrix/detail/select_radix.cuh @@ -1151,6 +1151,12 @@ void radix_topk_one_block(const T* in, * * Note, the output is NOT sorted within the groups of `k` selected elements. * + * Reference: + * Jingrong Zhang, Akira Naruse, Xipeng Li, and Yong Wang. 2023. Parallel Top-K Algorithms on GPU: + * A Comprehensive Study and New Methods. In The International Conference for High Performance + * Computing, Networking, Storage and Analysis (SC ’23), November 12–17, 2023, Denver, CO, USA. + * ACM, New York, NY, USA. https://doi.org/10.1145/3581784.3607062 + * * @tparam T * the type of the keys (what is being compared). * @tparam IdxT From 639f9068da570879376cce93296fbe6e272300ae Mon Sep 17 00:00:00 2001 From: "Corey J. Nolet" Date: Thu, 11 Jan 2024 20:47:08 -0500 Subject: [PATCH 2/3] Updates --- README.md | 14 ++++++++++++++ cpp/include/raft/matrix/detail/select_radix.cuh | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ab1168bdb..db044daada 100755 --- a/README.md +++ b/README.md @@ -354,3 +354,17 @@ If citing CAGRA, please consider the following bibtex: primaryClass={cs.DS} } ``` + +If citing the k-selection routines, please consider the following bibtex: + +```bibtex +@proceedings{10.1145/3581784, + title = {SC '23: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis}, + year = {2023}, + isbn = {9798400701092}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + abstract = {Started in 1988, the SC Conference has become the annual nexus for researchers and practitioners from academia, industry and government to share information and foster collaborations to advance the state of the art in High Performance Computing (HPC), Networking, Storage, and Analysis.}, + location = {, Denver, CO, USA, } +} +``` \ No newline at end of file diff --git a/cpp/include/raft/matrix/detail/select_radix.cuh b/cpp/include/raft/matrix/detail/select_radix.cuh index c213001f51..b6ed03b93d 100644 --- a/cpp/include/raft/matrix/detail/select_radix.cuh +++ b/cpp/include/raft/matrix/detail/select_radix.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023, NVIDIA CORPORATION. + * Copyright (c) 2022-2024, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From e9772069d6c3351105d39bf33966ddb89ac6f3d3 Mon Sep 17 00:00:00 2001 From: "Corey J. Nolet" Date: Thu, 11 Jan 2024 20:54:05 -0500 Subject: [PATCH 3/3] Adding nn-descent references --- README.md | 21 +++++++++++++++++++ .../raft/neighbors/nn_descent_types.hpp | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/README.md b/README.md index db044daada..26ddc30ed4 100755 --- a/README.md +++ b/README.md @@ -367,4 +367,25 @@ If citing the k-selection routines, please consider the following bibtex: abstract = {Started in 1988, the SC Conference has become the annual nexus for researchers and practitioners from academia, industry and government to share information and foster collaborations to advance the state of the art in High Performance Computing (HPC), Networking, Storage, and Analysis.}, location = {, Denver, CO, USA, } } +``` + +If citing the nearest neighbors descent API, please consider the following bibtex: +```bibtex +@inproceedings{10.1145/3459637.3482344, + author = {Wang, Hui and Zhao, Wan-Lei and Zeng, Xiangxiang and Yang, Jianye}, + title = {Fast K-NN Graph Construction by GPU Based NN-Descent}, + year = {2021}, + isbn = {9781450384469}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/3459637.3482344}, + doi = {10.1145/3459637.3482344}, + abstract = {NN-Descent is a classic k-NN graph construction approach. It is still widely employed in machine learning, computer vision, and information retrieval tasks due to its efficiency and genericness. However, the current design only works well on CPU. In this paper, NN-Descent has been redesigned to adapt to the GPU architecture. A new graph update strategy called selective update is proposed. It reduces the data exchange between GPU cores and GPU global memory significantly, which is the processing bottleneck under GPU computation architecture. This redesign leads to full exploitation of the parallelism of the GPU hardware. In the meantime, the genericness, as well as the simplicity of NN-Descent, are well-preserved. Moreover, a procedure that allows to k-NN graph to be merged efficiently on GPU is proposed. It makes the construction of high-quality k-NN graphs for out-of-GPU-memory datasets tractable. Our approach is 100-250\texttimes{} faster than the single-thread NN-Descent and is 2.5-5\texttimes{} faster than the existing GPU-based approaches as we tested on million as well as billion scale datasets.}, + booktitle = {Proceedings of the 30th ACM International Conference on Information \& Knowledge Management}, + pages = {1929–1938}, + numpages = {10}, + keywords = {high-dimensional, nn-descent, gpu, k-nearest neighbor graph}, + location = {Virtual Event, Queensland, Australia}, + series = {CIKM '21} +} ``` \ No newline at end of file diff --git a/cpp/include/raft/neighbors/nn_descent_types.hpp b/cpp/include/raft/neighbors/nn_descent_types.hpp index 7d4f3d615b..fd1df2965e 100644 --- a/cpp/include/raft/neighbors/nn_descent_types.hpp +++ b/cpp/include/raft/neighbors/nn_descent_types.hpp @@ -58,6 +58,12 @@ struct index_params : ann::index_params { * The index contains an all-neighbors graph of the input dataset * stored in host memory of dimensions (n_rows, n_cols) * + * Reference: + * Hui Wang, Wan-Lei Zhao, Xiangxiang Zeng, and Jianye Yang. 2021. + * Fast k-NN Graph Construction by GPU based NN-Descent. In Proceedings of the 30th ACM + * International Conference on Information & Knowledge Management (CIKM '21). Association for + * Computing Machinery, New York, NY, USA, 1929–1938. https://doi.org/10.1145/3459637.3482344 + * * @tparam IdxT dtype to be used for constructing knn-graph */ template