Skip to content

Commit c189912

Browse files
code cleanup
1 parent 151facd commit c189912

File tree

1 file changed

+11
-20
lines changed

1 file changed

+11
-20
lines changed

nipype/utils/gpu_count.py

+11-20
Original file line numberDiff line numberDiff line change
@@ -25,31 +25,22 @@
2525

2626
import platform
2727
import shutil
28-
from subprocess import Popen, PIPE
28+
import subprocess
2929
import os
3030

3131

3232
def gpu_count():
33+
nvidia_smi = shutil.which('nvidia-smi')
34+
if nvidia_smi is None and platform.system() == "Windows":
35+
nvidia_smi = f'{os.environ["systemdrive"]}\\Program Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe'
36+
if nvidia_smi is None:
37+
return 0
3338
try:
34-
if platform.system() == "Windows":
35-
nvidia_smi = shutil.which('nvidia-smi')
36-
if nvidia_smi is None:
37-
nvidia_smi = (
38-
"%s\\Program Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe"
39-
% os.environ['systemdrive']
40-
)
41-
else:
42-
nvidia_smi = "nvidia-smi"
43-
44-
p = Popen(
39+
p = subprocess.run(
4540
[nvidia_smi, "--query-gpu=name", "--format=csv,noheader,nounits"],
46-
stdout=PIPE,
41+
stdout=subprocess.PIPE,
42+
text=True,
4743
)
48-
stdout, stderror = p.communicate()
49-
50-
output = stdout.decode('UTF-8')
51-
lines = output.split(os.linesep)
52-
num_devices = len(lines) - 1
53-
return num_devices
54-
except:
44+
except (OSError, UnicodeDecodeError):
5545
return 0
46+
return len(p.stdout.splitlines())

0 commit comments

Comments
 (0)