Fix DeepGEMM release dependencies and bound GPU validation (#39241)
This commit is contained in:
@@ -20,6 +20,11 @@ on:
|
|||||||
type: string
|
type: string
|
||||||
required: false
|
required: false
|
||||||
default: 'dev'
|
default: 'dev'
|
||||||
|
validation_only:
|
||||||
|
description: "Build and test without publishing wheels"
|
||||||
|
type: boolean
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: release-sgl-deepgemm-${{ github.ref }}
|
group: release-sgl-deepgemm-${{ github.ref }}
|
||||||
@@ -100,11 +105,11 @@ jobs:
|
|||||||
- arch_label: sm90
|
- arch_label: sm90
|
||||||
runner: 8-gpu-h200
|
runner: 8-gpu-h200
|
||||||
wheel_arch: x86_64
|
wheel_arch: x86_64
|
||||||
timeout: 240
|
timeout: 60
|
||||||
- arch_label: sm100
|
- arch_label: sm100
|
||||||
runner: 8-gpu-b200
|
runner: 8-gpu-b200
|
||||||
wheel_arch: x86_64
|
wheel_arch: x86_64
|
||||||
timeout: 240
|
timeout: 60
|
||||||
# The sm120 tests require a runner with RTX 6000. It causes OOM on 5090 runners.
|
# The sm120 tests require a runner with RTX 6000. It causes OOM on 5090 runners.
|
||||||
# - arch_label: sm120
|
# - arch_label: sm120
|
||||||
# runner: 1-gpu-5090
|
# runner: 1-gpu-5090
|
||||||
@@ -112,7 +117,7 @@ jobs:
|
|||||||
- arch_label: sm100-aarch64
|
- arch_label: sm100-aarch64
|
||||||
runner: 4-gpu-gb300
|
runner: 4-gpu-gb300
|
||||||
wheel_arch: aarch64
|
wheel_arch: aarch64
|
||||||
timeout: 240
|
timeout: 60
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
timeout-minutes: ${{ matrix.timeout }}
|
timeout-minutes: ${{ matrix.timeout }}
|
||||||
steps:
|
steps:
|
||||||
@@ -141,9 +146,32 @@ jobs:
|
|||||||
# deep_gemm imports torch before loading _C.so, so torch must preload the
|
# deep_gemm imports torch before loading _C.so, so torch must preload the
|
||||||
# libcudart the cu130 wheel links. Pin the CUDA-matched torch (see sgl-deep-gemm.Dockerfile).
|
# libcudart the cu130 wheel links. Pin the CUDA-matched torch (see sgl-deep-gemm.Dockerfile).
|
||||||
python3 -m pip install "torch==${TORCH_VER}" --index-url "https://download.pytorch.org/whl/${CU_TAG}" --force-reinstall
|
python3 -m pip install "torch==${TORCH_VER}" --index-url "https://download.pytorch.org/whl/${CU_TAG}" --force-reinstall
|
||||||
python3 -m pip install numpy
|
python3 -m pip install numpy "tilelang==0.1.9" "tile-kernels==1.0.0" "sgl-deep-ep==0.1.2"
|
||||||
python3 -m pip install dist/*.whl
|
python3 -m pip install dist/*.whl
|
||||||
|
# Torch pins NCCL 2.29.7, but this DeepEP wheel requires 2.30.7.
|
||||||
|
# Override it after every dependency-resolving pip command.
|
||||||
|
python3 -m pip install "nvidia-nccl-cu13==2.30.7" --force-reinstall --no-deps
|
||||||
|
nccl_lib=$(python3 -c "from importlib.metadata import distribution; print(distribution('nvidia-nccl-cu13').locate_file('nvidia/nccl/lib'))")
|
||||||
|
export LD_LIBRARY_PATH="${nccl_lib}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
|
||||||
|
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> "${GITHUB_ENV}"
|
||||||
python3 -c "import deep_gemm; print('deep_gemm:', deep_gemm.__file__)"
|
python3 -c "import deep_gemm; print('deep_gemm:', deep_gemm.__file__)"
|
||||||
|
python3 - <<'PY'
|
||||||
|
import ctypes
|
||||||
|
import sys
|
||||||
|
import torch
|
||||||
|
import deep_ep
|
||||||
|
from tile_kernels.moe import top2_sum_gate
|
||||||
|
|
||||||
|
# torch.cuda.nccl.version() reports Torch's compiled version, not the loaded library.
|
||||||
|
nccl_version = ctypes.c_int()
|
||||||
|
assert ctypes.CDLL("libnccl.so.2").ncclGetVersion(ctypes.byref(nccl_version)) == 0
|
||||||
|
assert nccl_version.value == 23007, nccl_version.value
|
||||||
|
assert hasattr(deep_ep, "ElasticBuffer"), "DeepEP ElasticBuffer is required"
|
||||||
|
sys.path.insert(0, "DeepGEMM/third-party")
|
||||||
|
from tilelang_ops import ref_mhc
|
||||||
|
assert ref_mhc.has_baseline(), "Mega mHC reference operators are unavailable"
|
||||||
|
print("DeepGEMM test dependencies ready; NCCL:", nccl_version.value)
|
||||||
|
PY
|
||||||
|
|
||||||
- name: Install Compute Sanitizer 2025.4.1
|
- name: Install Compute Sanitizer 2025.4.1
|
||||||
env:
|
env:
|
||||||
@@ -178,9 +206,10 @@ jobs:
|
|||||||
- name: Run DeepGEMM test suite
|
- name: Run DeepGEMM test suite
|
||||||
run: |
|
run: |
|
||||||
chmod +x "${{ github.workspace }}/DeepGEMM/sgl_deep_gemm/run_tests.sh"
|
chmod +x "${{ github.workspace }}/DeepGEMM/sgl_deep_gemm/run_tests.sh"
|
||||||
"${{ github.workspace }}/DeepGEMM/sgl_deep_gemm/run_tests.sh"
|
"${{ github.workspace }}/DeepGEMM/sgl_deep_gemm/run_tests.sh" --release
|
||||||
|
|
||||||
release-cu130:
|
release-cu130:
|
||||||
|
if: ${{ !inputs.validation_only }}
|
||||||
needs: [build-cu130-matrix, test-cu130]
|
needs: [build-cu130-matrix, test-cu130]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
Reference in New Issue
Block a user