config.yml 18.9 KB
Newer Older
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
1
2
3
4
5
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
# Adopted from
6
# https://github.com/facebookresearch/detectron2/blob/main/.circleci/config.yml
7
8
#
# Pro tip: download circle ci cli to validate the config locally during development.
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
9

Min Xu's avatar
Min Xu committed
10
version: 2.1
11
12
orbs:
  codecov: codecov/codecov@1.0.2
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
13
14
15
# -------------------------------------------------------------------------------------
# Environments to run the jobs in
# -------------------------------------------------------------------------------------
16
cpu_py37: &cpu_py37
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
17
18
  docker:
    - image: circleci/python:3.7
19
  resource_class: large
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
20

21
22
23
cpu_py38: &cpu_py38
  docker:
    - image: circleci/python:3.8
24
  resource_class: large
25
26
27
28

cpu_py39: &cpu_py39
  docker:
    - image: circleci/python:3.9
29
  resource_class: large
30

31
32
# Here are list of GPU images:
#   https://circleci.com/docs/2.0/configuration-reference/#available-linux-gpu-images
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
33
34
gpu: &gpu
  environment:
35
36
    CUDA_VERSION: "10.2"
    CUDA_HOME: /usr/local/cuda-10.2
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
37
  machine:
38
39
    # This image actually has cuda-11.1 installed, but it doesn't seems to affect us
    # using pytorch cu10 builds below.
40
    image: ubuntu-1604-cuda-10.2:202012-01
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
41
42
  resource_class: gpu.large

43
44
gpu_cu111: &gpu_cu111
  environment:
45
46
    CUDA_VERSION: "11.2"
    CUDA_HOME: /usr/local/cuda-11.2
47
  machine:
48
    image: ubuntu-2004-cuda-11.2:202103-01
49
50
  resource_class: gpu.large

Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -------------------------------------------------------------------------------------
# Re-usable commands
# -------------------------------------------------------------------------------------
setup_venv: &setup_venv
  - run:
      name: Setup Virtual Env
      working_directory: ~/
      command: |
        python -m venv ~/venv
        echo ". ~/venv/bin/activate" >> $BASH_ENV
        . ~/venv/bin/activate
        python --version
        which python
        which pip
        pip install --upgrade pip

67
install_dep_171: &install_dep_171
68
  - run:
69
      name: Install Dependencies with torch 1.7.1
70
      command: |
71
        # check if we have restored venv cache (/home/circleci/venv) correctly, if so, just skip
Min Xu's avatar
Min Xu committed
72
        if [ -f /home/circleci/venv/check_version.py ]; then python /home/circleci/venv/check_version.py torch eq 1.7 && exit 0; fi
73
        # start installing
74
75
76
77
78
79
        pip install --progress-bar off torch==1.7.1+cu110 torchvision==0.8.2+cu110 -f https://download.pytorch.org/whl/torch_stable.html
        pip install --progress-bar off -r requirements-test.txt
        pip install --progress-bar off -r requirements-benchmarks.txt
        python -c 'import torch; print("Torch version:", torch.__version__)'
        python -c 'import torch; assert torch.__version__.split(".")[:2] == ["1", "7"], "wrong torch version"'
        python -m torch.utils.collect_env
Min Xu's avatar
Min Xu committed
80
        wget -O /home/circleci/venv/check_version.py https://raw.githubusercontent.com/min-xu-ai/check_verion/main/check_version.py
81

82
install_dep_181: &install_dep_181
83
  - run:
84
      name: Install Dependencies with torch 1.8.1 (LTS)
85
      command: |
86
        # check if we have restored venv cache (/home/circleci/venv) correctly, if so, just skip
Min Xu's avatar
Min Xu committed
87
        if [ -f /home/circleci/venv/check_version.py ]; then python /home/circleci/venv/check_version.py torch eq 1.8 && exit 0; fi
88
        # start installing
89
        pip install --progress-bar off torch==1.8.1+cu102 torchvision==0.9.1+cu102 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
90
        pip install --progress-bar off -r requirements-test.txt
91
        pip install --progress-bar off -r requirements-benchmarks.txt
92
93
94
        python -c 'import torch; print("Torch version:", torch.__version__)'
        python -c 'import torch; assert torch.__version__.split(".")[:2] == ["1", "8"], "wrong torch version"'
        python -m torch.utils.collect_env
Min Xu's avatar
Min Xu committed
95
        wget -O /home/circleci/venv/check_version.py https://raw.githubusercontent.com/min-xu-ai/check_verion/main/check_version.py
