6
6
class System :
7
7
"""Represent the system and provide information about the CUDA environment."""
8
8
9
- _instance = None
10
- _driver_version = None
11
- _devices = None
12
-
13
9
def __new__ (cls ):
14
10
if not cls ._instance :
15
11
cls ._instance = super (System , cls ).__new__ (cls )
@@ -24,13 +20,12 @@ def driver_version(self) -> Tuple[int, int]:
24
20
"""Query the CUDA driver version.
25
21
26
22
Returns:
27
- namedtuple : a 2-tuple of (major, minor).
23
+ tuple : a 2-tuple of (major, minor).
28
24
"""
29
- if self ._driver_version is None :
30
- version = handle_return (cuda .cuDriverGetVersion ())
31
- major = version // 1000
32
- minor = (version % 1000 ) // 10
33
- self ._driver_version = (major , minor )
25
+ version = handle_return (cuda .cuDriverGetVersion ())
26
+ major = version // 1000
27
+ minor = (version % 1000 ) // 10
28
+ self ._driver_version = (major , minor )
34
29
return self ._driver_version
35
30
36
31
@property
@@ -41,9 +36,8 @@ def num_devices(self) -> int:
41
36
@property
42
37
def devices (self ) -> tuple :
43
38
"""Query the available device instances."""
44
- if self ._devices is None :
45
- total = self .num_devices
46
- self ._devices = tuple (Device (device_id ) for device_id in range (total ))
39
+ total = self .num_devices
40
+ self ._devices = tuple (Device (device_id ) for device_id in range (total ))
47
41
return self ._devices
48
42
49
43
_system = System .__new__ (System )
0 commit comments