Skip to content

Fix RelatedTables construction during full-graph compilation (#1058) #429

Fix RelatedTables construction during full-graph compilation (#1058)

Fix RelatedTables construction during full-graph compilation (#1058) #429

Workflow file for this run

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