96

97
98
99
100
101
install_dep_190: &install_dep_190
  - run:
      name: Install Dependencies with torch 1.9.0
      command: |
        # check if we have restored venv cache (/home/circleci/venv) correctly, if so, just skip
102
        if [ -f /home/circleci/venv/check_version.py ]; then python /home/circleci/venv/check_version.py torch eq 1.9 && exit 0; fi
103
        # start installing
104
        pip install --progress-bar off torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
105
106
107
108
109
110
111
        pip install --progress-bar off -r requirements-test.txt
        pip install --progress-bar off -r requirements-benchmarks.txt
        python -c 'import torch; print("Torch version:", torch.__version__)'
        python -c 'import torch; assert torch.__version__.split(".")[:2] == ["1", "9"], "wrong torch version"'
        python -m torch.utils.collect_env
        wget -O /home/circleci/venv/check_version.py https://raw.githubusercontent.com/min-xu-ai/check_verion/main/check_version.py

112
113
114
115
116
117
118
install_dep_pytorch_nightly: &install_dep_pytorch_nightly
  - run:
      name: Install Dependencies with a torch nightly preview build
      command: |
        # check if we have restored venv cache (/home/circleci/venv) correctly, if so, just skip
        if [ -f /home/circleci/venv/check_version.py ]; then python /home/circleci/venv/check_version.py torch eq 1.10 && exit 0; fi
        # start installing
119
        pip install --progress-bar off --pre torch==1.11.0.dev20211101+cu111 torchvision==0.12.0.dev20211101+cu111 -f https://download.pytorch.org/whl/nightly/cu111/torch_nightly.html
120
121
122
        pip install --progress-bar off -r requirements-test.txt
        pip install --progress-bar off -r requirements-benchmarks.txt
        python -c 'import torch; print("Torch version:", torch.__version__)'
123
        python -c 'import torch; assert torch.__version__.split(".")[:2] == ["1", "11"], "wrong torch version"'
124
125
126
        python -m torch.utils.collect_env
        wget -O /home/circleci/venv/check_version.py https://raw.githubusercontent.com/min-xu-ai/check_verion/main/check_version.py

127
install_repo: &install_repo
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
128
129
130
  - run:
      name: Install Repository
      command: |
131
132
133
        pip install .
        # Test import.
        python -c 'import sys; sys.path = sys.path[1:]; import fairscale'
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
134

135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
run_isort: &run_isort
   - run:
       name: Run Linter (isort)
       command: |
         isort . --check

run_black: &run_black
   - run:
       name: Run Linter (black)
       command: |
         black --check .

run_mypy: &run_mypy
   - run:
       name: Run type-checking (mypy)
       command: |
         mypy --ignore-missing-imports --scripts-are-modules --pretty .

run_flake8: &run_flake8
  - run:
      name: Run Linter (flake8)
      command: |
        flake8 --show-source --statistics

159
160
161
162
163
164
check_test_list: &check_test_list
  - run:
      name: Verify that unit test list files are correct
      command: |
        bash ./tests/ci_test_list_check.sh

165

166
167
168
169
upload_coverage: &upload_coverage
  - codecov/upload:
      file: 'coverage.xml'
      token: $CODECOV_TOKEN
msbaines's avatar
msbaines committed
170

171
172
173
174
run_offload_benchmark: &run_offload_benchmark
  - run:
      name: Run Offload Benchmark
      command: |
175
        python benchmarks/experimental/offload.py --checkpoint_activation
176

Jun Ru Anderson's avatar
Jun Ru Anderson committed
177
run_pipe_benchmark: &run_pipe_benchmark
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
178
  - run:
Jun Ru Anderson's avatar
Jun Ru Anderson committed
179
      name: Run Pipe Benchmark
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
180
      command: |
Jun Ru Anderson's avatar
Jun Ru Anderson committed
181
        python benchmarks/pipe.py
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
182

183
184
185
186
run_oss_benchmark: &run_oss_benchmark
  - run:
      name: Run OSS Benchmark
      command: |
187
        python benchmarks/oss.py --world_size 4 --epochs 2
188
        python benchmarks/oss.py --check_regression --world_size 4 --optim_type oss_sharded_ddp
189
190

run_oss_gloo: &run_oss_gloo
191
192
193
194
195
196
  - run:
      name: Run OSS with Gloo
      command: |
        python benchmarks/oss.py --gloo --optim_type oss_ddp --epochs 2
        python benchmarks/oss.py --gloo --optim_type oss_sharded_ddp --epochs 2

