Unverified Commit 1af4a236 authored by Peder Bergebakken Sundt's avatar Peder Bergebakken Sundt Committed by GitHub
Browse files

python312Packages.pynvml: 11.5.3 -> 12.0.0 (#375418)

parents a23b4c41 423e6480
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
diff --git a/pynvml/nvml.py b/pynvml/nvml.py
index 56d908f..1de0b97 100644
--- a/pynvml/nvml.py
+++ b/pynvml/nvml.py
@@ -1475,7 +1475,11 @@ def _LoadNvmlLibrary():
                             nvmlLib = CDLL(os.path.join(os.getenv("ProgramFiles", "C:/Program Files"), "NVIDIA Corporation/NVSMI/nvml.dll"))
                     else:
                         # assume linux
-                        nvmlLib = CDLL("libnvidia-ml.so.1")
+                        try:
+                            nvmlLib = CDLL("libnvidia-ml.so.1")
+                        except OSError:
+                            # assume NixOS
+                            nvmlLib = CDLL("@driverLink@/lib/libnvidia-ml.so.1")
                 except OSError as ose:
                     _nvmlCheckReturn(NVML_ERROR_LIBRARY_NOT_FOUND)
                 if (nvmlLib == None):
+11 −26
Original line number Diff line number Diff line
@@ -3,63 +3,48 @@
  buildPythonPackage,
  cudaPackages,
  fetchFromGitHub,
  substituteAll,
  addDriverRunpath,
  setuptools,
  pytestCheckHook,
  versioneer,
  nvidia-ml-py,
  pynvml,
}:

buildPythonPackage rec {
  pname = "pynvml";
  version = "11.5.3";
  version = "12.0.0";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "gpuopenanalytics";
    repo = "pynvml";
    tag = version;
    hash = "sha256-8NkYBRpcW3dvxVc6z17TMRPqA0YK/J/CdjuqgdcTdy8=";
    hash = "sha256-bfES6QqL9DO7rmQ3btXxVzW0KlL0eHyUvYJVeijymBk=";
  };

  patches = [
    (substituteAll {
      src = ./0001-locate-libnvidia-ml.so.1-on-NixOS.patch;
      inherit (addDriverRunpath) driverLink;
    })
  ];

  # unvendor versioneer
  postPatch = ''
    rm versioneer.py
  '';

  build-system = [
    setuptools
    versioneer
  ];

  dependencies = [ nvidia-ml-py ];

  pythonImportsCheck = [
    "pynvml"
    "pynvml.smi"
    "pynvml_utils"
  ];

  nativeCheckInputs = [ pytestCheckHook ];

  # OSError: /run/opengl-driver/lib/libnvidia-ml.so.1: cannot open shared object file: No such file or directory
  doCheck = false;

  passthru.tests.tester-nvmlInit = cudaPackages.writeGpuTestPython { libraries = [ pynvml ]; } ''
    import pynvml
    from pynvml.smi import nvidia_smi  # noqa: F401

    print(f"{pynvml.nvmlInit()=}")
    from pynvml_utils import nvidia_smi  # noqa: F401
    nvsmi = nvidia_smi.getInstance()
    print(nvsmi.DeviceQuery('memory.free, memory.total'))
  '';

  meta = {
    description = "Python bindings for the NVIDIA Management Library";
    description = "Unofficial Python bindings for the NVIDIA Management Library";
    homepage = "https://github.com/gpuopenanalytics/pynvml";
    changelog = "https://github.com/gpuopenanalytics/pynvml?tab=readme-ov-file#release-notes";
    license = lib.licenses.bsd3;
    maintainers = [ lib.maintainers.bcdarwin ];
  };
+0 −2
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@
  nvidia-ml-py,
  psutil,
  pydantic,
  pynvml,
  pytestCheckHook,
  pythonOlder,
  rich,
@@ -75,7 +74,6 @@ buildPythonPackage rec {
    numpy
    psutil
    pydantic
    pynvml
    rich
  ] ++ lib.optionals stdenv.hostPlatform.isLinux [ nvidia-ml-py ];

+0 −2
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@
  uvicorn,
  pydantic,
  aioprometheus,
  pynvml,
  openai,
  pyzmq,
  tiktoken,
@@ -149,7 +148,6 @@ buildPythonPackage rec {
    ++ aioprometheus.optional-dependencies.starlette
    ++ lib.optionals cudaSupport [
      cupy
      pynvml
    ];

  dontUseCmakeConfigure = true;