Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/build_kernels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Build and Release Kernels

# Builds every wheel prime-rl (and other consumers) pin via `[tool.uv.sources]`:
# prime-kernels (this repo's own kernels.toml-declared extensions), deep-ep and
# deep-gemm (from their pinned deepseek-ai revs), and our torchao (from the pytorch/ao
# deep-gemm (from their pinned upstream revs), and our torchao (from the pytorch/ao
# rev the MXFP8 training path requires). This repo is the single build+release site for
# all four — prime-rl only consumes the resulting release, it does not build anything
# itself (see scripts/install_ep_kernels.sh, scripts/install_deep_gemm.sh,
Expand Down Expand Up @@ -100,9 +100,11 @@ jobs:
# git, curl, gcc/g++/make and cmake/ninja already ship in this image (via
# /opt/conda and gcc-toolset-13). libibverbs-devel/librdmacm-devel: NVSHMEM's
# IBGDA transport headers (infiniband/mlx5dv.h), compile-time only — deep-ep
# dlopens the real thing at runtime. `xz` unpacks the NVSHMEM archive.
# dlopens the real thing at runtime. elfutils-devel: DeepJIT's `elfutils/libdwfl.h`
# (deep-gemm's stack traces), also compile-time only and dlopened at runtime. `xz`
# unpacks the NVSHMEM archive.
- name: Install build tooling
run: dnf install -y --setopt=install_weak_deps=False ca-certificates xz libibverbs-devel librdmacm-devel
run: dnf install -y --setopt=install_weak_deps=False ca-certificates xz libibverbs-devel librdmacm-devel elfutils-devel

- name: Checkout
uses: actions/checkout@v5
Expand Down
11 changes: 8 additions & 3 deletions scripts/install_deep_gemm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,25 @@
# bash scripts/install_deep_gemm.sh --wheel-dir dist
#
# Options:
# --ref REF DeepGEMM commit hash (default: 891d57b)
# --repo URL DeepGEMM git repository (default: vllm-project/DeepGEMM)
# --ref REF DeepGEMM commit hash (default: e1f418c)
# --wheel-dir DIR Output wheel to DIR (default: ./dist)
#
# The default is vLLM's DeepGEMM fork at the commit vLLM 0.31.0 vendors (2.8.0). vLLM imports
# an installed `deep_gemm` ahead of its vendored copy, so this keeps both on the same kernels.

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(dirname "$SCRIPT_DIR")"

DEEPGEMM_GIT_REPO="https://github.com/deepseek-ai/DeepGEMM.git"
DEEPGEMM_GIT_REF="891d57b4db1071624b5c8fa0d1e51cb317fa709f"
DEEPGEMM_GIT_REPO="https://github.com/vllm-project/DeepGEMM.git"
DEEPGEMM_GIT_REF="e1f418c2a4f20818221f6b0e578b4c2f634d4c3f"
WHEEL_DIR="$REPO_ROOT/dist"

while [[ $# -gt 0 ]]; do
case $1 in
--repo) DEEPGEMM_GIT_REPO="$2"; shift 2 ;;
--ref) DEEPGEMM_GIT_REF="$2"; shift 2 ;;
--wheel-dir) WHEEL_DIR="$2"; shift 2 ;;
*) echo "Unknown argument: $1" >&2; exit 1 ;;
Expand Down
Loading