197
run_oss_amp: &run_oss_amp
198
199
200
201
202
   - run:
       name: Run OSS with Torch AMP
       command: |
         python benchmarks/oss.py --amp --epochs 3 --optim_type oss_sharded_ddp

203
204
205
206
207
208
run_oss_for_each: &run_oss_for_each
   - run:
       name: Run OSS with Torch AMP and ForEach optmizer
       command: |
         python benchmarks/oss.py --amp --epochs 3 --optim_type oss_sharded_ddp --multi_tensor_optim

209
210
211
212
213
214
215
216
217
218

run_doc_build: &run_doc_build
   - run:
       name: Testing doc build
       command: |
         cd docs
         pip install --progress-bar off -r requirements.txt
         make help
         make singlehtml | tee make.out
         ! tail make.out | grep -q warning
219

220
221
222
223
224
225
# This is an alias to run all unit tests possible on a platform.
run_unittests: &run_unittests
   - run:
       name: Run all unit tests.
       # We run all and not stopping on failure on CPU since docker time is cheaper.
       command: |
226
         pytest --junitxml=test-results/junit.xml --verbose --timeout 60 --cov-report=xml --cov=./
227

Min Xu's avatar
Min Xu committed
228
commands:
229
230
231
232

   # This is a command (like a function) that run tests from a given test_list_file.
   # If test_list_file is not given, this results in an error.
   run_unittests_from_list:
Min Xu's avatar
Min Xu committed
233
     parameters:
234
       test_list_file:
Min Xu's avatar
Min Xu committed
235
         type: string
236
         default: "/dev/non_exist"  # Default to error out
Min Xu's avatar
Min Xu committed
237
238
239
240
     steps:
       - run:
           name: Run Unit Tests
           command: |
241
             if [ ! -f <<parameters.test_list_file>> ]; then exit 1; fi
242
             pytest --junitxml=test-results/junit.xml --verbose --timeout 60 --cov-report=xml --cov=./ `cat <<parameters.test_list_file>>`
Min Xu's avatar
Min Xu committed
243

244
245
246
247
248
249
250
251
   setup_pyenv:
     parameters:
       version:
         type: string
     steps:
       - run:
           name: Setup pyenv
           command: |
anj-s's avatar
anj-s committed
252
             git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
253
254
255
256
             pyenv update
             pyenv install -f <<parameters.version>>
             pyenv global <<parameters.version>>

Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
257
258
259
260
261
# -------------------------------------------------------------------------------------
# Jobs to run
# -------------------------------------------------------------------------------------

jobs:
262
263
  cpu_tests_py37:
    <<: *cpu_py37
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
264
265
266
267
268

    working_directory: ~/fairscale

    steps:
      - checkout
269
      - <<: *check_test_list
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
270
271
272
273
274
      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
275
            - cache-key-cpu-py37-190-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
276

277
      - <<: *install_dep_190
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
278
279
280
281

      - save_cache:
          paths:
            - ~/venv
282
          key: cache-key-cpu-py37-190-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
283

284
      - <<: *install_repo
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
285

286
287
288
289
      - <<: *run_isort
      - <<: *run_black
      - <<: *run_mypy
      - <<: *run_flake8
290
      - <<: *run_unittests
291
292
293
294
      - <<: *run_doc_build

      - store_test_results:
          path: test-results
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
295

296
297
  cpu_tests_py38:
    <<: *cpu_py38
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
298

299
    working_directory: ~/fairscale
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
300

301
302
    steps:
      - checkout
303
      - <<: *check_test_list
304
      - <<: *setup_venv
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
305

306
307
308
      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
309
310
            - cache-key-cpu-py38-190-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
      - <<: *install_dep_190
311
312
313
314

      - save_cache:
          paths:
            - ~/venv
315
          key: cache-key-cpu-py38-190-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
316

317
      - <<: *install_repo
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
318

319
320
321
322
      - <<: *run_isort
      - <<: *run_black
      - <<: *run_mypy
      - <<: *run_flake8
323
      - <<: *run_unittests
324
      - <<: *run_doc_build
325

Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
326
327
328
      - store_test_results:
          path: test-results

329
330
331
332
333
334
335
  cpu_tests_py39:
    <<: *cpu_py39

    working_directory: ~/fairscale

    steps:
      - checkout
336
      - <<: *check_test_list
