Unverified Commit 6cac901e authored by Yt's avatar Yt Committed by GitHub
Browse files

Merge pull request #326145 from cfhammill/fix-vllm

python3Packages.vllm: relax deps, add cuda stdenv
parents 45aa2e2c 23beb40a
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  buildPythonPackage,
  fetchFromGitHub,
  which,
@@ -35,6 +36,10 @@
  gpuTargets ? [ ],
}:

let
  stdenv_pkg = stdenv;
in

buildPythonPackage rec {
  pname = "vllm";
  version = "0.3.3";
@@ -52,25 +57,24 @@ buildPythonPackage rec {
    lib.strings.concatStringsSep ";" rocmPackages.clr.gpuTargets
  );

  # xformers 0.0.23.post1 github release specifies its version as 0.0.24
  #
  # cupy-cuda12x is the same wheel as cupy, but built with cuda dependencies, we already have it set up
  # like that in nixpkgs. Version upgrade is due to upstream shenanigans
  # https://github.com/vllm-project/vllm/pull/2845/commits/34a0ad7f9bb7880c0daa2992d700df3e01e91363
  #
  # hipcc --version works badly on NixOS due to unresolved paths.
  # Unclear why pythonRelaxDeps doesn't work here, but on last attempt, it didn't.
  postPatch =
    ''
      substituteInPlace requirements.txt \
        --replace "xformers == 0.0.23.post1" "xformers == 0.0.24"
        --replace "xformers == 0.0.23.post1" "xformers"
      substituteInPlace requirements.txt \
        --replace "cupy-cuda12x == 12.1.0" "cupy == 12.3.0"
        --replace "cupy-cuda12x == 12.1.0" "cupy"
      substituteInPlace requirements-build.txt \
        --replace "torch==2.1.2" "torch == 2.2.1"
        --replace "torch==2.1.2" "torch"
      substituteInPlace pyproject.toml \
        --replace "torch == 2.1.2" "torch == 2.2.1"
        --replace "torch == 2.1.2" "torch"
      substituteInPlace requirements.txt \
        --replace "torch == 2.1.2" "torch == 2.2.1"
        --replace "torch == 2.1.2" "torch"
    ''
    + lib.optionalString rocmSupport ''
      substituteInPlace setup.py \
@@ -141,6 +145,8 @@ buildPythonPackage rec {
      cupy
    ];

  stdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv_pkg;

  pythonImportsCheck = [ "vllm" ];

  meta = with lib; {