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

This commit is contained in:
Peder Bergebakken Sundt
2025-01-26 16:52:14 +01:00
committed by GitHub
4 changed files with 11 additions and 47 deletions
@@ -1,17 +0,0 @@
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):
@@ -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 ];
};
@@ -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 ];
@@ -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;