337
338
339
340
341
      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
342
            - cache-key-cpu-py39-190-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
343

344
      - <<: *install_dep_190
345
346
347
348

      - save_cache:
          paths:
            - ~/venv
349
          key: cache-key-cpu-py39-190-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
350

351
      - <<: *install_repo
352
353
354
355
356

      - <<: *run_isort
      - <<: *run_black
      - <<: *run_mypy
      - <<: *run_flake8
357
      - <<: *run_unittests
358
359
360
361
362
      - <<: *run_doc_build

      - store_test_results:
          path: test-results

363
  gpu_tests_171:
Min Xu's avatar
Min Xu committed
364
    parameters:
365
      test_list_file:
Min Xu's avatar
Min Xu committed
366
        type: string
367
        default: "/dev/non_exist"
368

369
    <<: *gpu_cu111
370
371
372
373
374
375
376
377

    working_directory: ~/fairscale

    steps:
      - checkout

      - run: nvidia-smi

378
      # Run this to make sure we use python3 from the system.
379
      - setup_pyenv:
380
          version: 3.8.6
381
382
383
384
385
386

      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
387
            - cache-key-py38-gpu-171-111-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
388

389
      - <<: *install_dep_171
390
391
392
393

      - save_cache:
          paths:
            - ~/venv
394
          key: cache-key-py38-gpu-171-111-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
395

396
      - <<: *install_repo
397

398
399
      - run_unittests_from_list:
          test_list_file: <<parameters.test_list_file>>
400
401
402

      - store_test_results:
          path: test-results
403

404
      - <<: *upload_coverage
405

406
  gpu_tests_181:
Min Xu's avatar
Min Xu committed
407
    parameters:
408
      test_list_file:
Min Xu's avatar
Min Xu committed
409
        type: string
410
        default: "/dev/non_exist"
Min Xu's avatar
Min Xu committed
411

412
    <<: *gpu
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
413
414
415
416
417
418
419
420

    working_directory: ~/fairscale

    steps:
      - checkout

      - run: nvidia-smi

421
      # Run this to make sure we use python3 from the system.
422
      - setup_pyenv:
423
          version: 3.7.0
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
424
425
426
427
428
429

      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
430
            - cache-key-py37-gpu-181-102-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
431

432
      - <<: *install_dep_181
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
433
434
435
436

      - save_cache:
          paths:
            - ~/venv
437
          key: cache-key-py37-gpu-181-102-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
438

439
      - <<: *install_repo
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
440

441
442
      - run_unittests_from_list:
          test_list_file: <<parameters.test_list_file>>
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
443
444
445

      - store_test_results:
          path: test-results
446

447
      - <<: *upload_coverage
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
448

449
  gpu_tests_190:
Min Xu's avatar
Min Xu committed
450
    parameters:
451
      test_list_file:
Min Xu's avatar
Min Xu committed
452
        type: string
453
        default: "/dev/non_exist"
Min Xu's avatar
Min Xu committed
454

455
    <<: *gpu_cu111
456
457
458
459
460
461
462
463

    working_directory: ~/fairscale

    steps:
      - checkout

      - run: nvidia-smi

464
      # Run this to make sure we use python3 from the system.
465
      - setup_pyenv:
466
          version: 3.8.6
467
468
469
470
471
472

      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
473
            - cache-key-py38-gpu-190-111-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
474

475
      - <<: *install_dep_190
476
477
478
479

      - save_cache:
          paths:
            - ~/venv
480
          key: cache-key-py38-gpu-190-111-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
481

482
      - <<: *install_repo
483

484
485
      - run_unittests_from_list:
          test_list_file: <<parameters.test_list_file>>
486
487
488

      - store_test_results:
          path: test-results
489

490
  gpu_tests_pytorch_nightly:
491
492
493
494
495
    parameters:
      test_list_file:
        type: string
        default: "/dev/non_exist"

496
    <<: *gpu_cu111
497
498
499
500
501
502
503
504
505

    working_directory: ~/fairscale

    steps:
      - checkout

      - run: nvidia-smi

      # Run this to make sure we use python3 from the system.
506
      - setup_pyenv:
507
          version: 3.8.6
508
509
510
511
512
513

      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
514
            - cache-key-py38-gpu-pytorch-nightly-112-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
515

516
      - <<: *install_dep_pytorch_nightly
517
518
519
520

      - save_cache:
          paths:
            - ~/venv
521
          key: cache-key-py38-gpu-pytorch-nightly-112-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
