Skip to content

Commit

Permalink
Merge remote-tracking branch 'mllam/main' into feature_rank_one_utils
Browse files Browse the repository at this point in the history
  • Loading branch information
sadamov committed Sep 6, 2024
2 parents 10835e9 + 68399f7 commit ba3fd3a
Show file tree
Hide file tree
Showing 34 changed files with 546 additions and 199 deletions.
16 changes: 16 additions & 0 deletions .cirun.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# setup for using github runners via https://cirun.io/
runners:
- name: "aws-runner"
# Cloud Provider: AWS
cloud: "aws"
# https://aws.amazon.com/ec2/instance-types/g4/
instance_type: "g4ad.xlarge"
# Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04), Frankfurt region
machine_image: "ami-0ba41b554b28d24a4"
# use Frankfurt region
region: "eu-central-1"
preemptible: false
# Add this label in the "runs-on" param in .github/workflows/<workflow-name>.yml
# So that this runner is created for running the workflow
labels:
- "cirun-aws-runner"
52 changes: 52 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
## Describe your changes

< Summary of the changes.>

< Please also include relevant motivation and context. >

< List any dependencies that are required for this change. >

## Issue Link

< Link to the relevant issue or task. > (e.g. `closes #00` or `solves #00`)

## Type of change

- [ ] 🐛 Bug fix (non-breaking change that fixes an issue)
- [ ] ✨ New feature (non-breaking change that adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📖 Documentation (Addition or improvements to documentation)

## Checklist before requesting a review

- [ ] My branch is up-to-date with the target branch - if not update your fork with the changes from the target branch (use `pull` with `--rebase` option if possible).
- [ ] I have performed a self-review of my code
- [ ] For any new/modified functions/classes I have added docstrings that clearly describe its purpose, expected inputs and returned values
- [ ] I have placed in-line comments to clarify the intent of any hard-to-understand passages of my code
- [ ] I have updated the [README](README.MD) to cover introduced code changes
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] I have given the PR a name that clearly describes the change, written in imperative form ([context](https://www.gitkraken.com/learn/git/best-practices/git-commit-message#using-imperative-verb-form)).
- [ ] I have requested a reviewer and an assignee (assignee is responsible for merging)

## Checklist for reviewers

Each PR comes with its own improvements and flaws. The reviewer should check the following:
- [ ] the code is readable
- [ ] the code is well tested
- [ ] the code is documented (including return types and parameters)
- [ ] the code is easy to maintain

## Author checklist after completed review

- [ ] I have added a line to the CHANGELOG describing this change, in a section
reflecting type of change (add section where missing):
- *added*: when you have added new functionality
- *changed*: when default behaviour of the code has been changed
- *fixes*: when your contribution fixes a bug

## Checklist for assignee

- [ ] PR is up to date with the base branch
- [ ] the tests pass
- [ ] author has added an entry to the changelog (and designated the change as *added*, *changed* or *fixed*)
- Once the PR is ready to be merged, squash commits and merge the PR.
55 changes: 55 additions & 0 deletions .github/workflows/ci-pdm-install-and-test-cpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# cicd workflow for running tests with pytest
# needs to first install pdm, then install torch cpu manually and then install the package
# then run the tests

name: test (pdm install, cpu)

on: [push, pull_request]

jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Install pdm
run: |
python -m pip install pdm
- name: Create venv
run: |
pdm venv create --with-pip
pdm use --venv in-project
- name: Install torch (CPU)
run: |
pdm run python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
# check that the CPU version is installed
- name: Install package (including dev dependencies)
run: |
pdm install --group :all
- name: Print and check torch version
run: |
pdm run python -c "import torch; print(torch.__version__)"
pdm run python -c "import torch; assert torch.__version__.endswith('+cpu')"
- name: Load cache data
uses: actions/cache/restore@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
restore-keys: |
${{ runner.os }}-meps-reduced-example-data-v0.1.0
- name: Run tests
run: |
pdm run pytest
- name: Save cache data
uses: actions/cache/save@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
60 changes: 60 additions & 0 deletions .github/workflows/ci-pdm-install-and-test-gpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# cicd workflow for running tests with pytest
# needs to first install pdm, then install torch cpu manually and then install the package
# then run the tests

name: test (pdm install, gpu)

on: [push, pull_request]

jobs:
tests:
runs-on: "cirun-aws-runner--${{ github.run_id }}"
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9

- name: Install pdm
run: |
python -m pip install pdm
- name: Create venv
run: |
pdm config venv.in_project False
pdm config venv.location /opt/dlami/nvme/venv
pdm venv create --with-pip
- name: Install torch (GPU CUDA 12.1)
run: |
pdm run python -m pip install torch --index-url https://download.pytorch.org/whl/cu121
- name: Print and check torch version
run: |
pdm run python -c "import torch; print(torch.__version__)"
pdm run python -c "import torch; assert not torch.__version__.endswith('+cpu')"
- name: Install package (including dev dependencies)
run: |
pdm install --group :all
- name: Load cache data
uses: actions/cache/restore@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
restore-keys: |
${{ runner.os }}-meps-reduced-example-data-v0.1.0
- name: Run tests
run: |
pdm run pytest
- name: Save cache data
uses: actions/cache/save@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
45 changes: 45 additions & 0 deletions .github/workflows/ci-pip-install-and-test-cpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# cicd workflow for running tests with pytest
# needs to first install pdm, then install torch cpu manually and then install the package
# then run the tests

name: test (pip install, cpu)

on: [push, pull_request]

jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Install torch (CPU)
run: |
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
- name: Install package (including dev dependencies)
run: |
python -m pip install ".[dev]"
- name: Print and check torch version
run: |
python -c "import torch; print(torch.__version__)"
python -c "import torch; assert torch.__version__.endswith('+cpu')"
- name: Load cache data
uses: actions/cache/restore@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
restore-keys: |
${{ runner.os }}-meps-reduced-example-data-v0.1.0
- name: Run tests
run: |
python -m pytest
- name: Save cache data
uses: actions/cache/save@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
50 changes: 50 additions & 0 deletions .github/workflows/ci-pip-install-and-test-gpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# cicd workflow for running tests with pytest
# needs to first install pdm, then install torch cpu manually and then install the package
# then run the tests

name: test (pip install, gpu)

on: [push, pull_request]

jobs:
tests:
runs-on: "cirun-aws-runner--${{ github.run_id }}"
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9

- name: Install torch (GPU CUDA 12.1)
run: |
python -m pip install torch --index-url https://download.pytorch.org/whl/cu121
- name: Install package (including dev dependencies)
run: |
python -m pip install ".[dev]"
- name: Print and check torch version
run: |
python -c "import torch; print(torch.__version__)"
python -c "import torch; assert not torch.__version__.endswith('+cpu')"
- name: Load cache data
uses: actions/cache/restore@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
restore-keys: |
${{ runner.os }}-meps-reduced-example-data-v0.1.0
- name: Run tests
run: |
python -m pytest
- name: Save cache data
uses: actions/cache/save@v4
with:
path: data
key: ${{ runner.os }}-meps-reduced-example-data-v0.1.0
4 changes: 1 addition & 3 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
name: Linting

on:
# trigger on pushes to any branch, but not main
# trigger on pushes to any branch
push:
branches-ignore:
- main
# and also on PRs to main
pull_request:
branches:
Expand Down
45 changes: 0 additions & 45 deletions .github/workflows/run_tests.yml

This file was deleted.

5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,8 @@ tags

# Coc configuration directory
.vim

# pdm (https://pdm-project.org/en/stable/)
.pdm-python
# exclude pdm.lock file so that both cpu and gpu versions of torch will be accepted by pdm
pdm.lock
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ repos:
hooks:
- id: flake8
description: Check Python code for correctness, consistency and adherence to best practices
additional_dependencies: [Flake8-pyproject]
Loading

0 comments on commit ba3fd3a

Please sign in to comment.