121 lines
3.5 KiB
YAML
121 lines
3.5 KiB
YAML
trigger:
|
|
tags:
|
|
include:
|
|
- '*'
|
|
branches:
|
|
include:
|
|
- master
|
|
- release/*
|
|
- refs/tags/*
|
|
|
|
pr:
|
|
branches:
|
|
include:
|
|
- "master"
|
|
- "release/*"
|
|
paths:
|
|
include:
|
|
- ".actions/**"
|
|
- ".azure/ipu-tests.yml"
|
|
- "requirements/fabric/**"
|
|
- "src/lightning/__about__.py"
|
|
- "src/lightning/__init__.py"
|
|
- "src/lightning/__main__.py"
|
|
- "src/lightning/__setup__.py"
|
|
- "src/lightning/__version__.py"
|
|
- "src/lightning/fabric/**"
|
|
- "src/lightning_fabric/*"
|
|
- "requirements/pytorch/**"
|
|
- "src/lightning/pytorch/**"
|
|
- "src/pytorch_lightning/*"
|
|
- "tests/tests_pytorch/**"
|
|
- "pyproject.toml" # includes pytest config
|
|
exclude:
|
|
- "requirements/*/docs.txt"
|
|
- "*.md"
|
|
- "**/*.md"
|
|
|
|
variables:
|
|
- name: poplar_sdk
|
|
# https://docs.graphcore.ai/projects/poptorch-user-guide/en/latest/installation.html#version-compatibility
|
|
value: "poplar_sdk-ubuntu_20_04-3.1.0+1205-58b501c780"
|
|
|
|
jobs:
|
|
- job: testing
|
|
# how long to run the job before automatically cancelling
|
|
timeoutInMinutes: "15"
|
|
pool: graphcore-ipus
|
|
workspace:
|
|
clean: all
|
|
|
|
steps:
|
|
- script: |
|
|
ls -la /mnt/public/packages
|
|
ls -la /opt/poplar
|
|
tar -xvzf /opt/poplar/${{ variables.poplar_sdk }}.tar.gz
|
|
displayName: "Extract Poplar SDK"
|
|
|
|
- script: |
|
|
set -eux
|
|
pip debug --verbose
|
|
pip install ${{ variables.poplar_sdk }}/poptorch-*ubuntu*.whl
|
|
displayName: "Install poptorch"
|
|
|
|
- script: |
|
|
set -eux
|
|
source ${{ variables.poplar_sdk }}/poplar-ubuntu*/enable.sh
|
|
NUM_IPUS=$(gc-info --ipu-count)
|
|
if [[ -z "${NUM_IPUS}" ]] || [[ "${NUM_IPUS}" -eq 0 ]]; then
|
|
echo "No IPUs found to reset. Exiting"
|
|
exit 1
|
|
fi
|
|
echo "Resetting parity on ${NUM_IPUS} IPU devices"
|
|
i=0
|
|
while [[ i -lt "${NUM_IPUS}" ]]; do
|
|
gc-reset -d "${i}"
|
|
i=$((i + 1))
|
|
done
|
|
displayName: "Reset IPU devices"
|
|
|
|
- bash: |
|
|
for fpath in `ls requirements/**/*.txt`; do \
|
|
python ./requirements/pytorch/adjust-versions.py $fpath; \
|
|
done
|
|
pip install -e .[extra,examples,test]
|
|
|
|
pip list
|
|
env:
|
|
PACKAGE_NAME: "pytorch"
|
|
FREEZE_REQUIREMENTS: "1"
|
|
GIT_TERMINAL_PROMPT: "1"
|
|
displayName: 'Install dependencies'
|
|
|
|
- bash: |
|
|
python requirements/collect_env_details.py
|
|
python -c "import torch"
|
|
displayName: 'Env details'
|
|
|
|
- script: |
|
|
set -eux
|
|
source ${{ variables.poplar_sdk }}/poplar-ubuntu*/enable.sh
|
|
source ${{ variables.poplar_sdk }}/popart-ubuntu*/enable.sh
|
|
python -c "import poptorch; print(poptorch.__version__)"
|
|
displayName: "Check poptorch installation"
|
|
|
|
- bash: |
|
|
pip install -q -r .actions/requirements.txt
|
|
python .actions/assistant.py copy_replace_imports --source_dir="./tests" \
|
|
--source_import="lightning.fabric,lightning.pytorch" \
|
|
--target_import="lightning_fabric,pytorch_lightning"
|
|
displayName: 'Adjust tests'
|
|
|
|
- bash: |
|
|
source ${{ variables.poplar_sdk }}/poplar-ubuntu*/enable.sh
|
|
source ${{ variables.poplar_sdk }}/popart-ubuntu*/enable.sh
|
|
python -m coverage run --source pytorch_lightning -m pytest tests/tests_pytorch -vv --durations=50
|
|
env:
|
|
MKL_THREADING_LAYER: "GNU"
|
|
POPTORCH_WAIT_FOR_IPU: "1"
|
|
PL_RUN_IPU_TESTS: "1"
|
|
displayName: 'Testing: PyTorch standard'
|