sgl-deep-ep
sgl-deep-ep is SGLang's binary distribution of
DeepEP. The distribution name is
sgl-deep-ep, while the Python import remains compatible with DeepEP:
import deep_ep
Installation
The PyPI package targets CUDA 13 and installs with:
pip install sgl-deep-ep
CUDA 12.9 wheels are published separately in the
SGLang wheel repository. Install the
matching PyTorch CUDA 12.9 build first, then install the wheel from the cu129
index or release URL.
Each wheel is specific to a CPython version, CPU architecture, and CUDA major.
The package checks these constraints when deep_ep is imported.
Host prerequisites
The wheel contains DeepEP's Python code and CUDA extension. It does not and cannot provision the host kernel or RDMA stack. Every host must provide:
- a compatible NVIDIA driver and CUDA runtime;
- the RDMA/NVLink environment required by the selected DeepEP transport.
At import time, the package checks the supported platform, PyTorch and CUDA
versions, and CUDA driver/device availability. Failures raise an actionable
ImportError. Transport-specific prerequisites are validated when DeepEP
initializes the selected transport.
CUDA 13 wheels use DeepEP v2 and its NCCL Gin transport. Release and runtime
images pin nvidia-nccl-cu13==2.30.7; this path does not require GDRCopy or a
/dev/gdrdrv device. NVSHMEM remains a build and runtime dependency because the
current v2 extension still links the legacy DeepEP methods.
CUDA 12.9 wheels use the legacy NVSHMEM transport. Their low-latency and
internode paths require an IBGDA-capable host, provided either by NVIDIA driver
configuration or by GDRCopy (libgdrapi.so plus a usable /dev/gdrdrv). See the
NVSHMEM setup guide
for both supported configurations.
Wheel release workflow
Wheels are built and published by SGLang's
Release sgl-deep-ep workflow.
Before starting a release, merge the required implementation changes into the
matching implementation branch and merge the packaging overlay into
sgl-deepep-packaging:
- CUDA 13, x86_64 and aarch64:
sgl-deepep(DeepEP v2); - CUDA 12.9, x86_64:
sgl-deepep-cu12-x86; - CUDA 12.9, aarch64:
sgl-deepep-cu12-arm.
Run the workflow manually with:
version: the public package version, without a leadingv;target:cu129,cu130, orall;packaging-ref: the packaging overlay branch, tag, or commit (normallysgl-deepep-packaging).
The CUDA 12.9 matrix builds CPython 3.10 and 3.12 wheels. The CUDA 13.0 matrix
builds CPython 3.10, 3.11, 3.12, and 3.13 wheels. Both matrices build for
x86_64 and aarch64.
For each selected CUDA target, the workflow uploads CUDA-tagged wheels to the
corresponding cu129 or cu130 index in
sgl-project/whl. CUDA 13.0 wheels are also
published to PyPI as sgl-deep-ep, without a CUDA suffix in the package name.
Publishing requires the GH_PAT_FOR_WHL_RELEASE and
SGL_DEEP_EP_PYPI_TOKEN repository secrets.
After the workflow completes, check that every expected Python and architecture
artifact was published, install the appropriate wheel in a clean environment,
and verify both import deep_ep and a multi-GPU DeepEP or SGLang workload.
Release files for sgl-deep-ep 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| sgl_deep_ep-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| sgl_deep_ep-0.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| sgl_deep_ep-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| sgl_deep_ep-0.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| sgl_deep_ep-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| sgl_deep_ep-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| sgl_deep_ep-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| sgl_deep_ep-0.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 | Details |
Total release size: 121.9 MB
Release files / sgl_deep_ep-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | sgl_deep_ep-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 15.3 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
44479f309bffdfb3e3d1cceb4ca563167e96eaf5f30d20c91905a1efb7d2bd3c
|
|
BLAKE2b-256 checksum How to use checksums |
f7e2f251549a6ad3054f700857f5a1181a55ae752e3cc625b5c0d0fe2a0e81d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / sgl_deep_ep-0.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | sgl_deep_ep-0.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 15.2 MB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
6e85b90c441467c62b8332518e1bf9c2d8f53fc75f87efee72b8da3f70da9dc5
|
|
BLAKE2b-256 checksum How to use checksums |
f6f5c13007fcd5bc58949ebd45dae5f08b012103a132d232977daf6e1d88b512
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / sgl_deep_ep-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | sgl_deep_ep-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 15.3 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
63c90e60b5cbb63dac10ab62b432306c37ce2f7777ffb3f05bee765210a31c80
|
|
BLAKE2b-256 checksum How to use checksums |
e54deff6ebd61e34c4e617f1373a4ebc35a25b884cf54a4879664dfd6327c87d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / sgl_deep_ep-0.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | sgl_deep_ep-0.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 15.2 MB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
3b055fe84ef2ea0adca9533c86d572ab016ae46059f846a06dbc61febf3b6cee
|
|
BLAKE2b-256 checksum How to use checksums |
cfc5e430614a300ad9b743256aa0059d578a8e4a40fb54ec4c8ce5f688c3cdee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / sgl_deep_ep-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | sgl_deep_ep-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 15.3 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
000f2d7d1f3ed8385e2bf126f73f554ed6acf48ba952738817ad7aebe7063acb
|
|
BLAKE2b-256 checksum How to use checksums |
a62923983deb91de86d6bbbc136eb176b15143b56003b508c219f4b659ee4a11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / sgl_deep_ep-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | sgl_deep_ep-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 15.1 MB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
5a82b3615081a9b5d170fa138513f5bbd9af3e5a72963f1204e18f39c1710c53
|
|
BLAKE2b-256 checksum How to use checksums |
578b957a27bc42550e932a3786fd45220635e275d4abf6c5b956fcb20c01ebe0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / sgl_deep_ep-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | sgl_deep_ep-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 15.3 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9d461971156107561452df633d1ce9df6a270001d5e169ffa8b55a69bd8483b8
|
|
BLAKE2b-256 checksum How to use checksums |
90b3c61a31c2a51a2588d43c80eda581d62bc9c88475f60e3186b3df68d1e099
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / sgl_deep_ep-0.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | sgl_deep_ep-0.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 15.1 MB |
| Tags | CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
570a51f06b1850a19a45257c43d47065cf1b850ff4a385975f6201cba8321048
|
|
BLAKE2b-256 checksum How to use checksums |
47de7738d2a0641a4e0f8aa74ae63bbf06e461f34c06a3923d079f3163687828
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|