From eb2103e73c9005ce7cc4a7268412ddddec8adb65 Mon Sep 17 00:00:00 2001 From: Gergely Szilvasy Date: Wed, 7 Jun 2023 07:25:17 -0700 Subject: [PATCH 1/4] raft enabled cmake build --- .circleci/config.yml | 117 +++---------------------------------------- 1 file changed, 8 insertions(+), 109 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c7d8d03230..5934991769 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -150,6 +150,9 @@ jobs: gpu: type: string default: "OFF" + raft: + type: string + default: "OFF" executor: << parameters.exec >> environment: OMP_NUM_THREADS: 10 @@ -187,6 +190,7 @@ jobs: -DBUILD_TESTING=ON \ -DBUILD_SHARED_LIBS=OFF \ -DFAISS_ENABLE_GPU=<< parameters.gpu >> \ + -DFAISS_ENABLE_RAFT=<< parameters.raft >> \ -DFAISS_OPT_LEVEL=<< parameters.opt_level >> \ -DFAISS_ENABLE_C_API=ON \ -DPYTHON_EXECUTABLE=$(which python) \ @@ -244,8 +248,6 @@ workflows: version: 2 build: jobs: - - format: - name: Format - build_cmake: name: Linux x86_64 (cmake) exec: linux-x86_64-cpu @@ -257,111 +259,8 @@ workflows: name: Linux x86_64 GPU (cmake) exec: linux-x86_64-gpu gpu: "ON" - requires: - - Linux x86_64 (cmake) - - build_conda: - name: Linux x86_64 (conda) - exec: linux-x86_64-cpu - - build_conda: - name: OSX x86_64 (conda) - exec: macosx-x86_64-cpu - - build_conda: - name: Windows x86_64 (conda) - exec: windows-x86_64-cpu - - build_conda: - name: Linux arm64 (conda) - exec: linux-arm64-cpu - - build_conda: - name: Linux x86_64 packages - exec: linux-x86_64-cpu - label: main - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ - - build_conda: - name: Linux x86_64 GPU packages (CUDA 11.4) - exec: linux-x86_64-gpu - label: main - cuda: "11.4" - cuda_archs: "60;61;70;72;75;80;86" - compiler_version: "11.2" - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ - - build_conda: - name: Windows x86_64 packages - exec: windows-x86_64-cpu - label: main - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ - - build_conda: - name: OSX x86_64 packages - exec: macosx-x86_64-cpu - label: main - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ - - build_conda: - name: OSX arm64 packages - exec: macosx-arm64-cpu - label: main - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ - - build_conda: - name: Linux arm64 packages - exec: linux-arm64-cpu - label: main - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ - - nightly: - triggers: - - schedule: - cron: "0 0 * * *" - filters: - branches: - only: - - main - jobs: - - build_conda: - name: Linux x86_64 nightlies - exec: linux-x86_64-cpu - label: nightly - - build_conda: - name: Linux x86_64 GPU nightlies (CUDA 11.4) + - build_cmake: + name: Linux x86_64 GPU w/ RAFT (cmake) exec: linux-x86_64-gpu - cuda: "11.4" - cuda_archs: "60;61;70;72;75;80;86" - compiler_version: "11.2" - label: nightly - - build_conda: - name: Windows x86_64 nightlies - exec: windows-x86_64-cpu - label: nightly - - build_conda: - name: OSX x86_64 nightlies - exec: macosx-x86_64-cpu - label: nightly - - build_conda: - name: OSX arm64 nightlies - exec: macosx-arm64-cpu - label: nightly - - build_conda: - name: Linux arm64 nightlies - exec: linux-arm64-cpu - label: nightly + gpu: "ON" + raft: "ON" From c1c3b719c19ee19cd45f26044159684275040c77 Mon Sep 17 00:00:00 2001 From: Gergely Szilvasy Date: Thu, 8 Jun 2023 06:20:04 -0700 Subject: [PATCH 2/4] add raft lib references --- CMakeLists.txt | 2 ++ c_api/gpu/CMakeLists.txt | 2 +- faiss/python/CMakeLists.txt | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 17c8d7ee3d..6223db3416 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,8 @@ include(rapids-export) include(rapids-find) rapids_cuda_init_architectures(faiss) +rapids_cuda_init_architectures(pyfaiss) +rapids_cuda_init_architectures(faiss_c_library) endif() project(faiss diff --git a/c_api/gpu/CMakeLists.txt b/c_api/gpu/CMakeLists.txt index 397462c775..4ec926439d 100644 --- a/c_api/gpu/CMakeLists.txt +++ b/c_api/gpu/CMakeLists.txt @@ -16,7 +16,7 @@ file(GLOB FAISS_C_API_GPU_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h") faiss_install_headers("${FAISS_C_API_GPU_HEADERS}" c_api/gpu) find_package(CUDAToolkit REQUIRED) -target_link_libraries(faiss_c PUBLIC CUDA::cudart CUDA::cublas) +target_link_libraries(faiss_c PUBLIC CUDA::cudart CUDA::cublas $<$:raft::raft> $<$:nvidia::cutlass::cutlass>) add_executable(example_gpu_c EXCLUDE_FROM_ALL example_gpu_c.c) target_link_libraries(example_gpu_c PRIVATE faiss_c) diff --git a/faiss/python/CMakeLists.txt b/faiss/python/CMakeLists.txt index 0e1f4c2f0d..357fef6b51 100644 --- a/faiss/python/CMakeLists.txt +++ b/faiss/python/CMakeLists.txt @@ -94,8 +94,8 @@ endif() if(FAISS_ENABLE_GPU) find_package(CUDAToolkit REQUIRED) - target_link_libraries(swigfaiss PRIVATE CUDA::cudart) - target_link_libraries(swigfaiss_avx2 PRIVATE CUDA::cudart) + target_link_libraries(swigfaiss PRIVATE CUDA::cudart $<$:raft::raft> $<$:nvidia::cutlass::cutlass>) + target_link_libraries(swigfaiss_avx2 PRIVATE CUDA::cudart $<$:raft::raft> $<$:nvidia::cutlass::cutlass>) endif() find_package(OpenMP REQUIRED) From a64c618799e0bcc4c9a64d30839da9af6fa3dfcc Mon Sep 17 00:00:00 2001 From: Gergely Szilvasy Date: Thu, 8 Jun 2023 08:31:35 -0700 Subject: [PATCH 3/4] reset config.yml --- .circleci/config.yml | 112 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5934991769..3fe817ddfe 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -248,6 +248,8 @@ workflows: version: 2 build: jobs: + - format: + name: Format - build_cmake: name: Linux x86_64 (cmake) exec: linux-x86_64-cpu @@ -259,8 +261,118 @@ workflows: name: Linux x86_64 GPU (cmake) exec: linux-x86_64-gpu gpu: "ON" + requires: + - Linux x86_64 (cmake) - build_cmake: name: Linux x86_64 GPU w/ RAFT (cmake) exec: linux-x86_64-gpu gpu: "ON" raft: "ON" + requires: + - Linux x86_64 (cmake) + - build_conda: + name: Linux x86_64 (conda) + exec: linux-x86_64-cpu + - build_conda: + name: OSX x86_64 (conda) + exec: macosx-x86_64-cpu + - build_conda: + name: Windows x86_64 (conda) + exec: windows-x86_64-cpu + - build_conda: + name: Linux arm64 (conda) + exec: linux-arm64-cpu + - build_conda: + name: Linux x86_64 packages + exec: linux-x86_64-cpu + label: main + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build_conda: + name: Linux x86_64 GPU packages (CUDA 11.4) + exec: linux-x86_64-gpu + label: main + cuda: "11.4" + cuda_archs: "60;61;70;72;75;80;86" + compiler_version: "11.2" + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build_conda: + name: Windows x86_64 packages + exec: windows-x86_64-cpu + label: main + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build_conda: + name: OSX x86_64 packages + exec: macosx-x86_64-cpu + label: main + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build_conda: + name: OSX arm64 packages + exec: macosx-arm64-cpu + label: main + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - build_conda: + name: Linux arm64 packages + exec: linux-arm64-cpu + label: main + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + + nightly: + triggers: + - schedule: + cron: "0 0 * * *" + filters: + branches: + only: + - main + jobs: + - build_conda: + name: Linux x86_64 nightlies + exec: linux-x86_64-cpu + label: nightly + - build_conda: + name: Linux x86_64 GPU nightlies (CUDA 11.4) + exec: linux-x86_64-gpu + cuda: "11.4" + cuda_archs: "60;61;70;72;75;80;86" + compiler_version: "11.2" + label: nightly + - build_conda: + name: Windows x86_64 nightlies + exec: windows-x86_64-cpu + label: nightly + - build_conda: + name: OSX x86_64 nightlies + exec: macosx-x86_64-cpu + label: nightly + - build_conda: + name: OSX arm64 nightlies + exec: macosx-arm64-cpu + label: nightly + - build_conda: + name: Linux arm64 nightlies + exec: linux-arm64-cpu + label: nightly \ No newline at end of file From 1ff9b4267258f1e29d1284b50a8ae45f984b50e5 Mon Sep 17 00:00:00 2001 From: Gergely Szilvasy Date: Thu, 8 Jun 2023 08:33:16 -0700 Subject: [PATCH 4/4] line break --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3fe817ddfe..f5eb52cdaf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -375,4 +375,4 @@ workflows: - build_conda: name: Linux arm64 nightlies exec: linux-arm64-cpu - label: nightly \ No newline at end of file + label: nightly