@@ -9,19 +9,14 @@ executors:
9
9
environment :
10
10
CONDA_ARCH : Linux-x86_64
11
11
machine :
12
- image : linux-cuda-11:2023.02.1
12
+ image : linux-cuda-12:default
13
13
resource_class : gpu.nvidia.medium
14
14
linux-arm64-cpu :
15
15
environment :
16
16
CONDA_ARCH : Linux-aarch64
17
17
machine :
18
- image : ubuntu-2004 :current
18
+ image : ubuntu-2204 :current
19
19
resource_class : arm.medium
20
- macosx-x86_64-cpu :
21
- environment :
22
- CONDA_ARCH : MacOSX-x86_64
23
- macos :
24
- xcode : 11.7.0 # max supported for conda build, https://circleci.com/docs/using-macos#supported-xcode-versions
25
20
macosx-arm64-cpu :
26
21
environment :
27
22
CONDA_ARCH : MacOSX-arm64
@@ -30,7 +25,7 @@ executors:
30
25
resource_class : macos.m1.large.gen1
31
26
windows-x86_64-cpu :
32
27
machine :
33
- image : windows-server-2019-vs2019:stable
28
+ image : windows-server-2019-vs2019:2023.04.1
34
29
shell : bash.exe
35
30
resource_class : windows.medium
36
31
66
61
cuda :
67
62
type : string
68
63
default : " "
64
+ raft :
65
+ type : string
66
+ default : " "
69
67
cuda_archs :
70
68
type : string
71
69
default : " "
93
91
- run :
94
92
name : Install conda build tools
95
93
command : |
94
+ # conda config --set solver libmamba
95
+ # conda config --set verbosity 3
96
96
conda update -y -q conda
97
97
conda install -y -q conda-build
98
98
- when :
@@ -105,14 +105,16 @@ jobs:
105
105
conda config --set anaconda_upload yes
106
106
- when :
107
107
condition :
108
- not : << parameters.label >>
108
+ and :
109
+ - not : << parameters.label >>
110
+ - not : << parameters.cuda >>
109
111
steps :
110
112
- run :
111
113
name : Conda build (CPU)
112
114
no_output_timeout : 30m
113
115
command : |
114
116
cd conda
115
- conda build faiss --python 3.10 -c pytorch -c pkgs/main -c conda-forge
117
+ conda build faiss --python 3.11 -c pytorch
116
118
- when :
117
119
condition :
118
120
and :
@@ -124,21 +126,63 @@ jobs:
124
126
no_output_timeout : 30m
125
127
command : |
126
128
cd conda
127
- conda build faiss --user pytorch --label <<parameters.label>> -c pytorch -c pkgs/main -c conda-forge
129
+ conda build faiss --user pytorch --label <<parameters.label>> -c pytorch
130
+ - when :
131
+ condition :
132
+ and :
133
+ - not : << parameters.label >>
134
+ - << parameters.cuda >>
135
+ - not : << parameters.raft >>
136
+ steps :
137
+ - run :
138
+ name : Conda build (GPU)
139
+ no_output_timeout : 60m
140
+ command : |
141
+ cd conda
142
+ conda build faiss-gpu --variants '{ "cudatoolkit": "<<parameters.cuda>>", "c_compiler_version": "<<parameters.compiler_version>>", "cxx_compiler_version": "<<parameters.compiler_version>>" }' \
143
+ -c pytorch -c nvidia/label/cuda-<<parameters.cuda>> -c nvidia
128
144
- when :
129
145
condition :
130
146
and :
131
147
- << parameters.label >>
132
148
- << parameters.cuda >>
149
+ - not : << parameters.raft >>
133
150
steps :
134
151
- run :
135
152
name : Conda build (GPU) w/ anaconda upload
136
153
no_output_timeout : 60m
137
154
command : |
138
- sudo update-alternatives --set cuda /usr/local/cuda-<<parameters.cuda>>
139
155
cd conda
140
156
conda build faiss-gpu --variants '{ "cudatoolkit": "<<parameters.cuda>>", "c_compiler_version": "<<parameters.compiler_version>>", "cxx_compiler_version": "<<parameters.compiler_version>>" }' \
141
- --user pytorch --label <<parameters.label>> -c pytorch -c nvidia -c pkgs/main -c conda-forge
157
+ --user pytorch --label <<parameters.label>> -c pytorch -c nvidia/label/cuda-<<parameters.cuda>> -c nvidia
158
+ - when :
159
+ condition :
160
+ and :
161
+ - not : << parameters.label >>
162
+ - << parameters.cuda >>
163
+ - << parameters.raft >>
164
+ steps :
165
+ - run :
166
+ name : Conda build (GPU w/ RAFT)
167
+ no_output_timeout : 60m
168
+ command : |
169
+ cd conda
170
+ conda build faiss-gpu-raft --variants '{ "cudatoolkit": "<<parameters.cuda>>", "c_compiler_version": "<<parameters.compiler_version>>", "cxx_compiler_version": "<<parameters.compiler_version>>" }' \
171
+ -c pytorch -c nvidia/label/cuda-<<parameters.cuda>> -c nvidia -c rapidsai -c conda-forge
172
+ - when :
173
+ condition :
174
+ and :
175
+ - << parameters.label >>
176
+ - << parameters.cuda >>
177
+ - << parameters.raft >>
178
+ steps :
179
+ - run :
180
+ name : Conda build (GPU w/ RAFT) w/ anaconda upload
181
+ no_output_timeout : 60m
182
+ command : |
183
+ cd conda
184
+ conda build faiss-gpu-raft --variants '{ "cudatoolkit": "<<parameters.cuda>>", "c_compiler_version": "<<parameters.compiler_version>>", "cxx_compiler_version": "<<parameters.compiler_version>>" }' \
185
+ --user pytorch --label <<parameters.label>> -c pytorch -c nvidia/label/cuda-<<parameters.cuda>> -c nvidia -c rapidsai -c conda-forge
142
186
143
187
build_cmake :
144
188
parameters :
@@ -150,6 +194,9 @@ jobs:
150
194
gpu :
151
195
type : string
152
196
default : " OFF"
197
+ raft :
198
+ type : string
199
+ default : " OFF"
153
200
executor : << parameters.exec >>
154
201
environment :
155
202
OMP_NUM_THREADS : 10
@@ -165,18 +212,37 @@ jobs:
165
212
bash miniconda.sh -b -p $HOME/miniconda
166
213
~/miniconda/bin/conda init
167
214
fi
168
- - when :
169
- condition :
170
- equal : [ "ON", << parameters.gpu >> ]
171
- steps :
172
- - run :
173
- name : Configure CUDA
174
- command : sudo update-alternatives --set cuda /usr/local/cuda-11.4
175
215
- run :
176
216
name : Set up environment
177
217
command : |
218
+ conda config --set solver libmamba
178
219
conda update -y -q conda
179
- conda install -y -q cmake=3.23.1 make swig mkl=2021 mkl-devel=2021 numpy scipy pytest gxx_linux-64 sysroot_linux-64=2.17 -c pkgs/main -c conda-forge
220
+ - when :
221
+ condition :
222
+ equal : [ "OFF", << parameters.raft >> ]
223
+ steps :
224
+ - run :
225
+ name : Install env using main channel
226
+ command : |
227
+ conda install -y -q python=3.11 cmake make swig=4.0.2 mkl=2023 mkl-devel=2023 numpy scipy pytest gxx_linux-64 sysroot_linux-64
228
+ - when :
229
+ condition :
230
+ equal : [ "ON", << parameters.raft >> ]
231
+ steps :
232
+ - run :
233
+ name : Install env using conda-forge channel
234
+ command : |
235
+ conda install -y -q python=3.11 cmake make swig=4.0.2 mkl=2023 mkl-devel=2023 numpy scipy pytest gxx_linux-64 sysroot_linux-64=2.28 libraft cuda-version=11.8 cuda-toolkit -c rapidsai-nightly -c "nvidia/label/cuda-11.8.0" -c conda-forge
236
+ - when :
237
+ condition :
238
+ and :
239
+ - equal : [ "ON", << parameters.gpu >> ]
240
+ - equal : [ "OFF", << parameters.raft >> ]
241
+ steps :
242
+ - run :
243
+ name : Install CUDA
244
+ command : |
245
+ conda install -y -q cuda-toolkit -c "nvidia/label/cuda-11.8.0"
180
246
- run :
181
247
name : Build all targets
182
248
no_output_timeout : 30m
@@ -185,8 +251,9 @@ jobs:
185
251
conda activate
186
252
cmake -B build \
187
253
-DBUILD_TESTING=ON \
188
- -DBUILD_SHARED_LIBS=OFF \
254
+ -DBUILD_SHARED_LIBS=ON \
189
255
-DFAISS_ENABLE_GPU=<< parameters.gpu >> \
256
+ -DFAISS_ENABLE_RAFT=<< parameters.raft >> \
190
257
-DFAISS_OPT_LEVEL=<< parameters.opt_level >> \
191
258
-DFAISS_ENABLE_C_API=ON \
192
259
-DPYTHON_EXECUTABLE=$(which python) \
@@ -222,7 +289,7 @@ jobs:
222
289
- run :
223
290
name : Python tests (CPU + GPU)
224
291
command : |
225
- conda install -y -q pytorch pytorch-cuda -c pytorch -c nvidia
292
+ conda install -y -q pytorch pytorch-cuda=11.8 -c pytorch -c nvidia/label/cuda-11.8.0
226
293
pytest --junitxml=test-results/pytest/results.xml tests/test_*.py
227
294
pytest --junitxml=test-results/pytest/results-torch.xml tests/torch_*.py
228
295
cp tests/common_faiss_tests.py faiss/gpu/test
@@ -253,26 +320,29 @@ workflows:
253
320
name : Linux x86_64 AVX2 (cmake)
254
321
exec : linux-x86_64-cpu
255
322
opt_level : " avx2"
323
+ - build_cmake :
324
+ name : Linux x86_64 AVX512 (cmake)
325
+ exec : linux-x86_64-cpu
326
+ opt_level : " avx512"
256
327
- build_cmake :
257
328
name : Linux x86_64 GPU (cmake)
258
329
exec : linux-x86_64-gpu
259
330
gpu : " ON"
260
331
requires :
261
- - Linux x86_64 (cmake)
332
+ - Linux x86_64 AVX2 (cmake)
333
+ - build_cmake :
334
+ name : Linux x86_64 GPU w/ RAFT (cmake)
335
+ exec : linux-x86_64-gpu
336
+ gpu : " ON"
337
+ raft : " ON"
338
+ requires :
339
+ - Linux x86_64 GPU (cmake)
262
340
- build_conda :
263
341
name : Linux x86_64 (conda)
264
342
exec : linux-x86_64-cpu
265
- - build_conda :
266
- name : OSX x86_64 (conda)
267
- exec : macosx-x86_64-cpu
268
343
- build_conda :
269
344
name : Windows x86_64 (conda)
270
345
exec : windows-x86_64-cpu
271
- - build_conda :
272
- name : OSX arm64 (conda)
273
- exec : macosx-arm64-cpu
274
- requires :
275
- - Linux arm64 (conda)
276
346
- build_conda :
277
347
name : Linux arm64 (conda)
278
348
exec : linux-arm64-cpu
@@ -286,29 +356,58 @@ workflows:
286
356
branches :
287
357
ignore : /.*/
288
358
- build_conda :
289
- name : Linux x86_64 GPU packages (CUDA 11.4)
359
+ name : Linux x86_64 GPU packages (CUDA 11.4.4 )
290
360
exec : linux-x86_64-gpu
291
361
label : main
292
- cuda : " 11.4"
293
- cuda_archs : " 60;61;70 ;72;75;80;86"
362
+ cuda : " 11.4.4 "
363
+ cuda_archs : " 60-real ;61-real;62-real;70-real ;72-real ;75-real ;80;86-real "
294
364
compiler_version : " 11.2"
295
365
filters :
296
366
tags :
297
367
only : /^v.*/
298
368
branches :
299
369
ignore : /.*/
300
370
- build_conda :
301
- name : Windows x86_64 packages
302
- exec : windows -x86_64-cpu
371
+ name : Linux x86_64 GPU w/ RAFT packages (CUDA 11.8.0)
372
+ exec : linux -x86_64-gpu
303
373
label : main
374
+ raft : " ON"
375
+ cuda : " 11.8.0"
376
+ cuda_archs : " 70-real;72-real;75-real;80;86-real"
377
+ compiler_version : " 11.2"
304
378
filters :
305
379
tags :
306
380
only : /^v.*/
307
381
branches :
308
382
ignore : /.*/
309
383
- build_conda :
310
- name : OSX x86_64 packages
311
- exec : macosx-x86_64-cpu
384
+ name : Linux x86_64 GPU packages (CUDA 12.1.1)
385
+ exec : linux-x86_64-gpu
386
+ label : main
387
+ cuda : " 12.1.1"
388
+ cuda_archs : " 70-real;72-real;75-real;80;86-real"
389
+ compiler_version : " 11.2"
390
+ filters :
391
+ tags :
392
+ only : /^v.*/
393
+ branches :
394
+ ignore : /.*/
395
+ - build_conda :
396
+ name : Linux x86_64 GPU w/ RAFT packages (CUDA 12.1.1)
397
+ exec : linux-x86_64-gpu
398
+ label : main
399
+ raft : " ON"
400
+ cuda : " 12.1.1"
401
+ cuda_archs : " 70-real;72-real;75-real;80;86-real"
402
+ compiler_version : " 11.2"
403
+ filters :
404
+ tags :
405
+ only : /^v.*/
406
+ branches :
407
+ ignore : /.*/
408
+ - build_conda :
409
+ name : Windows x86_64 packages
410
+ exec : windows-x86_64-cpu
312
411
label : main
313
412
filters :
314
413
tags :
@@ -348,19 +447,38 @@ workflows:
348
447
exec : linux-x86_64-cpu
349
448
label : nightly
350
449
- build_conda :
351
- name : Linux x86_64 GPU nightlies (CUDA 11.4)
450
+ name : Linux x86_64 GPU nightlies (CUDA 11.4.4)
451
+ exec : linux-x86_64-gpu
452
+ label : nightly
453
+ cuda : " 11.4.4"
454
+ cuda_archs : " 60-real;61-real;62-real;70-real;72-real;75-real;80;86-real"
455
+ compiler_version : " 11.2"
456
+ - build_conda :
457
+ name : Linux x86_64 GPU w/ RAFT nightlies (CUDA 11.8.0)
352
458
exec : linux-x86_64-gpu
353
- cuda : " 11.4"
354
- cuda_archs : " 60;61;70;72;75;80;86"
459
+ label : nightly
460
+ raft : " ON"
461
+ cuda : " 11.8.0"
462
+ cuda_archs : " 70-real;72-real;75-real;80;86-real"
355
463
compiler_version : " 11.2"
464
+ - build_conda :
465
+ name : Linux x86_64 GPU nightlies (CUDA 12.1.1)
466
+ exec : linux-x86_64-gpu
356
467
label : nightly
468
+ cuda : " 12.1.1"
469
+ cuda_archs : " 70-real;72-real;75-real;80;86-real"
470
+ compiler_version : " 11.2"
357
471
- build_conda :
358
- name : Windows x86_64 nightlies
359
- exec : windows -x86_64-cpu
472
+ name : Linux x86_64 GPU w/ RAFT nightlies (CUDA 12.1.1)
473
+ exec : linux -x86_64-gpu
360
474
label : nightly
475
+ raft : " ON"
476
+ cuda : " 12.1.1"
477
+ cuda_archs : " 70-real;72-real;75-real;80;86-real"
478
+ compiler_version : " 11.2"
361
479
- build_conda :
362
- name : OSX x86_64 nightlies
363
- exec : macosx -x86_64-cpu
480
+ name : Windows x86_64 nightlies
481
+ exec : windows -x86_64-cpu
364
482
label : nightly
365
483
- build_conda :
366
484
name : OSX arm64 nightlies
0 commit comments