[NPU] Split pyproject npu from pyproject other (#17641)
This commit is contained in:
@@ -29,6 +29,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
main_package: ${{ steps.filter.outputs.main_package || steps.run-mode.outputs.run_all_tests }}
|
main_package: ${{ steps.filter.outputs.main_package || steps.run-mode.outputs.run_all_tests }}
|
||||||
|
multimodal_gen: ${{ steps.filter.outputs.multimodal_gen || steps.run-mode.outputs.run_all_tests }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -56,10 +57,15 @@ jobs:
|
|||||||
filters: |
|
filters: |
|
||||||
main_package:
|
main_package:
|
||||||
- "python/sglang/!(multimodal_gen)/**"
|
- "python/sglang/!(multimodal_gen)/**"
|
||||||
- "python/pyproject_other.toml"
|
- "python/pyproject_npu.toml"
|
||||||
- "scripts/ci/npu/npu_ci_install_dependency.sh"
|
- "scripts/ci/npu/npu_ci_install_dependency.sh"
|
||||||
- "test/srt/ascend/**"
|
- "test/srt/ascend/**"
|
||||||
- ".github/workflows/pr-test-npu.yml"
|
- ".github/workflows/pr-test-npu.yml"
|
||||||
|
multimodal_gen:
|
||||||
|
- "python/sglang/multimodal_gen/**"
|
||||||
|
- "python/pyproject_npu.toml"
|
||||||
|
- "scripts/ci/npu_ci_install_dependency.sh"
|
||||||
|
- ".github/workflows/pr-test-npu.yml"
|
||||||
|
|
||||||
# ==================== PR Gate ==================== #
|
# ==================== PR Gate ==================== #
|
||||||
pr-gate:
|
pr-gate:
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
name: Release Docker Images Nightly (NPU)
|
name: Release Docker Images Nightly (NPU)
|
||||||
on:
|
on:
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- ".github/workflows/release-docker-npu-nightly.yml"
|
|
||||||
- "docker/npu.Dockerfile"
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "0 0 * * *"
|
- cron: "0 0 * * *"
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ RUN (${PIP_INSTALL} pybind11) \
|
|||||||
|
|
||||||
# Install SGLang
|
# Install SGLang
|
||||||
RUN git clone https://github.com/sgl-project/sglang --branch $SGLANG_TAG && \
|
RUN git clone https://github.com/sgl-project/sglang --branch $SGLANG_TAG && \
|
||||||
(cd sglang/python && rm -rf pyproject.toml && mv pyproject_other.toml pyproject.toml && ${PIP_INSTALL} -v .[srt_npu]) && \
|
(cd sglang/python && rm -rf pyproject.toml && mv pyproject_npu.toml pyproject.toml && ${PIP_INSTALL} -v .[all_npu]) && \
|
||||||
rm -rf sglang
|
rm -rf sglang
|
||||||
|
|
||||||
# Install Deep-ep
|
# Install Deep-ep
|
||||||
|
|||||||
@@ -100,8 +100,8 @@ pip install ./custom_ops-2.0.$DEVICE_TYPE-cp311-cp311-linux_aarch64.whl
|
|||||||
# Use the last release branch
|
# Use the last release branch
|
||||||
git clone https://github.com/sgl-project/sglang.git
|
git clone https://github.com/sgl-project/sglang.git
|
||||||
cd sglang
|
cd sglang
|
||||||
mv python/pyproject_other.toml python/pyproject.toml
|
mv python/pyproject_npu.toml python/pyproject.toml
|
||||||
pip install -e python[srt_npu]
|
pip install -e python[all_npu]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Method 2: Using Docker Image
|
### Method 2: Using Docker Image
|
||||||
|
|||||||
@@ -0,0 +1,146 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["setuptools>=61.0", "setuptools-scm>=8.0", "wheel", "grpcio-tools==1.75.1"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "sglang"
|
||||||
|
dynamic = ["version"]
|
||||||
|
description = "SGLang is a fast serving framework for large language models and vision language models."
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">=3.10"
|
||||||
|
license = { file = "LICENSE" }
|
||||||
|
classifiers = [
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"License :: OSI Approved :: Apache Software License",
|
||||||
|
]
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
"IPython",
|
||||||
|
"aiohttp",
|
||||||
|
"anthropic>=0.20.0",
|
||||||
|
"blobfile==3.0.0",
|
||||||
|
"build",
|
||||||
|
"compressed-tensors",
|
||||||
|
"decord2",
|
||||||
|
"datasets",
|
||||||
|
"einops",
|
||||||
|
"fastapi",
|
||||||
|
"gguf",
|
||||||
|
"hf_transfer",
|
||||||
|
"huggingface_hub",
|
||||||
|
"interegular",
|
||||||
|
"llguidance>=0.7.11,<0.8.0",
|
||||||
|
"modelscope",
|
||||||
|
"msgspec",
|
||||||
|
"ninja",
|
||||||
|
"numpy",
|
||||||
|
"openai-harmony==0.0.4",
|
||||||
|
"openai==2.6.1",
|
||||||
|
"orjson",
|
||||||
|
"outlines==0.1.11",
|
||||||
|
"packaging",
|
||||||
|
"partial_json_parser",
|
||||||
|
"pillow",
|
||||||
|
"prometheus-client>=0.20.0",
|
||||||
|
"psutil",
|
||||||
|
"py-spy",
|
||||||
|
"pybase64",
|
||||||
|
"pydantic",
|
||||||
|
"python-multipart",
|
||||||
|
"pyzmq>=25.1.2",
|
||||||
|
"requests",
|
||||||
|
"scipy",
|
||||||
|
"sentencepiece",
|
||||||
|
"setproctitle",
|
||||||
|
"soundfile==0.13.1",
|
||||||
|
"tiktoken",
|
||||||
|
"timm==1.0.16",
|
||||||
|
"torchao==0.9.0",
|
||||||
|
"tqdm",
|
||||||
|
"transformers==4.57.1",
|
||||||
|
"uvicorn",
|
||||||
|
"uvloop",
|
||||||
|
"xgrammar==0.1.27",
|
||||||
|
"grpcio==1.75.1", # keep it align with compile_proto.py
|
||||||
|
"grpcio-tools==1.75.1", # keep it align with compile_proto.py
|
||||||
|
"grpcio-reflection==1.75.1", # required by srt/entrypoints/grpc_server.py
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.optional-dependencies]
|
||||||
|
checkpoint-engine = ["checkpoint-engine==0.1.2"]
|
||||||
|
diffusion = [
|
||||||
|
"PyYAML==6.0.1",
|
||||||
|
"cloudpickle",
|
||||||
|
"diffusers==0.36.0",
|
||||||
|
"imageio==2.36.0",
|
||||||
|
"imageio-ffmpeg==0.5.1",
|
||||||
|
"moviepy>=2.0.0",
|
||||||
|
"opencv-python==4.10.0.84",
|
||||||
|
"remote-pdb",
|
||||||
|
"cache-dit==1.1.8"
|
||||||
|
]
|
||||||
|
|
||||||
|
tracing = [
|
||||||
|
"opentelemetry-api",
|
||||||
|
"opentelemetry-exporter-otlp",
|
||||||
|
"opentelemetry-exporter-otlp-proto-grpc",
|
||||||
|
"opentelemetry-sdk",
|
||||||
|
]
|
||||||
|
|
||||||
|
test = [
|
||||||
|
"accelerate",
|
||||||
|
"expecttest",
|
||||||
|
"gguf",
|
||||||
|
"jsonlines",
|
||||||
|
"matplotlib",
|
||||||
|
"pandas",
|
||||||
|
"peft",
|
||||||
|
"pytest",
|
||||||
|
"sentence_transformers",
|
||||||
|
"tabulate",
|
||||||
|
]
|
||||||
|
|
||||||
|
# https://docs.sglang.io/platforms/ascend_npu.html
|
||||||
|
srt_npu = []
|
||||||
|
all_npu = ["sglang[diffusion]"]
|
||||||
|
dev_npu = ["sglang[all_npu]", "sglang[test]"]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
"Homepage" = "https://github.com/sgl-project/sglang"
|
||||||
|
"Bug Tracker" = "https://github.com/sgl-project/sglang/issues"
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
sglang = "sglang.cli.main:main"
|
||||||
|
|
||||||
|
[tool.setuptools.package-data]
|
||||||
|
"sglang" = [
|
||||||
|
"srt/**/*",
|
||||||
|
"jit_kernel/**/*"
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.setuptools.packages.find]
|
||||||
|
exclude = [
|
||||||
|
"assets*",
|
||||||
|
"benchmark*",
|
||||||
|
"docs*",
|
||||||
|
"dist*",
|
||||||
|
"playground*",
|
||||||
|
"scripts*",
|
||||||
|
"tests*",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.wheel]
|
||||||
|
exclude = [
|
||||||
|
"assets*",
|
||||||
|
"benchmark*",
|
||||||
|
"docs*",
|
||||||
|
"dist*",
|
||||||
|
"playground*",
|
||||||
|
"scripts*",
|
||||||
|
"tests*",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.setuptools_scm]
|
||||||
|
root = ".."
|
||||||
|
version_file = "sglang/_version.py"
|
||||||
|
git_describe_command = ["git", "describe", "--tags", "--long", "--match", "v*"]
|
||||||
@@ -99,9 +99,6 @@ diffusion_hip = [
|
|||||||
"runai_model_streamer",
|
"runai_model_streamer",
|
||||||
]
|
]
|
||||||
|
|
||||||
# https://docs.sglang.io/platforms/ascend_npu.html
|
|
||||||
srt_npu = ["sglang[runtime_common]"]
|
|
||||||
|
|
||||||
# For Intel Gaudi(device : hpu) follow the installation guide
|
# For Intel Gaudi(device : hpu) follow the installation guide
|
||||||
# https://docs.vllm.ai/en/latest/getting_started/gaudi-installation.html
|
# https://docs.vllm.ai/en/latest/getting_started/gaudi-installation.html
|
||||||
srt_hpu = ["sglang[runtime_common]"]
|
srt_hpu = ["sglang[runtime_common]"]
|
||||||
@@ -145,12 +142,10 @@ test = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
all_hip = ["sglang[srt_hip]"]
|
all_hip = ["sglang[srt_hip]"]
|
||||||
all_npu = ["sglang[srt_npu]"]
|
|
||||||
all_hpu = ["sglang[srt_hpu]"]
|
all_hpu = ["sglang[srt_hpu]"]
|
||||||
all_musa = ["sglang[srt_musa]", "sglang[diffusion_musa]"]
|
all_musa = ["sglang[srt_musa]", "sglang[diffusion_musa]"]
|
||||||
|
|
||||||
dev_hip = ["sglang[all_hip]", "sglang[test]"]
|
dev_hip = ["sglang[all_hip]", "sglang[test]"]
|
||||||
dev_npu = ["sglang[all_npu]", "sglang[test]"]
|
|
||||||
dev_hpu = ["sglang[all_hpu]", "sglang[test]"]
|
dev_hpu = ["sglang[all_hpu]", "sglang[test]"]
|
||||||
dev_musa = ["sglang[all_musa]", "sglang[test]"]
|
dev_musa = ["sglang[all_musa]", "sglang[test]"]
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ apt update -y && apt install -y \
|
|||||||
clang \
|
clang \
|
||||||
locales \
|
locales \
|
||||||
ccache \
|
ccache \
|
||||||
ca-certificates
|
ca-certificates \
|
||||||
|
libgl1 \
|
||||||
|
libglib2.0-0
|
||||||
update-ca-certificates
|
update-ca-certificates
|
||||||
${PIP_INSTALL} --upgrade pip
|
${PIP_INSTALL} --upgrade pip
|
||||||
# Pin wheel to 0.45.1, REF: https://github.com/pypa/wheel/issues/662
|
# Pin wheel to 0.45.1, REF: https://github.com/pypa/wheel/issues/662
|
||||||
@@ -62,5 +64,5 @@ wget https://sglang-ascend.obs.cn-east-3.myhuaweicloud.com/ops/custom_ops-1.0.$D
|
|||||||
pip install ./custom_ops-1.0.$DEVICE_TYPE-cp311-cp311-linux_aarch64.whl
|
pip install ./custom_ops-1.0.$DEVICE_TYPE-cp311-cp311-linux_aarch64.whl
|
||||||
|
|
||||||
### Install SGLang
|
### Install SGLang
|
||||||
rm -rf python/pyproject.toml && mv python/pyproject_other.toml python/pyproject.toml
|
rm -rf python/pyproject.toml && mv python/pyproject_npu.toml python/pyproject.toml
|
||||||
${PIP_INSTALL} -v -e "python[dev_npu]"
|
${PIP_INSTALL} -v -e "python[dev_npu]"
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ python scripts/release/bump_sglang_version.py 0.5.3rc0
|
|||||||
- `docs/platforms/ascend_npu.md`
|
- `docs/platforms/ascend_npu.md`
|
||||||
- `python/pyproject.toml`
|
- `python/pyproject.toml`
|
||||||
- `python/pyproject_other.toml`
|
- `python/pyproject_other.toml`
|
||||||
|
- `python/pyproject_npu.toml`
|
||||||
- `python/sglang/version.py`
|
- `python/sglang/version.py`
|
||||||
|
|
||||||
### `bump_kernel_version.py`
|
### `bump_kernel_version.py`
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ def main():
|
|||||||
Path("docs/platforms/ascend_npu.md"),
|
Path("docs/platforms/ascend_npu.md"),
|
||||||
Path("python/pyproject.toml"),
|
Path("python/pyproject.toml"),
|
||||||
Path("python/pyproject_other.toml"),
|
Path("python/pyproject_other.toml"),
|
||||||
|
Path("python/pyproject_npu.toml"),
|
||||||
Path("python/pyproject_cpu.toml"),
|
Path("python/pyproject_cpu.toml"),
|
||||||
Path("python/pyproject_xpu.toml"),
|
Path("python/pyproject_xpu.toml"),
|
||||||
Path("python/sglang/version.py"),
|
Path("python/sglang/version.py"),
|
||||||
|
|||||||
Reference in New Issue
Block a user