-
Notifications
You must be signed in to change notification settings - Fork 348
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move CI from CircleCI to Github Actions
Differential Revision: D49757301
- Loading branch information
1 parent
95df090
commit b2483cd
Showing
3 changed files
with
372 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,239 @@ | ||
name: Unit-tests with release version of PyTorch on Linux CPU | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
|
||
jobs: | ||
integration_test_cpu: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.2xlarge | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo '::group::Install dependencies via pip, including extra deps.' | ||
./scripts/install_via_pip.sh | ||
echo '::endgroup::' | ||
echo '::group::Runs MNIST example end to end' | ||
mkdir -p runs/mnist/data | ||
mkdir -p runs/mnist/test-reports | ||
echo "Using $(python -V)" | ||
echo "Using $(pip -V)" | ||
python examples/mnist.py --lr 0.25 --sigma 0.7 -c 1.5 --batch-size 64 --epochs 1 --data-root runs/mnist/data --n-runs 1 --device <<parameters.device>> | ||
python -c "import torch; accuracy = torch.load('run_results_mnist_0.25_0.7_1.5_64_1.pt'); exit(0) if (accuracy[0]>0.78 and accuracy[0]<0.95) else exit(1)" | ||
echo '::endgroup::' | ||
mnist: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
cuda_arch_version: ["11.8"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.g5.4xlarge.nvidia.gpu | ||
gpu-arch-type: cuda | ||
gpu-arch-version: ${{ matrix.cuda_arch_version }} | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo "::group::Setup Environment Variables" | ||
export PYTHON_VERSION="${{ matrix.python_version }}" | ||
echo "::endgroup::" | ||
echo "::group::Install dependencies via pip, including extra deps." | ||
./scripts/install_via_pip.sh | ||
echo "::endgroup::" | ||
echo "::group::Run nvidia-smi" | ||
nvidia-smi | ||
echo "::endgroup::" | ||
echo "::group::Run mnist example end to end" | ||
mkdir -p runs/mnist/data | ||
mkdir -p runs/mnist/test-reports | ||
echo "Using $(python -V)" | ||
echo "Using $(pip -V)" | ||
python examples/mnist_lightning.py fit --trainer.accelerator cuda --model.lr 0.25 --model.sigma 0.7 --model.max_per_sample_grad_norm 1.5 --model.sample_rate 0.004 --trainer.max_epochs 1 --data.data_dir runs/mnist/data --data.sample_rate 0.004 | ||
echo "::endgroup::" | ||
cifar10: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
cuda_arch_version: ["11.8"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.g5.4xlarge.nvidia.gpu | ||
gpu-arch-type: cuda | ||
gpu-arch-version: ${{ matrix.cuda_arch_version }} | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo "::group::Setup Environment Variables" | ||
export PYTHON_VERSION="${{ matrix.python_version }}" | ||
echo "::endgroup::" | ||
echo "::group::Install dependencies via pip, including extra deps." | ||
./scripts/install_via_pip.sh | ||
echo "::endgroup::" | ||
echo "::group::Run nvidia-smi" | ||
nvidia-smi | ||
echo "::endgroup::" | ||
echo "::group::Run cifar10 example end to end" | ||
mkdir -p runs/cifar10/data | ||
mkdir -p runs/cifar10/logs | ||
mkdir -p runs/cifar10/test-reports | ||
echo "Using $(python -V)" | ||
echo "Using $(pip -V)" | ||
pip install tensorboard | ||
python examples/cifar10.py --lr 0.1 --sigma 1.5 -c 10 --batch-size 2000 --epochs 10 --data-root runs/cifar10/data --log-dir runs/cifar10/logs --device cuda | ||
python -c "import torch; model = torch.load('model_best.pth.tar'); exit(0) if (model['best_acc1']>0.4 and model['best_acc1']<0.49) else exit(1)" | ||
python examples/cifar10.py --lr 0.1 --sigma 1.5 -c 10 --batch-size 2000 --epochs 10 --data-root runs/cifar10/data --log-dir runs/cifar10/logs --device cuda --grad_sample_mode no_op | ||
python -c "import torch; model = torch.load('model_best.pth.tar'); exit(0) if (model['best_acc1']>0.4 and model['best_acc1']<0.49) else exit(1)" | ||
echo "::endgroup::" | ||
imdb: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
cuda_arch_version: ["11.8"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.g5.4xlarge.nvidia.gpu | ||
gpu-arch-type: cuda | ||
gpu-arch-version: ${{ matrix.cuda_arch_version }} | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo "::group::Setup Environment Variables" | ||
export PYTHON_VERSION="${{ matrix.python_version }}" | ||
echo "::endgroup::" | ||
echo "::group::Install dependencies via pip, including extra deps." | ||
./scripts/install_via_pip.sh | ||
echo "::endgroup::" | ||
echo "::group::Run nvidia-smi" | ||
nvidia-smi | ||
echo "::endgroup::" | ||
echo "::group::Run imdb example end to end" | ||
mkdir -p runs/imdb/data | ||
mkdir -p runs/imdb/test-reports | ||
echo "Using $(python -V)" | ||
echo "Using $(pip -V)" | ||
pip install --user datasets transformers | ||
python examples/imdb.py --lr 0.02 --sigma 1.0 -c 1.0 --batch-size 64 --max-sequence-length 256 --epochs 2 --data-root runs/imdb/data --device cuda | ||
python -c "import torch; accuracy = torch.load('run_results_imdb_classification.pt'); exit(0) if (accuracy>0.54 and accuracy<0.66) else exit(1)" | ||
echo "::endgroup::" | ||
charlstm: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
cuda_arch_version: ["11.8"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.g5.4xlarge.nvidia.gpu | ||
gpu-arch-type: cuda | ||
gpu-arch-version: ${{ matrix.cuda_arch_version }} | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo "::group::Setup Environment Variables" | ||
export PYTHON_VERSION="${{ matrix.python_version }}" | ||
echo "::endgroup::" | ||
echo "::group::Install dependencies via pip, including extra deps." | ||
./scripts/install_via_pip.sh | ||
echo "::endgroup::" | ||
echo "::group::Run nvidia-smi" | ||
nvidia-smi | ||
echo "::endgroup::" | ||
echo "::group::Run charlstm example end to end" | ||
mkdir -p runs/charlstm/data | ||
wget https://download.pytorch.org/tutorial/data.zip -O runs/charlstm/data/data.zip | ||
unzip runs/charlstm/data/data.zip -d runs/charlstm/data | ||
rm runs/charlstm/data/data.zip | ||
mkdir -p runs/charlstm/test-reports | ||
echo "Using $(python -V)" | ||
echo "Using $(pip -V)" | ||
pip install scikit-learn | ||
python examples/char-lstm-classification.py --epochs=20 --learning-rate=2.0 --hidden-size=128 --delta=8e-5 --batch-size 400 --n-layers=1 --sigma=1.0 --max-per-sample-grad-norm=1.5 --data-root="runs/charlstm/data/data/names/" --device="cuda" --test-every 5 | ||
python -c "import torch; accuracy = torch.load('run_results_chr_lstm_classification.pt'); exit(0) if (accuracy>0.60 and accuracy<0.80) else exit(1)" | ||
echo "::endgroup::" | ||
dcgan: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
cuda_arch_version: ["11.8"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.g5.4xlarge.nvidia.gpu | ||
gpu-arch-type: cuda | ||
gpu-arch-version: ${{ matrix.cuda_arch_version }} | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo "::group::Setup Environment Variables" | ||
export PYTHON_VERSION="${{ matrix.python_version }}" | ||
echo "::endgroup::" | ||
echo "::group::Install dependencies via pip, including extra deps." | ||
./scripts/install_via_pip.sh | ||
echo "::endgroup::" | ||
echo "::group::Run nvidia-smi" | ||
nvidia-smi | ||
echo "::endgroup::" | ||
echo "::group::Run dcgan example end to end" | ||
mkdir -p runs/dcgan/data | ||
mkdir -p runs/dcgan/test-reports | ||
echo "Using $(python -V) ($(which python))" | ||
echo "Using $(pip -V) ($(which pip))" | ||
python examples/dcgan.py --lr 2e-4 --sigma 0.7 -c 1.5 --batch-size 32 --epochs 1 --data-root runs/dcgan/data --device cuda | ||
echo "::endgroup::" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: Unit-tests with release version of PyTorch on Linux CPU | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
|
||
jobs: | ||
lint: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.2xlarge | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo '::group::Install dependencies via pip, including extra deps.' | ||
./scripts/install_via_pip.sh | ||
echo '::endgroup::' | ||
echo '::group::Lint with flake8' | ||
flake8 --config ./.github/flake8_config.ini | ||
echo '::endgroup::' | ||
echo '::group::Lint with black' | ||
black --check --diff --color . | ||
echo '::endgroup::' | ||
echo '::group::Check import order with isort' | ||
isort -v -l 88 -o opacus --lines-after-imports 2 -m 3 --trailing-comma --check-only . | ||
echo '::endgroup::' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
name: Unit-tests with release version of PyTorch on Linux CPU | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
|
||
jobs: | ||
unit_tests_cpu: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
pytorch_version: ["nightly", "release"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.2xlarge | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo '::group::Install dependencies via pip, including extra deps.' | ||
if ["${{ matrix.pytorch_version }}" == "nightly"]; then | ||
pip_install_arg="-n" | ||
else | ||
pip_install_arg="" | ||
fi | ||
./scripts/install_via_pip.sh "$pip_install_arg" | ||
echo '::endgroup::' | ||
echo '::group::Run unit tests' | ||
mkdir unittest-reports | ||
python -m pytest --doctest-modules -p conftest --junitxml=unittest-reports/junit.xml opacus | ||
echo '::endgroup::' | ||
unit_test_multi_gpu: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
cuda_arch_version: ["12.0"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.g5.4xlarge.nvidia.gpu | ||
gpu-arch-type: cuda | ||
gpu-arch-version: ${{ matrix.cuda_arch_version }} | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo '::group::Install dependencies via pip, including extra deps.' | ||
./scripts/install_via_pip.sh | ||
echo '::endgroup::' | ||
echo '::group::Run nvidia-smi' | ||
nvidia-smi | ||
echo '::endgroup::' | ||
echo '::group::Run multi gpu unit tests' | ||
mkdir unittest-multigpu-reports | ||
python -m unittest opacus.tests.multigpu_gradcheck.GradientComputationTest.test_gradient_correct | ||
echo '::endgroup::' | ||
prv_accountant_values: | ||
strategy: | ||
matrix: | ||
python_version: ["3.9"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "${{ matrix.python_version }}" | ||
- uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | ||
with: | ||
runner: linux.2xlarge | ||
repository: pytorch/opacus | ||
timeout: 60 | ||
script: | | ||
echo '::group::Install dependencies via pip, including extra deps.' | ||
./scripts/install_via_pip.sh | ||
echo '::endgroup::' | ||
echo '::group::Unit test prv accountant' | ||
python -m unittest opacus.tests.prv_accountant | ||
echo '::endgroup::' |