80 'cuda_runtime_available':
False,
81 'cuda_device_count': 0,
87 result = subprocess.run(
88 [
"nvidia-smi",
"--query-gpu=count",
"--format=csv,noheader,nounits"],
89 capture_output=
True, text=
True, timeout=10
91 if result.returncode == 0:
92 device_count = len(result.stdout.strip().split(
'\n'))
94 cuda_info[
'cuda_device_count'] = device_count
95 cuda_info[
'cuda_runtime_available'] =
True
96 logger.debug(f
"nvidia-smi detected {device_count} GPU(s)")
100 version_result = subprocess.run(
101 [
"nvidia-smi",
"--query-gpu=driver_version",
"--format=csv,noheader,nounits"],
102 capture_output=
True, text=
True, timeout=5
104 if version_result.returncode == 0:
105 cuda_info[
'cuda_version'] = version_result.stdout.strip().split(
'\n')[0]
110 except (FileNotFoundError, subprocess.TimeoutExpired):
111 logger.debug(
"nvidia-smi not available")
116 import pycuda.driver
as cuda
117 import pycuda.autoinit
120 device_count = cuda.Device.count()
123 cuda_info[
'cuda_device_count'] = device_count
124 cuda_info[
'cuda_runtime_available'] =
True
128 cuda_info[
'cuda_version'] =
".".join(map(str, cuda.get_version()))
132 logger.debug(f
"PyCUDA detected {device_count} GPU(s)")
136 logger.debug(
"PyCUDA not available")
137 except Exception
as e:
138 logger.debug(f
"PyCUDA initialization failed: {e}")
144 device_count = pynvml.nvmlDeviceGetCount()
147 cuda_info[
'cuda_device_count'] = device_count
148 cuda_info[
'cuda_runtime_available'] =
True
152 handle = pynvml.nvmlDeviceGetHandleByIndex(0)
153 cuda_info[
'cuda_version'] = pynvml.nvmlSystemGetDriverVersion().decode(
'utf-8')
157 logger.debug(f
"pynvml detected {device_count} GPU(s)")
161 logger.debug(
"pynvml not available")
162 except Exception
as e:
163 logger.debug(f
"pynvml initialization failed: {e}")
166 if platform.system() ==
"Linux":
169 nvidia_devices = [f
for f
in os.listdir(
"/dev")
if f.startswith(
"nvidia")
and f !=
"nvidiactl"]
171 cuda_info[
'cuda_device_count'] = len(nvidia_devices)
172 cuda_info[
'cuda_runtime_available'] =
True
173 logger.debug(f
"Found {len(nvidia_devices)} NVIDIA device files in /dev")
178 logger.debug(
"No CUDA runtime capability detected")