Source code for schrodinger.gpgpu
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
"""schrodinger::gpgpu C++ wrappers"""
from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
def swig_import_helper():
import importlib
pkg = __name__.rpartition('.')[0]
mname = '.'.join((pkg, '_gpgpu')).lstrip('.')
try:
return importlib.import_module(mname)
except ImportError:
return importlib.import_module('_gpgpu')
_gpgpu = swig_import_helper()
del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
def swig_import_helper():
from os.path import dirname
import imp
fp = None
try:
fp, pathname, description = imp.find_module('_gpgpu', [dirname(__file__)])
except ImportError:
import _gpgpu
return _gpgpu
try:
_mod = imp.load_module('_gpgpu', fp, pathname, description)
finally:
if fp is not None:
fp.close()
return _mod
_gpgpu = swig_import_helper()
del swig_import_helper
else:
import _gpgpu
# pull in all the attributes from _gpgpu
if __name__.rpartition('.')[0] != '':
if _swig_python_version_info >= (2, 7, 0):
try:
from ._gpgpu import *
except ImportError:
from _gpgpu import *
else:
from _gpgpu import *
else:
from _gpgpu import *
del _swig_python_version_info
try:
_swig_property = property
except NameError:
pass # Python < 2.2 doesn't have 'property'.
try:
import builtins as __builtin__
except ImportError:
import __builtin__
def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
if (name == "thisown"):
return self.this.own(value)
if (name == "this"):
if type(value).__name__ == 'SwigPyObject':
self.__dict__[name] = value
return
method = class_type.__swig_setmethods__.get(name, None)
if method:
return method(self, value)
if (not static):
object.__setattr__(self, name, value)
else:
raise AttributeError("You cannot add attributes to %s" % self)
def _swig_setattr(self, class_type, name, value):
return _swig_setattr_nondynamic(self, class_type, name, value, 0)
def _swig_getattr(self, class_type, name):
if (name == "thisown"):
return self.this.own()
method = class_type.__swig_getmethods__.get(name, None)
if method:
return method(self)
raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
def _swig_repr(self):
try:
strthis = "proxy of " + self.this.__repr__()
except __builtin__.Exception:
strthis = ""
return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
def _swig_setattr_nondynamic_method(set):
def set_attr(self, name, value):
if (name == "thisown"):
return self.this.own(value)
if hasattr(self, name) or (name == "this"):
set(self, name, value)
else:
raise AttributeError("You cannot add attributes to %s" % self)
return set_attr
try:
import weakref
weakref_proxy = weakref.proxy
except __builtin__.Exception:
weakref_proxy = lambda x: x
import os
import distro
from schrodinger.utils import mmutil
from schrodinger import in_dev_env
[docs]def verify_cuda_runtime():
"""
Check that we can run cuda programs.
:raise: RuntimeError if we can not find a usable GPU.
"""
if is_nvml_driver_supported():
return
try:
verify_any_gpu_available()
except RuntimeError as e:
msg = str(e)
if distro.id() == "centos" and in_dev_env():
if "SCHRODINGER_JOBID" in os.environ and mmutil.feature_flag_is_enabled(mmutil.JOB_SERVER):
msg += " If you are executing this from a chroot/docker container, you should run $SCHRODINGER/jsc local-server-shutdown inside the chroot/container and run $SCHRODINGER/jsc local-server-start from outside chroot/container."
else:
msg += " If you are executing this from a chroot/docker container, you should execute from outside."
raise RuntimeError(msg)
minimum_driver = get_minimum_nvml_driver()
raise RuntimeError(f"Unsupported CUDA driver, version {minimum_driver} or "
"later is required. Please check your driver installation.")
__all__ = [e for e in dir() if not e.startswith(('_', 'Swig', 'SWIG'))]