You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After installing cuda-core==0.6.0 + cuda-bindings==13.1.1 (latest on PyPI, conda-forge, and the NVIDIA conda channel), CUDA_BINDINGS_NVML_IS_COMPATIBLE is always False and Device is never exported from cuda.core.system.
Tracing through the source: _system.pyx in the 0.6.0 tag checks _BINDINGS_VERSION >= (13, 1, 2), but cuda-bindings 13.1.2 was never published — PR #1404 bumped the source version to unblock cuda-core development, and issue #1521 (the actual release) was closed as not_planned. So every user of cuda-core==0.6.0 gets Device silently unavailable.
Additionally, five symbols are missing from _nvml 13.1.1 that _device.pyx / _fan.pxi / _event.pxi / _system_events.pyx alias at import time: DeviceArch, FieldId, ClocksEventReasons, EventType, FanControlPolicy, SystemEventType.
I was able to find a work around by creating a cuda/bindings/nvml.py re-exporting _nvml with the six missing stubs and patching_version.py to report 13.1.2:
Unfortunately, this is working as designed, and is an unfortunate fallout from our staggered release process. While it's nice to know that patching works, there is no guarantee that it's working correctly -- there are other fixes on cuda_bindings main that are required to make cuda.core.system pass its tests.
I suggest just waiting for the next cuda_bindings release (which will probably be 13.2 at this point).
@leofang I was building a GPU monitoring tool and looking for a higher-level API to replace pynvml (nvidia-ml-py) calls.
While browsing the cuda.core docs, I found cuda.core.system.Device (and the 0.6.0 release notes confirmed it as a new NVML-based device query API), which could access sensor data.
However, the system Device wasn't importable at runtime despite the docs, so I used Claude to investigate, and that is how I found _system.pyx, the linked PR and issue, and eventually cuda.bindings.nvml.
Activity
mdboom commentedon Mar 4, 2026
Unfortunately, this is working as designed, and is an unfortunate fallout from our staggered release process. While it's nice to know that patching works, there is no guarantee that it's working correctly -- there are other fixes on
cuda_bindingsmain that are required to makecuda.core.systempass its tests.I suggest just waiting for the next
cuda_bindingsrelease (which will probably be 13.2 at this point).Pedrexus commentedon Mar 5, 2026
got it. I will wait for the next release then and use the patch for now. Thanks for the response.
leofang commentedon Mar 5, 2026
@Pedrexus For our curiosity, how did you notice that we're preparing for a pynvml replacement?
Pedrexus commentedon Mar 5, 2026
@leofang I was building a GPU monitoring tool and looking for a higher-level API to replace pynvml (nvidia-ml-py) calls.
While browsing the
cuda.coredocs, I foundcuda.core.system.Device(and the0.6.0release notes confirmed it as a new NVML-based device query API), which could access sensor data.However, the system
Devicewasn't importable at runtime despite the docs, so I used Claude to investigate, and that is how I found_system.pyx, the linked PR and issue, and eventuallycuda.bindings.nvml.