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 |
|
__sub__
abstractmethod
__sub__(other)
Produce a single measurement object containing differences across all fields.
Source code in zeus/device/soc/common.py
34 35 36 37 |
|
zeroAllFields
abstractmethod
zeroAllFields()
Set the value of all fields in the measurement object to zero.
Source code in zeus/device/soc/common.py
39 40 41 42 |
|
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
45 46 47 48 49 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 |
|
__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
51 52 53 54 55 56 57 58 |
|
getAvailableMetrics
abstractmethod
getAvailableMetrics()
Return a set of all observable metrics on the current processor.
Source code in zeus/device/soc/common.py
60 61 62 63 |
|
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
65 66 67 68 69 70 71 72 73 74 75 |
|
beginWindow
beginWindow(key)
Begin a measurement interval labeled with key
.
Source code in zeus/device/soc/common.py
77 78 79 80 81 82 |
|
endWindow
endWindow(key)
End a measurement window and return the energy consumption. Units: mJ.
Source code in zeus/device/soc/common.py
84 85 86 87 88 89 90 91 92 93 |
|
EmptySoC
Bases: SoC
Empty SoC management object to be used when SoC management object is unavailable.
Source code in zeus/device/soc/common.py
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
|
__init__
__init__()
Source code in zeus/device/soc/common.py
99 100 101 |
|
getAvailableMetrics
getAvailableMetrics()
Return a set of all observable metrics on the current processor.
Source code in zeus/device/soc/common.py
103 104 105 |
|
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
107 108 109 110 111 112 113 114 115 |
|
beginWindow
beginWindow(key)
Begin a measurement interval labeled with key
.
Source code in zeus/device/soc/common.py
117 118 119 |
|
endWindow
endWindow(key)
End a measurement window and return the energy consumption. Units: mJ.
Source code in zeus/device/soc/common.py
121 122 123 |
|