Repository navigation
Fix RelatedTables construction during full-graph compilation (#1058) #429
This file contains hidden or 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: Test GPU | |
| on: # yamllint disable-line rule:truthy | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| - 'pull-request/[0-9]+' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref_name != 'main' }} | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| jobs: | |
| trigger: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| full_test: ${{ steps.check.outputs.result }} | |
| steps: | |
| - name: Check for ci-full-test label | |
| id: check | |
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 | |
| with: | |
| result-encoding: string | |
| script: | | |
| if (!context.ref.startsWith('refs/heads/pull-request/')) { | |
| return true; | |
| } | |
| const pullNumber = Number(context.ref.split('/').at(-1)); | |
| const { data: pull } = await github.rest.pulls.get({ | |
| ...context.repo, | |
| pull_number: pullNumber, | |
| }); | |
| return pull.labels.some(({ name }) => name === 'ci-full-test'); | |
| pytest: | |
| needs: trigger | |
| runs-on: linux-amd64-gpu-rtxpro6000-latest-1 | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up proxy cache | |
| uses: nv-gha-runners/setup-proxy-cache@main | |
| continue-on-error: true | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 | |
| with: | |
| python-version: '3.12' | |
| activate-environment: true | |
| - name: Route uv through the proxy cache | |
| run: | | |
| if [ -n "${PIP_INDEX_URL:-}" ]; then | |
| echo "UV_DEFAULT_INDEX=${PIP_INDEX_URL}" >> "${GITHUB_ENV}" | |
| fi | |
| - name: Install package | |
| run: | | |
| RAPIDS_INDEX_URL="${NV_GHA_RUNNERS_PYPI_ANACONDA_CACHE_URL:-https://pypi.nvidia.com}" | |
| uv pip install \ | |
| --torch-backend=cu130 \ | |
| --extra-index-url="${RAPIDS_INDEX_URL}" \ | |
| --find-links=https://data.pyg.org/whl/torch-2.14.0+cu130.html \ | |
| --index-strategy=unsafe-best-match \ | |
| --group=test \ | |
| . | |
| - name: GPU sanity check | |
| run: | | |
| nvidia-smi | |
| python - <<'PY' | |
| from importlib.metadata import version | |
| import cudf | |
| import cupy | |
| import pyg_lib | |
| import pylibcugraph | |
| import torch | |
| pandas_version = version("pandas") | |
| assert pandas_version.startswith("3.") | |
| assert torch.cuda.is_available(), "CUDA not available to torch" | |
| assert hasattr(pylibcugraph, "heterogeneous_uniform_neighbor_sample") | |
| assert hasattr( | |
| pylibcugraph, | |
| "heterogeneous_uniform_temporal_neighbor_sample", | |
| ) | |
| print("torch", torch.__version__) | |
| print("cudf", cudf.__version__) | |
| print("cupy", cupy.__version__) | |
| print("pandas", pandas_version) | |
| print("pylibcugraph", version("pylibcugraph-cu13")) | |
| print("pyg-lib", version("pyg-lib")) | |
| PY | |
| - name: Run tests | |
| env: | |
| FULL_TEST: ${{ needs.trigger.outputs.full_test == 'true' && '1' || '0' }} | |
| run: | | |
| pytest -m cuda -rs --durations=25 | |
| example: | |
| needs: trigger | |
| if: needs.trigger.outputs.full_test == 'true' | |
| runs-on: linux-amd64-gpu-rtxpro6000-latest-1 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up proxy cache | |
| uses: nv-gha-runners/setup-proxy-cache@main | |
| continue-on-error: true | |
| - name: Cache RelBench dataset | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 | |
| with: | |
| path: /home/runner/.cache/huggingface/hub | |
| key: relbench-3-${{ runner.os }}-${{ runner.arch }}-rel-f1 | |
| - name: Cache BeyondArena dataset | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 | |
| with: | |
| path: /home/runner/.cache/data_foundry | |
| key: beyondarena-1-${{ runner.os }}-${{ runner.arch }}-parkinsons-biomedical-voice-measurements | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 | |
| with: | |
| python-version: '3.12' | |
| activate-environment: true | |
| - name: Route uv through the proxy cache | |
| run: | | |
| if [ -n "${PIP_INDEX_URL:-}" ]; then | |
| echo "UV_DEFAULT_INDEX=${PIP_INDEX_URL}" >> "${GITHUB_ENV}" | |
| fi | |
| - name: Install package | |
| run: | | |
| RAPIDS_INDEX_URL="${NV_GHA_RUNNERS_PYPI_ANACONDA_CACHE_URL:-https://pypi.nvidia.com}" | |
| uv pip install \ | |
| --torch-backend=cu130 \ | |
| --extra-index-url="${RAPIDS_INDEX_URL}" \ | |
| --find-links=https://data.pyg.org/whl/torch-2.14.0+cu130.html \ | |
| --index-strategy=unsafe-best-match \ | |
| --exclude-newer-package='autogluon-common=0 days' \ | |
| --exclude-newer-package='autogluon-core=0 days' \ | |
| --exclude-newer-package='autogluon-features=0 days' \ | |
| --exclude-newer-package='autogluon-tabular=0 days' \ | |
| --exclude-newer-package='bencheval=0 days' \ | |
| --exclude-newer-package='tabarena=0 days' \ | |
| . \ | |
| 'TALENT@git+https://github.com/LAMDA-Tabular/TALENT.git@08301d6' \ | |
| 'autogluon.tabular>=1.6.4b20260924,<=1.7.0' \ | |
| 'cudf-cu13>=26.6,<26.8' \ | |
| 'numpy<2.5' \ | |
| 'pandas<3' \ | |
| pyg-lib \ | |
| 'pylibcugraph-cu13>=26.6,<26.8' \ | |
| 'relbench>=3.0.1' \ | |
| scikit-learn \ | |
| 'tabarena[data-foundry,plot,preprocessing]>=0.1.1.dev20260924104714,<=0.2.0' \ | |
| torchmetrics \ | |
| tqdm | |
| - name: GPU sanity check | |
| run: | | |
| nvidia-smi | |
| python -c 'import torch; assert torch.cuda.is_available(), "CUDA not available to torch"' | |
| - name: Run TabICLv2 quickstart example | |
| timeout-minutes: 2 | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| python examples/tabular/quickstart.py | |
| - name: Run TabICLv2 text example | |
| timeout-minutes: 2 | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| python examples/tabular/text.py --text-processor tfidf | |
| - name: Run Kumo RelBench example | |
| timeout-minutes: 2 | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| python examples/relational/rel_bench.py --dataset rel-f1 --task driver-position | |
| - name: Test TabArena benchmark | |
| timeout-minutes: 5 | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| python -m benchmark.tabular.tabarena.main --model tabiclv2 --dataset blood-transfusion-service-center | |
| python -m benchmark.tabular.tabarena.evaluate | |
| - name: Test BeyondArena benchmark | |
| timeout-minutes: 5 | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| python -m benchmark.tabular.beyondarena.main --model tabiclv2 --dataset parkinsons_biomedical_voice_measurements --subset lite | |
| python -m benchmark.tabular.beyondarena.evaluate | |
| - name: Test TALENT benchmark | |
| timeout-minutes: 5 | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| TALENT_ARCHIVE=$(hf download \ | |
| LAMDA-Tabular/TALENT dataset-latest.zip \ | |
| --repo-type dataset \ | |
| --revision 7bd276bcb7f6b4c0998025855528bd76bd88f13d \ | |
| --quiet) | |
| unzip -q "${TALENT_ARCHIVE}" 'data/boston/*' -d "${RUNNER_TEMP}/talent" | |
| python -m benchmark.tabular.talent.main --model tabiclv2 --dataset-path "${RUNNER_TEMP}/talent/data" --dataset boston | |
| python -m benchmark.tabular.talent.evaluate |