common
zeus.device.soc.common
Error wrappers and classes common to all SoC devices.
ZeusSoCInitError
Bases: ZeusBaseSoCError
Import error for SoC initialization failures.
Source code in zeus/device/soc/common.py
11 12 13 14 15 16 |
|
__init__
__init__(message)
Source code in zeus/device/soc/common.py
14 15 16 |
|
SoCMeasurement
dataclass
Bases: ABC
Represents energy consumption metrics of various subsystems on a SoC processor.
Since subsystems available on a SoC processor are highly variable, the fields of this dataclass are entirely up to each derived class.
Fields available and implemented for a specific SoC processor architecture can be
found by referring to the SoCMeasurement derived class corresponding to that
particular architecture (e.g., AppleSiliconMeasurement
for Apple silicon),
or by simply printing an instance of that derived class.
Units: mJ
Source code in zeus/device/soc/common.py
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
|
__str__
abstractmethod
__str__()
Show all fields and their observed values in the measurement object.
Source code in zeus/device/soc/common.py
34 35 36 37 |
|
__sub__
abstractmethod
__sub__(other)
Produce a single measurement object containing differences across all fields.
Source code in zeus/device/soc/common.py
39 40 41 42 |
|
zeroAllFields
abstractmethod
zeroAllFields()
Set the value of all fields in the measurement object to zero.
Source code in zeus/device/soc/common.py
44 45 46 47 |
|
SoC
Bases: ABC
An abstract base class for monitoring the energy consumption of a monolithic SoC processor.
This class will be utilized by ZeusMonitor.
Source code in zeus/device/soc/common.py
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
|
__init__
__init__()
If a derived class implementation intends to rely on this base class's implementation of
beginWindow
and endWindow
, it must invoke this constructor in its own. Otherwise, if
it will override both of those methods, it can skip invoking this.
Source code in zeus/device/soc/common.py
56 57 58 59 60 61 62 63 |
|
getAvailableMetrics
abstractmethod
getAvailableMetrics()
Return a set of all observable metrics on the current processor.
Source code in zeus/device/soc/common.py
65 66 67 68 |
|
isPresent
abstractmethod
isPresent()
Return if an SoC is present on the current device.
This should be true for all derived classes of the SoC
manager except EmptySoC
.
Source code in zeus/device/soc/common.py
70 71 72 73 74 75 76 |
|
getTotalEnergyConsumption
abstractmethod
getTotalEnergyConsumption()
Returns the total energy consumption of the SoC.
The measurement should be cumulative; different calls to this function throughout
the lifetime of a single SoC
manager object should count from a fixed arbitrary
point in time.
Units: mJ.
Source code in zeus/device/soc/common.py
78 79 80 81 82 83 84 85 86 87 88 |
|
beginWindow
beginWindow(key)
Begin a measurement interval labeled with key
.
Source code in zeus/device/soc/common.py
90 91 92 93 94 95 |
|
endWindow
endWindow(key)
End a measurement window and return the energy consumption. Units: mJ.
Source code in zeus/device/soc/common.py
97 98 99 100 101 102 103 104 105 106 |
|
EmptySoC
Bases: SoC
Empty SoC management object to be used when SoC management object is unavailable.
Source code in zeus/device/soc/common.py
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
|
__init__
__init__()
Source code in zeus/device/soc/common.py
112 113 114 |
|
getAvailableMetrics
getAvailableMetrics()
Return a set of all observable metrics on the current processor.
Source code in zeus/device/soc/common.py
116 117 118 |
|
isPresent
isPresent()
Return if an SoC is present on the current device.
This should be true for all derived classes of the SoC manager except EmptySoC
.
Source code in zeus/device/soc/common.py
120 121 122 123 124 125 |
|
getTotalEnergyConsumption
getTotalEnergyConsumption()
Returns the total energy consumption of the SoC.
The measurement should be cumulative, with different calls to this function all counting from a fixed arbitrary point in time.
Units: mJ.
Source code in zeus/device/soc/common.py
127 128 129 130 131 132 133 134 135 |
|
beginWindow
beginWindow(key)
Begin a measurement interval labeled with key
.
Source code in zeus/device/soc/common.py
137 138 139 |
|
endWindow
endWindow(key)
End a measurement window and return the energy consumption. Units: mJ.
Source code in zeus/device/soc/common.py
141 142 143 |
|