[DRAFT] First version of fusion optimizations for transformers #8190
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
name: CI | |
on: | |
schedule: | |
# Run weekly on Mondays and Wednesdays 00:00 | |
- cron: '00 00 * * MON,WED' | |
push: | |
branches: | |
- main | |
- 'gh/**/base' # ghstack base branches | |
- rel-* | |
pull_request: | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
name: | |
- py312-torch-nightly | |
- py311 | |
- py311-torch-nightly | |
- py311-onnx-weekly | |
- py311-ort-nightly | |
- py311-experimental-torchlib-tracing | |
- py310 | |
- py39 | |
include: | |
- name: py311 | |
python-version: "3.11" | |
nox-tag: test build | |
- name: py310 | |
python-version: "3.10" | |
nox-tag: test | |
- name: py39 | |
python-version: "3.9" | |
nox-tag: test | |
- name: py312-torch-nightly | |
python-version: "3.12" | |
nox-tag: test-torch-nightly | |
- name: py311-torch-nightly | |
python-version: "3.11" | |
nox-tag: test-torch-nightly | |
- name: py311-onnx-weekly | |
python-version: "3.11" | |
nox-tag: test-onnx-weekly | |
- name: py311-ort-nightly | |
python-version: "3.11" | |
nox-tag: test-ort-nightly | |
- name: py311-experimental-torchlib-tracing | |
python-version: "3.11" | |
nox-tag: test-experimental-torchlib-tracing | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install nox | |
run: python -m pip install nox | |
- name: Pull Test Data | |
run: git lfs pull | |
- name: Run tests | |
run: nox -t ${{ matrix.nox-tag }} --forcecolor -- --cov=onnxscript --cov-report=xml --cov-append --cov-branch -n=auto --junitxml junit.xml | |
env: | |
CATCH_ORT_SEGFAULT: "${{ matrix.os == 'ubuntu-latest' && '1' || '0' }}" | |
CREATE_REPRODUCTION_REPORT: "${{ matrix.os == 'ubuntu-latest' && '1' || '0' }}" | |
- name: Upload coverage to Codecov | |
if: always() | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Upload test results to Codecov | |
if: ${{ !cancelled() }} | |
uses: codecov/test-results-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Upload torchlib error reports | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Error reports (${{ matrix.name }}-${{ matrix.os }}) | |
path: error_reports | |
dort: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
transformers: ["4.37.2", "4.41.2", "4.42.3"] | |
torch: ["release", "nightly"] | |
python_version: ["3.11"] | |
nox-tag: ["test-dort"] | |
name: | |
- dort | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python ${{ matrix.python_version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Install nox | |
run: python -m pip install nox | |
- name: Pull Test Data | |
run: git lfs pull | |
- run: | | |
nox -t ${{ matrix.nox-tag }} --forcecolor -- ${{ matrix.torch }} ${{ matrix.transformers }} | |
name: Run tests | |
build_docs: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: pip | |
cache-dependency-path: "**/requirements-dev.txt" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install -r requirements-dev.txt | |
- name: Versions | |
run: | | |
pip list | grep numpy | |
pip list | grep onnx | |
pip list | grep torch | |
- name: Install package | |
run: pip install . | |
- name: Build documentation | |
run: python -m sphinx docs dist/html | |
update_readme: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
- name: Update readme | |
run: | | |
python docs/update_readme.py | |
git diff --exit-code -- 'README.md' | |
if [ $? -ne 0 ]; then | |
echo "Update readme by running `python docs/update_readme.py`" | |
exit 1 | |
fi |