Source code for schrodinger.infra.gpgpu_utils
from schrodinger import gpgpu
from schrodinger.infra import mm
from schrodinger.infra import mmjob
[docs]def get_local_gpgpus():
"""
Detect local GPUs via schrodinger.gpgpu
:return: list of tuple of local gpgpu device number and description
:rtype: list(tuple(dev_num, desc))
"""
local_gpulist = []
for device in gpgpu.get_available_devices():
num, desc = device.description().split(": ", 1)
local_gpulist.append((num, desc))
return local_gpulist
[docs]def get_remote_gpgpus(host):
"""
Return a list of GPGPUs belonging to the specified host.
:param host: name of host matching a name from the host file
:type host: str
:return: list of tuple of gpgpu device number and description
:rtype: list(tuple(dev_num, desc))
"""
gpgpu_list = []
try:
gpgpu_count = mmjob.mmjob_host_gpgpu_length(host)
except mm.MmException:
return []
for card_idx in range(1, gpgpu_count + 1):
gpgpu_list.append(mmjob.mmjob_host_gpgpu_item(host, card_idx))
return gpgpu_list