habana-pyhlml 1.21.4.3__py3-none-any.whl → 1.22.1.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of habana-pyhlml might be problematic. Click here for more details.

@@ -0,0 +1,268 @@
1
+ import ctypes
2
+ from enum import IntEnum
3
+
4
+ # Typedefs
5
+
6
+ class HLML_AFFINITY_SCOPE_T:
7
+ TYPE = ctypes.c_uint
8
+
9
+ class HLML_DEVICE_T:
10
+ TYPE = ctypes.c_void_p
11
+
12
+ class HLML_EVENT_SET_T:
13
+ TYPE = ctypes.c_void_p
14
+
15
+
16
+ # Enums
17
+
18
+ class HLML_RETURN(IntEnum):
19
+ HLML_SUCCESS = 0
20
+ HLML_ERROR_UNINITIALIZED = 1
21
+ HLML_ERROR_INVALID_ARGUMENT = 2
22
+ HLML_ERROR_NOT_SUPPORTED = 3
23
+ HLML_ERROR_ALREADY_INITIALIZED = 5
24
+ HLML_ERROR_NOT_FOUND = 6
25
+ HLML_ERROR_INSUFFICIENT_SIZE = 7
26
+ HLML_ERROR_DRIVER_NOT_LOADED = 9
27
+ HLML_ERROR_TIMEOUT = 10
28
+ HLML_ERROR_AIP_IS_LOST = 15
29
+ HLML_ERROR_MEMORY = 20
30
+ HLML_ERROR_NO_DATA = 21
31
+ HLML_ERROR_UNKNOWN = 49
32
+
33
+ class HLML_CLOCK_TYPE(IntEnum):
34
+ HLML_CLOCK_SOC = 0
35
+ HLML_CLOCK_IC = 1
36
+ HLML_CLOCK_MME = 2
37
+ HLML_CLOCK_TPC = 3
38
+ HLML_CLOCK_COUNT = 4
39
+
40
+ class HLML_TEMPERATURE_SENSORS(IntEnum):
41
+ HLML_TEMPERATURE_ON_AIP = 0
42
+ HLML_TEMPERATURE_ON_BOARD = 1
43
+ HLML_TEMPERATURE_OTHER = 2
44
+ HLML_TEMPERATURE_HBM = 3
45
+ HLML_TEMPERATURE_VRM = 4
46
+ HLML_TEMPERATURE_CTEMP = 5
47
+
48
+ class HLML_TEMPERATURE_THRESHOLDS(IntEnum):
49
+ HLML_TEMPERATURE_THRESHOLD_SHUTDOWN = 0
50
+ HLML_TEMPERATURE_THRESHOLD_SLOWDOWN = 1
51
+ HLML_TEMPERATURE_THRESHOLD_MEM_MAX = 2
52
+ HLML_TEMPERATURE_THRESHOLD_GPU_MAX = 3
53
+ HLML_TEMPERATURE_THRESHOLD_COUNT = 4
54
+
55
+ class HLML_ENABLE_STATE(IntEnum):
56
+ HLML_FEATURE_DISABLED = 0
57
+ HLML_FEATURE_ENABLED = 1
58
+
59
+ class HLML_P_STATES(IntEnum):
60
+ HLML_PSTATE_0 = 0
61
+ HLML_PSTATE_1 = 1
62
+ HLML_PSTATE_2 = 2
63
+ HLML_PSTATE_3 = 3
64
+ HLML_PSTATE_4 = 4
65
+ HLML_PSTATE_5 = 5
66
+ HLML_PSTATE_6 = 6
67
+ HLML_PSTATE_7 = 7
68
+ HLML_PSTATE_8 = 8
69
+ HLML_PSTATE_9 = 9
70
+ HLML_PSTATE_10 = 10
71
+ HLML_PSTATE_11 = 11
72
+ HLML_PSTATE_12 = 12
73
+ HLML_PSTATE_13 = 13
74
+ HLML_PSTATE_14 = 14
75
+ HLML_PSTATE_15 = 15
76
+ HLML_PSTATE_SENTINEL = 16
77
+ HLML_PSTATE_UNKNOWN = 32
78
+
79
+ class HLML_MEMORY_ERROR_TYPE(IntEnum):
80
+ HLML_MEMORY_ERROR_TYPE_CORRECTED = 0
81
+ HLML_MEMORY_ERROR_TYPE_UNCORRECTED = 1
82
+ HLML_MEMORY_ERROR_TYPE_COUNT = 2
83
+
84
+ class HLML_MEMORY_LOCATION_TYPE(IntEnum):
85
+ HLML_MEMORY_LOCATION_SRAM = 0
86
+ HLML_MEMORY_LOCATION_DRAM = 1
87
+ HLML_MEMORY_LOCATION_ALL = 2
88
+ HLML_MEMORY_LOCATION_COUNT = 3
89
+
90
+ class HLML_ECC_COUNTER_TYPE(IntEnum):
91
+ HLML_VOLATILE_ECC = 0
92
+ HLML_AGGREGATE_ECC = 1
93
+ HLML_ECC_COUNTER_TYPE_COUNT = 2
94
+
95
+ class HLML_ERR_COUNTER_IDX(IntEnum):
96
+ HLML_ECC_SERR_COUNTER_IDX = 0
97
+ HLML_ECC_DERR_COUNTER_IDX = 1
98
+ HLML_ECC_HBM_SERR_COUNTER_IDX = 2
99
+ HLML_ECC_HBM_DERR_COUNTER_IDX = 3
100
+ HLML_ECC_CRITICAL_COUNTER_IDX = 4
101
+ HLML_ECC_ERR_COUNTER_MAX = 5
102
+
103
+ class HLML_PCIE_UTIL_COUNTER(IntEnum):
104
+ HLML_PCIE_UTIL_TX_BYTES = 0
105
+ HLML_PCIE_UTIL_RX_BYTES = 1
106
+ HLML_PCIE_UTIL_COUNT = 2
107
+
108
+ class HLML_PERF_POLICY_TYPE(IntEnum):
109
+ HLML_PERF_POLICY_POWER = 0
110
+ HLML_PERF_POLICY_THERMAL = 1
111
+ HLML_PERF_POLICY_COUNT = 2
112
+
113
+ class HLML_ROW_REPLACEMENT_CAUSE(IntEnum):
114
+ HLML_ROW_REPLACEMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS = 0
115
+ HLML_ROW_REPLACEMENT_CAUSE_DOUBLE_BIT_ECC_ERROR = 1
116
+ HLML_ROW_REPLACEMENT_CAUSE_COUNT = 2
117
+
118
+
119
+ # Structs
120
+
121
+ class _PrintS(ctypes.Structure):
122
+ """
123
+ Produces nicer __str__ output than ctypes.Structure.
124
+
125
+ e.g. instead of:
126
+
127
+ > print str(obj)
128
+ <class_name object at 0x7fdf82fef9e0>
129
+
130
+ this class will print...
131
+
132
+ > print str(obj)
133
+ class_name(field_name: formatted_value, field_name: formatted_value)
134
+ _fmt_ dictionary of <str _field_ name> -> <str format>
135
+
136
+ Default formatting string for all fields can be set with key "<default>" like:
137
+ _fmt_ = {"<default>" : "%d MHz"} # e.g all values are numbers in MHz.
138
+
139
+ If not set it's assumed to be just "%s"
140
+
141
+ e.g. class that has _field_ 'hex_value', c_uint could be formatted with
142
+ _fmt_ = {"hex_value" : "%08X"}
143
+ to produce nicer output.
144
+ """
145
+ _fmt_ = {}
146
+ def __str__(self):
147
+ result = []
148
+ for x in self._fields_:
149
+ key = x[0]
150
+ value = getattr(self, key)
151
+ fmt = "%s"
152
+ if key in self._fmt_:
153
+ fmt = self._fmt_[key]
154
+ elif "<default>" in self._fmt_:
155
+ fmt = self._fmt_["<default>"]
156
+ result.append(("%s: " + fmt) % (key, value))
157
+ return self.__class__.__name__ + "(" + ", ".join(result) + ")"
158
+
159
+ class c_hlml_pci_cap(_PrintS):
160
+ _fields_ = [
161
+ ("link_speed", (ctypes.c_char * 10)),
162
+ ("link_width", (ctypes.c_char * 10)),
163
+ ("link_max_speed", (ctypes.c_char * 10)),
164
+ ("link_max_width", (ctypes.c_char * 10))
165
+ ]
166
+
167
+ class c_hlml_pci_info(_PrintS):
168
+ _fields_ = [
169
+ ("bus", ctypes.c_uint),
170
+ ("bus_id", (ctypes.c_char * 19)),
171
+ ("device", ctypes.c_uint),
172
+ ("domain", ctypes.c_uint),
173
+ ("pci_device_id", ctypes.c_uint),
174
+ ("caps", c_hlml_pci_cap),
175
+ ("pci_rev", ctypes.c_uint),
176
+ ("pci_subsys_id", ctypes.c_uint)
177
+ ]
178
+
179
+ class c_hlml_utilization(_PrintS):
180
+ _fields_ = [
181
+ ("aip", ctypes.c_uint),
182
+ ("memory", ctypes.c_uint)
183
+ ]
184
+
185
+ class c_hlml_memory(_PrintS):
186
+ _fields_ = [
187
+ ("free", ctypes.c_ulonglong),
188
+ ("total", ctypes.c_ulonglong),
189
+ ("used", ctypes.c_ulonglong)
190
+ ]
191
+
192
+ class c_hlml_pcb_info(_PrintS):
193
+ _fields_ = [
194
+ ("pcb_ver", (ctypes.c_char * 32)),
195
+ ("pcb_assembly_ver", (ctypes.c_char * 32))
196
+ ]
197
+
198
+ class c_hlml_event_data(_PrintS):
199
+ _fields_ = [
200
+ ("device", ctypes.c_void_p),
201
+ ("event_type", ctypes.c_ulonglong)
202
+ ]
203
+
204
+ class c_hlml_mac_info(_PrintS):
205
+ _fields_ = [
206
+ ("addr", (ctypes.c_ubyte * 6)),
207
+ ("id", ctypes.c_int)
208
+ ]
209
+
210
+ class c_hlml_nic_stats_info(_PrintS):
211
+ _fields_ = [
212
+ ("port", ctypes.c_uint32),
213
+ ("str_buf", ctypes.POINTER(ctypes.c_char)),
214
+ ("val_buf", ctypes.POINTER(ctypes.c_uint64)),
215
+ ("num_of_counters_out", ctypes.POINTER(ctypes.c_uint32))
216
+ ]
217
+
218
+ class c_hlml_violation_time(_PrintS):
219
+ _fields_ = [
220
+ ("reference_time", ctypes.c_ulonglong),
221
+ ("violation_time", ctypes.c_ulonglong)
222
+ ]
223
+
224
+ class c_hlml_row_address(_PrintS):
225
+ _fields_ = [
226
+ ("hbm_idx", ctypes.c_uint8),
227
+ ("pc", ctypes.c_uint8),
228
+ ("sid", ctypes.c_uint8),
229
+ ("bank_idx", ctypes.c_uint8),
230
+ ("row_addr", ctypes.c_uint16)
231
+ ]
232
+
233
+ class c_hlml_aip_error_counters(_PrintS):
234
+ _fields_ = [
235
+ ("err_counters", (ctypes.c_ulonglong * HLML_ERR_COUNTER_IDX.HLML_ECC_ERR_COUNTER_MAX)),
236
+ ("index", ctypes.c_uint)
237
+ ]
238
+
239
+ class c_hlml_process_utilization_sample(_PrintS):
240
+ _fields_ = [
241
+ ("aip_util", ctypes.c_uint)
242
+ ]
243
+
244
+
245
+ # Defines
246
+
247
+ class HLML_DEFINES:
248
+ PCI_DOMAIN_LEN = 9
249
+ PCI_ADDR_LEN = ((PCI_DOMAIN_LEN) + 10)
250
+ PCI_LINK_INFO_LEN = 10
251
+ HL_FIELD_MAX_SIZE = 32
252
+ ETHER_ADDR_LEN = 6
253
+ PORTS_ARR_SIZE = 2
254
+ HLML_DEVICE_MAC_MAX_ADDRESSES = 48
255
+ HLML_DEVICE_ROW_RPL_MAX = 32
256
+ HLML_EVENT_ECC_ERR = (1 << 0)
257
+ HLML_EVENT_ECC_DERR = (1 << 0)
258
+ HLML_EVENT_CRITICAL_ERR = (1 << 1)
259
+ HLML_EVENT_CLOCK_RATE = (1 << 2)
260
+ HLML_EVENT_DRAM_ERR = (1 << 3)
261
+ HLML_EVENT_DRAM_DERR = (1 << 3)
262
+ HLML_EVENT_ECC_SERR = (1 << 4)
263
+ HLML_EVENT_DRAM_SERR = (1 << 5)
264
+ HLML_CLOCKS_THROTTLE_REASON_POWER = (1 << 0)
265
+ HLML_CLOCKS_THROTTLE_REASON_THERMAL = (1 << 1)
266
+ HLML_AFFINITY_SCOPE_NODE = 0
267
+ HLML_AFFINITY_SCOPE_SOCKET = 1
268
+ HLML_PSTATE_NUM_SUPPORTED = HLML_P_STATES.HLML_PSTATE_SENTINEL
@@ -1,10 +0,0 @@
1
- pyhlml/__init__.py,sha256=VjbHqSSypSMmVK7UTxuCyOs_AE8HhTXX9EGr6NbaQNk,25
2
- pyhlml/hlml_error.py,sha256=GQulGXf-jX38jEASXF22qJ0yL8eC57vUo8s9lVI7q_E,2113
3
- pyhlml/hlml_lib.py,sha256=JiHRLl3vpAozhCSs9eJC8xlhIMxR2wNVZdmahjlgDfc,1430
4
- pyhlml/hlml_types.py,sha256=y_6-7eLkKA6vKVxwV8Ww6wNPFpfoOoCPUK86mp0u3uI,11717
5
- pyhlml/main.py,sha256=2zXfBHwVsePYLoCyjUiR_GwVeYTJbIeEEtbZghv2IYk,41535
6
- habana_pyhlml-1.21.4.3.dist-info/LICENSE,sha256=_J8fTEtZF8y69onNU5_EAdOn0AC9RM2uHPh_q36-5bc,1065
7
- habana_pyhlml-1.21.4.3.dist-info/METADATA,sha256=pmpXt13cWDSI6FswTP3bO9VQrJZImQR1q5huolgxJNw,1455
8
- habana_pyhlml-1.21.4.3.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
9
- habana_pyhlml-1.21.4.3.dist-info/top_level.txt,sha256=0jXJHTTotoeuyzpI1dcVr0mzCVB0NKY7LyCF4OwoMZU,7
10
- habana_pyhlml-1.21.4.3.dist-info/RECORD,,