522
523
524
525
526
527
528
529
530

      - <<: *install_repo

      - run_unittests_from_list:
          test_list_file: <<parameters.test_list_file>>

      - store_test_results:
          path: test-results

531
  benchmarks_1:
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
532
533
534
535
536
537
538
539
540
    <<: *gpu

    working_directory: ~/fairscale

    steps:
      - checkout

      - run: nvidia-smi

541
542
      - setup_pyenv:
          version: 3.7.0
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
543
544
545
546
547
548

      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
549
            - cache-key-py37-benchmarks-190-101-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
550

551
552
553
554
555
      # Cache the MNIST directory that contains benchmark data
      - restore_cache:
          keys:
            - cache-key-benchmark-MNIST-{{ checksum "benchmarks/datasets/mnist.py"}}

556
      - <<: *install_dep_190
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
557
558
559
560

      - save_cache:
          paths:
            - ~/venv
561
          key: cache-key-py37-benchmarks-190-101-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
562

563
      - <<: *install_repo
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
564

Jun Ru Anderson's avatar
Jun Ru Anderson committed
565
      - <<: *run_pipe_benchmark
Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
566

567
568
      - <<: *run_offload_benchmark

569
570
571
      - <<: *run_oss_amp

      - <<: *run_oss_for_each
572

573
574
      - <<: *run_oss_gloo

575
576
577
578
579
      - save_cache:
          paths:
            - /tmp/MNIST
          key: cache-key-benchmark-MNIST-{{ checksum "benchmarks/datasets/mnist.py"}}

580
581
582
583
584
585
586
587
588
589
  benchmarks_2:
    <<: *gpu

    working_directory: ~/fairscale

    steps:
      - checkout

      - run: nvidia-smi

590
591
      - setup_pyenv:
          version: 3.7.0
592
593
594
595
596
597

      - <<: *setup_venv

      # Cache the venv directory that contains dependencies
      - restore_cache:
          keys:
598
            - cache-key-py37-benchmarks-190-101-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
599

600
601
602
603
604
605

      # Cache the MNIST directory that contains benchmark data
      - restore_cache:
          keys:
            - cache-key-benchmark-MNIST-{{ checksum "benchmarks/datasets/mnist.py"}}

606
      - <<: *install_dep_190
607
608
609
610

      - save_cache:
          paths:
            - ~/venv
611
          key: cache-key-py37-benchmarks-190-101-{{ checksum "setup.py"}}-{{ checksum "requirements-test.txt"}}
612

613
      - <<: *install_repo
614
615

      - <<: *run_oss_benchmark
616

617
618
619
620
621
      - save_cache:
          paths:
            - /tmp/MNIST
          key: cache-key-benchmark-MNIST-{{ checksum "benchmarks/datasets/mnist.py"}}

Mandeep Singh Baines's avatar
Mandeep Singh Baines committed
622
623
624
625
626

workflows:
  version: 2
  build:
    jobs:
627
628
629
      - cpu_tests_py37
      - cpu_tests_py38
      - cpu_tests_py39
Min Xu's avatar
Min Xu committed
630
      - gpu_tests_171:
631
          test_list_file: tests/ci_test_list_1.txt
632
      - gpu_tests_181:
633
          test_list_file: tests/ci_test_list_1.txt
634
635
      - gpu_tests_190:
          test_list_file: tests/ci_test_list_1.txt
636
637
      - gpu_tests_pytorch_nightly:
          test_list_file: tests/ci_test_list_1.txt
Min Xu's avatar
Min Xu committed
638
      - gpu_tests_171:
639
          test_list_file: tests/ci_test_list_2.txt
640
      - gpu_tests_181:
641
          test_list_file: tests/ci_test_list_2.txt
642
643
      - gpu_tests_190:
          test_list_file: tests/ci_test_list_2.txt
644
645
      - gpu_tests_pytorch_nightly:
          test_list_file: tests/ci_test_list_2.txt
Min Xu's avatar
Min Xu committed
646
      - gpu_tests_171:
647
          test_list_file: tests/ci_test_list_3.txt
648
      - gpu_tests_181:
649
          test_list_file: tests/ci_test_list_3.txt
650
651
      - gpu_tests_190:
          test_list_file: tests/ci_test_list_3.txt
652
653
      - gpu_tests_pytorch_nightly:
          test_list_file: tests/ci_test_list_3.txt
654
655
      - benchmarks_1
      - benchmarks_2