python3Packages.vllm: 0.9.1 -> 0.10.1.1 (#429117)

This commit is contained in:
Pavol Rusnak
2025-08-28 15:07:47 +02:00
committed by GitHub
8 changed files with 178 additions and 116 deletions
@@ -15,30 +15,21 @@
ninja,
numpy,
torch,
pynvml,
einops,
}:
let
buildPythonPackage rec {
pname = "flashinfer";
version = "0.2.9";
src_cutlass = fetchFromGitHub {
owner = "NVIDIA";
repo = "cutlass";
# Using the revision obtained in submodule inside flashinfer's `3rdparty`.
tag = "v${version}";
hash = "sha256-d4czDoEv0Focf1bJHOVGX4BDS/h5O7RPoM/RrujhgFQ=";
};
in
buildPythonPackage {
format = "setuptools";
inherit pname version;
version = "0.2.14";
pyproject = true;
src = fetchFromGitHub {
owner = "flashinfer-ai";
repo = "flashinfer";
tag = "v${version}";
hash = "sha256-M0q6d+EpuTehbw68AQ73Fhwmw2tzjymYjSXaol9QC7Y=";
hash = "sha256-MZiZwdedz+Vxa1+VBfHDKf4NVSiOAytGboIJ0DvCXmk=";
fetchSubmodules = true;
};
build-system = [ setuptools ];
@@ -48,20 +39,16 @@ buildPythonPackage {
ninja
(lib.getBin cudaPackages.cuda_nvcc)
];
dontUseCmakeConfigure = true;
buildInputs = [
cudaPackages.cuda_cudart
cudaPackages.libcublas
cudaPackages.cuda_cccl
cudaPackages.libcurand
buildInputs = with cudaPackages; [
cuda_cccl
cuda_cudart
libcublas
libcurand
];
postPatch = ''
rmdir 3rdparty/cutlass
ln -s ${src_cutlass} 3rdparty/cutlass
'';
# FlashInfer offers two installation modes:
#
# JIT mode: CUDA kernels are compiled at runtime using PyTorchs JIT, with
@@ -86,6 +73,8 @@ buildPythonPackage {
dependencies = [
numpy
torch
pynvml
einops
];
meta = with lib; {
@@ -158,6 +158,14 @@ buildPythonPackage rec {
];
disabledTests = [
# AssertionError: assert CompletionReq...lm_xargs=None) == CompletionReq...lm_xargs=None)
"test_convert_params"
# Flaky: ray.exceptions.ActorDiedError: The actor died unexpectedly before finishing this task.
"test_explain"
"test_infer"
"test_predict"
# Require network access
"test_infer_graph_endpoint"
"test_infer_path_based_routing"
@@ -1,57 +1,96 @@
{
lib,
buildPythonPackage,
fetchPypi,
poetry-core,
numpy,
pydantic,
fetchFromGitHub,
# build-system
setuptools,
# dependencies
jsonschema,
numpy,
opencv-python-headless,
sentencepiece,
typing-extensions,
tiktoken,
pillow,
pydantic,
pydantic-extra-types,
requests,
sentencepiece,
tiktoken,
typing-extensions,
# tests
click,
fastapi,
huggingface-hub,
openai,
pycountry,
pydantic-settings,
pytestCheckHook,
soundfile,
soxr,
uvicorn,
}:
buildPythonPackage rec {
pname = "mistral-common";
version = "1.8.3";
version = "1.8.4";
pyproject = true;
src = fetchPypi {
pname = "mistral_common";
inherit version;
hash = "sha256-DRl52CIntiX21xs8goF28FnajQ9aMwfN9TtIQJo5cKQ=";
src = fetchFromGitHub {
owner = "mistralai";
repo = "mistral-common";
tag = "v${version}";
hash = "sha256-HB6dsqiDSLhjyANk7ZT/cU98mjJamegAF0uKH8GfgM8=";
};
pythonRelaxDeps = [
"pillow"
"tiktoken"
];
build-system = [ poetry-core ];
build-system = [ setuptools ];
dependencies = [
numpy
pydantic
jsonschema
numpy
opencv-python-headless
sentencepiece
typing-extensions
tiktoken
pillow
pydantic
pydantic-extra-types
requests
sentencepiece
tiktoken
typing-extensions
];
doCheck = true;
pythonImportsCheck = [ "mistral_common" ];
meta = with lib; {
nativeCheckInputs = [
click
fastapi
huggingface-hub
openai
pycountry
pydantic-settings
pytestCheckHook
soundfile
soxr
uvicorn
];
disabledTests = [
# Require internet
"test_download_gated_image"
"test_image_encoder_formats"
"test_image_processing"
# AssertionError: Regex pattern did not match.
"test_from_url"
# AssertionError, Extra items in the right set
"test_openai_chat_fields"
];
meta = {
description = "Tools to help you work with Mistral models";
homepage = "https://github.com/mistralai/mistral-common";
license = licenses.asl20;
maintainers = with maintainers; [ bgamari ];
changelog = "https://github.com/mistralai/mistral-common/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ bgamari ];
};
}
@@ -0,0 +1,61 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
rustPlatform,
# dependencies
pydantic,
# optional-dependencies
fastapi,
uvicorn,
}:
buildPythonPackage rec {
pname = "openai-harmony";
version = "0.0.4";
pyproject = true;
src = fetchFromGitHub {
owner = "openai";
repo = "harmony";
rev = "v${version}";
hash = "sha256-2LOrMLrNR1D3isbjiv5w+1Ni9IMwMEPPTOnG1rm//ag=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-tQq6PFMYghIfJu8CddbXFKXxr41GJaElbCCQuSpnaqk=";
};
nativeBuildInputs = [
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
];
dependencies = [
pydantic
];
optional-dependencies = {
demo = [
fastapi
uvicorn
];
};
pythonImportsCheck = [ "openai_harmony" ];
# Tests require internet access
doCheck = false;
meta = {
description = "Renderer for the harmony response format to be used with gpt-oss";
homepage = "https://github.com/openai/harmony";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
}
@@ -1,18 +0,0 @@
--- a/setup.py
+++ b/setup.py
@@ -340,14 +340,7 @@ def _is_hpu() -> bool:
out = subprocess.run(["hl-smi"], capture_output=True, check=True)
is_hpu_available = out.returncode == 0
except (FileNotFoundError, PermissionError, subprocess.CalledProcessError):
- if sys.platform.startswith("linux"):
- try:
- output = subprocess.check_output(
- 'lsmod | grep habanalabs | wc -l', shell=True)
- is_hpu_available = int(output) > 0
- except (ValueError, FileNotFoundError, PermissionError,
- subprocess.CalledProcessError):
- pass
+ is_hpu_available = False
return is_hpu_available
@@ -1,25 +1,12 @@
From 7511784ceb9252091a9d63ac6b54dcc67dd2b262 Mon Sep 17 00:00:00 2001
From: Conroy Cheers <conroy@corncheese.org>
Date: Fri, 13 Jun 2025 17:42:10 +1000
Subject: [PATCH] drop intel reqs
---
requirements/cpu.txt | 3 ---
1 file changed, 3 deletions(-)
diff --git a/requirements/cpu.txt b/requirements/cpu.txt
index d7b0fc6d8..be2df751b 100644
index d80354342..7434f32f0 100644
--- a/requirements/cpu.txt
+++ b/requirements/cpu.txt
@@ -24,8 +24,5 @@ datasets # for benchmark scripts
# cpu cannot use triton 3.3.0
triton==3.2.0; platform_machine == "x86_64"
@@ -21,7 +21,4 @@ torchvision; platform_machine != "ppc64le" and platform_machine != "s390x"
torchvision==0.22.0; platform_machine == "ppc64le"
datasets # for benchmark scripts
-# Intel Extension for PyTorch, only for x86_64 CPUs
-intel-openmp==2024.2.1; platform_machine == "x86_64"
-intel_extension_for_pytorch==2.7.0; platform_machine == "x86_64"
py-libnuma; platform_system != "Darwin"
psutil; platform_system != "Darwin"
--
2.49.0
-intel_extension_for_pytorch==2.6.0; platform_machine == "x86_64" # torch>2.6.0+cpu has performance regression on x86 platform, see https://github.com/pytorch/pytorch/pull/151218
triton==3.2.0; platform_machine == "x86_64" # Triton is required for torch 2.6+cpu, as it is imported in torch.compile.
@@ -5,7 +5,6 @@
buildPythonPackage,
pythonAtLeast,
fetchFromGitHub,
fetchpatch,
symlinkJoin,
autoAddDriverRunpath,
@@ -45,6 +44,8 @@
lm-format-enforcer,
prometheus-fastapi-instrumentator,
cupy,
cbor2,
pybase64,
gguf,
einops,
importlib-metadata,
@@ -69,6 +70,8 @@
bitsandbytes,
flashinfer,
py-libnuma,
setproctitle,
openai-harmony,
# internal dependency - for overriding in overlays
vllm-flash-attn ? null,
@@ -92,13 +95,13 @@ let
shouldUsePkg =
pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null;
# see CMakeLists.txt, grepping for GIT_TAG near cutlass
# see CMakeLists.txt, grepping for CUTLASS_REVISION
# https://github.com/vllm-project/vllm/blob/v${version}/CMakeLists.txt
cutlass = fetchFromGitHub {
owner = "NVIDIA";
repo = "cutlass";
tag = "v3.9.2";
hash = "sha256-teziPNA9csYvhkG5t2ht8W8x5+1YGGbHm8VKx4JoxgI=";
tag = "v4.0.0";
hash = "sha256-HJY+Go1viPkSVZPEs/NyMtYJzas4mMLiIZF3kNX+WgA=";
};
flashmla = stdenv.mkDerivation {
@@ -111,8 +114,8 @@ let
src = fetchFromGitHub {
owner = "vllm-project";
repo = "FlashMLA";
rev = "575f7724b9762f265bbee5889df9c7d630801845";
hash = "sha256-8WrKMl0olr0nYV4FRJfwSaJ0F5gWQpssoFMjr9tbHBk=";
rev = "0e43e774597682284358ff2c54530757b654b8d1";
hash = "sha256-wxL/jtq/lsLg1o+4392KNgfw5TYlW6lqEVbmR3Jl4/Q=";
};
dontConfigure = true;
@@ -138,8 +141,8 @@ let
src = fetchFromGitHub {
owner = "vllm-project";
repo = "flash-attention";
rev = "8798f27777fb57f447070301bf33a9f9c607f491";
hash = "sha256-UTUvATGN1NU/Bc8qo078q6bEgILLmlrjL7Yk2iAJhg4=";
rev = "57b4e68b9f9d94750b46de8f8dbd2bfcc86edd4f";
hash = "sha256-c7L7WZVVEnXMOTPBoSp7jhkl9d4TA4sj11QvOSWTDIE=";
};
dontConfigure = true;
@@ -161,7 +164,7 @@ let
cpuSupport = !cudaSupport && !rocmSupport;
# https://github.com/pytorch/pytorch/blob/v2.7.0/torch/utils/cpp_extension.py#L2343-L2345
# https://github.com/pytorch/pytorch/blob/v2.7.1/torch/utils/cpp_extension.py#L2343-L2345
supportedTorchCudaCapabilities =
let
real = [
@@ -231,6 +234,7 @@ let
libcusolver # cusolverDn.h
cuda_nvtx
cuda_nvrtc
# cusparselt # cusparseLt.h
libcublas
];
@@ -247,7 +251,7 @@ in
buildPythonPackage rec {
pname = "vllm";
version = "0.9.1";
version = "0.10.1.1";
pyproject = true;
# https://github.com/vllm-project/vllm/issues/12083
@@ -259,23 +263,12 @@ buildPythonPackage rec {
owner = "vllm-project";
repo = "vllm";
tag = "v${version}";
hash = "sha256-sp7rDpewTPXTVRBJHJMj+8pJDS6wAu0/OTJZwbPPqKc=";
hash = "sha256-lLNjBv5baER0AArX3IV4HWjDZ2jTGXyGIvnHupR8MGM=";
};
patches = [
(fetchpatch {
name = "remove-unused-opentelemetry-semantic-conventions-ai-dep.patch";
url = "https://github.com/vllm-project/vllm/commit/6a5d7e45f52c3a13de43b8b4fa9033e3b342ebd2.patch";
hash = "sha256-KYthqu+6XwsYYd80PtfrMMjuRV9+ionccr7EbjE4jJE=";
})
(fetchpatch {
name = "fall-back-to-gloo-when-nccl-unavailable.patch";
url = "https://github.com/vllm-project/vllm/commit/aa131a94410683b0a02e74fed2ce95e6c2b6b030.patch";
hash = "sha256-jNlQZQ8xiW85JWyBjsPZ6FoRQsiG1J8bwzmQjnaWFBg=";
})
./0002-setup.py-nix-support-respect-cmakeFlags.patch
./0003-propagate-pythonpath.patch
./0004-drop-lsmod.patch
./0005-drop-intel-reqs.patch
];
@@ -354,6 +347,7 @@ buildPythonPackage rec {
aioprometheus
blake3
cachetools
cbor2
depyf
fastapi
llguidance
@@ -366,6 +360,7 @@ buildPythonPackage rec {
prometheus-fastapi-instrumentator
py-cpuinfo
pyarrow
pybase64
pydantic
python-json-logger
python-multipart
@@ -393,6 +388,8 @@ buildPythonPackage rec {
opentelemetry-api
opentelemetry-exporter-otlp
bitsandbytes
setproctitle
openai-harmony
# vLLM needs Torch's compiler to be present in order to use torch.compile
torch.stdenv.cc
]
@@ -476,8 +473,5 @@ buildPythonPackage rec {
# find_isa
"x86_64-darwin"
];
# ValueError: 'aimv2' is already used by a Transformers config, pick another name.
# Version bump ongoing in https://github.com/NixOS/nixpkgs/pull/429117
broken = true;
};
}
+2
View File
@@ -10797,6 +10797,8 @@ self: super: with self; {
openai-agents = callPackage ../development/python-modules/openai-agents { };
openai-harmony = callPackage ../development/python-modules/openai-harmony { };
openai-whisper = callPackage ../development/python-modules/openai-whisper { };
openaiauth = callPackage ../development/python-modules/openaiauth { };