gpustack-runtime 0.1.40.post1__py3-none-any.whl → 0.1.41.post1__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.
- gpustack_runtime/__init__.py +1 -1
- gpustack_runtime/__main__.py +5 -3
- gpustack_runtime/_version.py +2 -2
- gpustack_runtime/_version_appendix.py +1 -1
- gpustack_runtime/cmds/__init__.py +5 -3
- gpustack_runtime/cmds/__types__.py +1 -1
- gpustack_runtime/cmds/deployer.py +140 -18
- gpustack_runtime/cmds/detector.py +1 -1
- gpustack_runtime/cmds/images.py +1 -1
- gpustack_runtime/deployer/__init__.py +28 -2
- gpustack_runtime/deployer/__patches__.py +1 -1
- gpustack_runtime/deployer/__types__.py +2 -1
- gpustack_runtime/deployer/__utils__.py +2 -2
- gpustack_runtime/deployer/cdi/__init__.py +86 -5
- gpustack_runtime/deployer/cdi/__types__.py +92 -29
- gpustack_runtime/deployer/cdi/__utils__.py +180 -0
- gpustack_runtime/deployer/cdi/amd.py +146 -0
- gpustack_runtime/deployer/cdi/ascend.py +164 -0
- gpustack_runtime/deployer/cdi/hygon.py +147 -0
- gpustack_runtime/deployer/cdi/iluvatar.py +136 -0
- gpustack_runtime/deployer/cdi/metax.py +148 -0
- gpustack_runtime/deployer/cdi/thead.py +57 -23
- gpustack_runtime/deployer/docker.py +9 -8
- gpustack_runtime/deployer/k8s/deviceplugin/__init__.py +325 -0
- gpustack_runtime/deployer/k8s/deviceplugin/__types__.py +131 -0
- gpustack_runtime/deployer/k8s/deviceplugin/plugin.py +590 -0
- gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/__init__.py +3 -0
- gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api.proto +212 -0
- gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api_pb2.py +86 -0
- gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api_pb2.pyi +168 -0
- gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api_pb2_grpc.py +358 -0
- gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/constants.py +34 -0
- gpustack_runtime/deployer/kuberentes.py +50 -4
- gpustack_runtime/deployer/podman.py +9 -8
- gpustack_runtime/detector/__init__.py +42 -5
- gpustack_runtime/detector/__types__.py +8 -24
- gpustack_runtime/detector/__utils__.py +46 -39
- gpustack_runtime/detector/amd.py +55 -66
- gpustack_runtime/detector/ascend.py +29 -41
- gpustack_runtime/detector/cambricon.py +3 -3
- gpustack_runtime/detector/hygon.py +21 -49
- gpustack_runtime/detector/iluvatar.py +44 -60
- gpustack_runtime/detector/metax.py +54 -37
- gpustack_runtime/detector/mthreads.py +74 -36
- gpustack_runtime/detector/nvidia.py +130 -93
- gpustack_runtime/detector/pyacl/__init__.py +1 -1
- gpustack_runtime/detector/pyamdgpu/__init__.py +1 -1
- gpustack_runtime/detector/pyamdsmi/__init__.py +1 -1
- gpustack_runtime/detector/pycuda/__init__.py +1 -1
- gpustack_runtime/detector/pydcmi/__init__.py +1 -1
- gpustack_runtime/detector/pyhsa/__init__.py +1 -1
- gpustack_runtime/detector/pymxsml/__init__.py +1553 -1
- gpustack_runtime/detector/pyrocmcore/__init__.py +1 -1
- gpustack_runtime/detector/pyrocmsmi/__init__.py +1 -1
- gpustack_runtime/detector/thead.py +41 -60
- gpustack_runtime/envs.py +106 -12
- gpustack_runtime/logging.py +6 -2
- {gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/METADATA +6 -1
- gpustack_runtime-0.1.41.post1.dist-info/RECORD +67 -0
- gpustack_runtime/detector/pymxsml/mxsml.py +0 -1580
- gpustack_runtime/detector/pymxsml/mxsml_extension.py +0 -816
- gpustack_runtime/detector/pymxsml/mxsml_mcm.py +0 -476
- gpustack_runtime-0.1.40.post1.dist-info/RECORD +0 -55
- {gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/WHEEL +0 -0
- {gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/entry_points.txt +0 -0
- {gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,476 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Copyright © 2024 MetaX Integrated Circuits (Shanghai) Co., Ltd. All Rights Reserved.
|
|
3
|
-
|
|
4
|
-
This software and associated documentation files (hereinafter collectively referred to as
|
|
5
|
-
"Software") is a proprietary commercial software developed by MetaX Integrated Circuits
|
|
6
|
-
(Shanghai) Co., Ltd. and/or its affiliates (hereinafter collectively referred to as “MetaX”).
|
|
7
|
-
The information presented in the Software belongs to MetaX. Without prior written permission
|
|
8
|
-
from MetaX, no entity or individual has the right to obtain a copy of the Software to deal in
|
|
9
|
-
the Software, including but not limited to use, copy, modify, merge, disclose, publish,
|
|
10
|
-
distribute, sublicense, and/or sell copies of the Software or substantial portions of the Software.
|
|
11
|
-
|
|
12
|
-
The Software is provided for reference only, without warranty of any kind, either express or
|
|
13
|
-
implied, including but not limited to the warranty of merchantability, fitness for any purpose
|
|
14
|
-
and/or noninfringement. In no case shall MetaX be liable for any claim, damage or other liability
|
|
15
|
-
arising from, out of or in connection with the Software.
|
|
16
|
-
|
|
17
|
-
If the Software need to be used in conjunction with any third-party software or open source
|
|
18
|
-
software, the rights to the third-party software or open source software still belong to the
|
|
19
|
-
copyright owners. For details, please refer to the respective notices or licenses. Please comply
|
|
20
|
-
with the provisions of the relevant notices or licenses. If the open source software licenses
|
|
21
|
-
additionally require the disposal of rights related to this Software, please contact MetaX
|
|
22
|
-
immediately and obtain MetaX 's written consent.
|
|
23
|
-
|
|
24
|
-
MetaX reserves the right, at its sole discretion, to change, modify, add or remove portions of the
|
|
25
|
-
Software, at any time. MetaX reserves all the right for the final explanation.
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
from .mxsml import *
|
|
29
|
-
|
|
30
|
-
_mxSmlMcmTemperatureSensors_t = c_uint
|
|
31
|
-
_mxSmlMcmPmbusUnit_t = c_uint
|
|
32
|
-
_mxSmlMcmVersionUnit_t = c_uint
|
|
33
|
-
_mxSmlClockIp_t = c_uint
|
|
34
|
-
_mxSmlUsageIp_t = c_uint
|
|
35
|
-
_mxSmlDpmIp_t = c_uint
|
|
36
|
-
_mxSmlFwIpName_t = c_uint
|
|
37
|
-
_mxSmlLoglevel_t = c_uint
|
|
38
|
-
_mxSmlMetaXLinkType_t = c_uint
|
|
39
|
-
|
|
40
|
-
MAX_DIE_NUM = 2 # Guaranteed maximum die count on one device
|
|
41
|
-
|
|
42
|
-
_mxsmlMcmFunctionPointerCache = {}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def _mxsmlMcmGetFunctionPointer(name):
|
|
46
|
-
if name in _mxsmlMcmFunctionPointerCache:
|
|
47
|
-
return _mxsmlMcmFunctionPointerCache[name]
|
|
48
|
-
|
|
49
|
-
_mxSmlLib = get_mxSmlLib()
|
|
50
|
-
if _mxSmlLib == None:
|
|
51
|
-
raise MXSMLError(MXSML_ERROR_FAILURE)
|
|
52
|
-
|
|
53
|
-
_mxsmlMcmFunctionPointerCache[name] = getattr(_mxSmlLib, name)
|
|
54
|
-
return _mxsmlMcmFunctionPointerCache[name]
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def _mxsmlMcmCheckReturn(ret):
|
|
58
|
-
if ret != MXSML_SUCCESS:
|
|
59
|
-
raise MXSMLError(ret)
|
|
60
|
-
return ret
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
def mxSmlGetDeviceDieCount(device_id):
|
|
64
|
-
die_count = c_uint()
|
|
65
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDeviceDieCount")
|
|
66
|
-
ret = fn(c_uint(device_id), byref(die_count))
|
|
67
|
-
_mxsmlMcmCheckReturn(ret)
|
|
68
|
-
return die_count.value
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
def mxSmlGetDieMemoryInfo(device_id, die_id):
|
|
72
|
-
memory_info = c_mxsmlMemoryInfo_t()
|
|
73
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieMemoryInfo")
|
|
74
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(memory_info))
|
|
75
|
-
_mxsmlMcmCheckReturn(ret)
|
|
76
|
-
return memory_info
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
def mxSmlGetDieTemperatureInfo(device_id, die_id, temperature_type):
|
|
80
|
-
temperature = c_int()
|
|
81
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieTemperatureInfo")
|
|
82
|
-
ret = fn(
|
|
83
|
-
c_uint(device_id),
|
|
84
|
-
c_uint(die_id),
|
|
85
|
-
_mxSmlMcmTemperatureSensors_t(temperature_type),
|
|
86
|
-
byref(temperature),
|
|
87
|
-
)
|
|
88
|
-
_mxsmlMcmCheckReturn(ret)
|
|
89
|
-
return temperature.value
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
def mxSmlGetDiePmbusInfo(device_id, die_id, pmbus_unit):
|
|
93
|
-
pmbus_info = c_mxSmlPmbusInfo_t()
|
|
94
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDiePmbusInfo")
|
|
95
|
-
ret = fn(
|
|
96
|
-
c_uint(device_id),
|
|
97
|
-
c_uint(die_id),
|
|
98
|
-
_mxSmlMcmPmbusUnit_t(pmbus_unit),
|
|
99
|
-
byref(pmbus_info),
|
|
100
|
-
)
|
|
101
|
-
_mxsmlMcmCheckReturn(ret)
|
|
102
|
-
return pmbus_info
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
@convertStrBytes
|
|
106
|
-
def mxSmlGetDeviceDieVersion(device_id, dieId, version_unit):
|
|
107
|
-
version = create_string_buffer(MXSML_VERSION_INFO_SIZE)
|
|
108
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDeviceDieVersion")
|
|
109
|
-
ret = fn(
|
|
110
|
-
c_uint(device_id),
|
|
111
|
-
c_uint(dieId),
|
|
112
|
-
_mxSmlMcmVersionUnit_t(version_unit),
|
|
113
|
-
byref(version),
|
|
114
|
-
byref(c_uint(MXSML_VERSION_INFO_SIZE)),
|
|
115
|
-
)
|
|
116
|
-
_mxsmlMcmCheckReturn(ret)
|
|
117
|
-
return version.value
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
def mxSmlGetDieClocks(device_id, die_id, clock_ip):
|
|
121
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieClocks")
|
|
122
|
-
size = c_uint(1)
|
|
123
|
-
clocks = (c_uint * 1)()
|
|
124
|
-
ret = fn(
|
|
125
|
-
c_uint(device_id),
|
|
126
|
-
c_uint(die_id),
|
|
127
|
-
_mxSmlClockIp_t(clock_ip),
|
|
128
|
-
byref(size),
|
|
129
|
-
byref(clocks),
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
if ret == MXSML_SUCCESS:
|
|
133
|
-
return [clock for clock in clocks]
|
|
134
|
-
|
|
135
|
-
elif ret == MXSML_ERROR_INSUFFICIENT_SIZE:
|
|
136
|
-
clocks = (c_uint * size.value)()
|
|
137
|
-
ret = fn(
|
|
138
|
-
c_uint(device_id),
|
|
139
|
-
c_uint(die_id),
|
|
140
|
-
_mxSmlClockIp_t(clock_ip),
|
|
141
|
-
byref(size),
|
|
142
|
-
byref(clocks),
|
|
143
|
-
)
|
|
144
|
-
_mxsmlMcmCheckReturn(ret)
|
|
145
|
-
return [clock for clock in clocks]
|
|
146
|
-
|
|
147
|
-
else:
|
|
148
|
-
raise MXSMLError(ret)
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
def mxSmlGetDieChipSerial(device_id, die_id):
|
|
152
|
-
serial = create_string_buffer(MXSML_CHIP_SERIAL_SIZE)
|
|
153
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieChipSerial")
|
|
154
|
-
ret = fn(
|
|
155
|
-
c_uint(device_id),
|
|
156
|
-
c_uint(die_id),
|
|
157
|
-
byref(serial),
|
|
158
|
-
byref(c_uint(MXSML_CHIP_SERIAL_SIZE)),
|
|
159
|
-
)
|
|
160
|
-
_mxsmlMcmCheckReturn(ret)
|
|
161
|
-
return serial.value
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
def mxSmlGetDieApUsageToggle(device_id, die_id):
|
|
165
|
-
toggle = c_uint()
|
|
166
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieApUsageToggle")
|
|
167
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(toggle))
|
|
168
|
-
_mxsmlMcmCheckReturn(ret)
|
|
169
|
-
return toggle.value
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
def mxSmlGetDieDpmIpClockInfo(device_id, die_id, dpm_ip):
|
|
173
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieDpmIpClockInfo")
|
|
174
|
-
size = c_uint(0)
|
|
175
|
-
ret = fn(
|
|
176
|
-
c_uint(device_id),
|
|
177
|
-
c_uint(die_id),
|
|
178
|
-
_mxSmlDpmIp_t(dpm_ip),
|
|
179
|
-
(c_uint * 1)(),
|
|
180
|
-
byref(size),
|
|
181
|
-
)
|
|
182
|
-
|
|
183
|
-
if ret == MXSML_ERROR_INSUFFICIENT_SIZE:
|
|
184
|
-
clocks = (c_uint * size.value)()
|
|
185
|
-
ret = fn(
|
|
186
|
-
c_uint(device_id),
|
|
187
|
-
c_uint(die_id),
|
|
188
|
-
_mxSmlDpmIp_t(dpm_ip),
|
|
189
|
-
byref(clocks),
|
|
190
|
-
byref(size),
|
|
191
|
-
)
|
|
192
|
-
_mxsmlMcmCheckReturn(ret)
|
|
193
|
-
return [clk for clk in clocks]
|
|
194
|
-
else:
|
|
195
|
-
raise MXSMLError(ret)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
def mxSmlGetDieDpmIpVddInfo(device_id, die_id, dpm_ip):
|
|
199
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieDpmIpVddInfo")
|
|
200
|
-
size = c_uint(0)
|
|
201
|
-
ret = fn(
|
|
202
|
-
c_uint(device_id),
|
|
203
|
-
c_uint(die_id),
|
|
204
|
-
_mxSmlDpmIp_t(dpm_ip),
|
|
205
|
-
(c_uint * 1)(),
|
|
206
|
-
byref(size),
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
if ret == MXSML_ERROR_INSUFFICIENT_SIZE:
|
|
210
|
-
vdds = (c_uint * size.value)()
|
|
211
|
-
ret = fn(
|
|
212
|
-
c_uint(device_id),
|
|
213
|
-
c_uint(die_id),
|
|
214
|
-
_mxSmlDpmIp_t(dpm_ip),
|
|
215
|
-
byref(vdds),
|
|
216
|
-
byref(size),
|
|
217
|
-
)
|
|
218
|
-
_mxsmlMcmCheckReturn(ret)
|
|
219
|
-
return [vdd for vdd in vdds]
|
|
220
|
-
else:
|
|
221
|
-
raise MXSMLError(ret)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
def mxSmlGetCurrentDieDpmIpPerfLevel(device_id, die_id, dpm_ip):
|
|
225
|
-
level = c_uint()
|
|
226
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetCurrentDieDpmIpPerfLevel")
|
|
227
|
-
ret = fn(c_uint(device_id), c_uint(die_id), _mxSmlDpmIp_t(dpm_ip), byref(level))
|
|
228
|
-
_mxsmlMcmCheckReturn(ret)
|
|
229
|
-
return level.value
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
def mxSmlSetDieUnlockKey(device_id, die_id, key):
|
|
233
|
-
b_key = c_char_p(key.encode("utf-8"))
|
|
234
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlSetDieUnlockKey")
|
|
235
|
-
ret = fn(c_uint(device_id), c_uint(die_id), b_key)
|
|
236
|
-
_mxsmlMcmCheckReturn(ret)
|
|
237
|
-
return ret
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
def mxSmlGetDieIpUsage(device_id, die_id, usage_ip):
|
|
241
|
-
usage = c_int()
|
|
242
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieIpUsage")
|
|
243
|
-
ret = fn(c_uint(device_id), c_uint(die_id), _mxSmlUsageIp_t(usage_ip), byref(usage))
|
|
244
|
-
_mxsmlMcmCheckReturn(ret)
|
|
245
|
-
return usage.value
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
def mxSmlGetDieDpmMaxPerfLevel(device_id, die_id):
|
|
249
|
-
dpm_level = c_mxSmlMxcDpmPerfLevel_t()
|
|
250
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieDpmMaxPerfLevel")
|
|
251
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(dpm_level))
|
|
252
|
-
_mxsmlMcmCheckReturn(ret)
|
|
253
|
-
return dpm_level
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
def mxSmlGetDieDpmIpMaxPerfLevel(device_id, die_id, dpm_ip):
|
|
257
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieDpmIpMaxPerfLevel")
|
|
258
|
-
level = c_uint(0)
|
|
259
|
-
ret = fn(c_uint(device_id), c_uint(die_id), _mxSmlDpmIp_t(dpm_ip), byref(level))
|
|
260
|
-
_mxsmlMcmCheckReturn(ret)
|
|
261
|
-
return level.value
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
def mxSmlGetDieXcoreApUsage(device_id, die_id):
|
|
265
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieXcoreApUsage")
|
|
266
|
-
size = c_uint(0)
|
|
267
|
-
dpc_num = c_uint(0)
|
|
268
|
-
ret = fn(
|
|
269
|
-
c_uint(device_id), c_uint(die_id), (c_uint * 0)(), byref(size), byref(dpc_num)
|
|
270
|
-
)
|
|
271
|
-
|
|
272
|
-
if ret == MXSML_ERROR_INSUFFICIENT_SIZE:
|
|
273
|
-
usage_array = (c_uint * size.value)()
|
|
274
|
-
ret = fn(
|
|
275
|
-
c_uint(device_id),
|
|
276
|
-
c_uint(die_id),
|
|
277
|
-
byref(usage_array),
|
|
278
|
-
byref(size),
|
|
279
|
-
byref(dpc_num),
|
|
280
|
-
)
|
|
281
|
-
_mxsmlMcmCheckReturn(ret)
|
|
282
|
-
idx_num = (size.value + dpc_num.value - 1) // dpc_num.value
|
|
283
|
-
return [usage_array[i : i + idx_num] for i in range(0, size.value, idx_num)]
|
|
284
|
-
else:
|
|
285
|
-
raise MXSMLError(ret)
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
def mxSmlSetDieDpmIpMaxPerfLevel(device_id, die_id, dpm_ip, level):
|
|
289
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlSetDieDpmIpMaxPerfLevel")
|
|
290
|
-
ret = fn(c_uint(device_id), c_uint(die_id), _mxSmlDpmIp_t(dpm_ip), c_uint(level))
|
|
291
|
-
_mxsmlMcmCheckReturn(ret)
|
|
292
|
-
return ret
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
def mxSmlGetDieCodecStatus(device_id, die_id):
|
|
296
|
-
status = c_mxSmlCodecStatus_t()
|
|
297
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieCodecStatus")
|
|
298
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(status))
|
|
299
|
-
_mxsmlMcmCheckReturn(ret)
|
|
300
|
-
return status
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
def mxSmlGetDieEepromInfo(device_id, die_id):
|
|
304
|
-
eeprom_info = c_mxSmlEepromInfo_t()
|
|
305
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieEepromInfo")
|
|
306
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(eeprom_info))
|
|
307
|
-
_mxsmlMcmCheckReturn(ret)
|
|
308
|
-
return eeprom_info
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
@convertStrBytes
|
|
312
|
-
def mxSmlDieVbiosUpgrade(device_id, die_id, time_limit, bin_path):
|
|
313
|
-
# Will take effect after reboot
|
|
314
|
-
upgrade_arg = c_mxSmlVbiosUpgradeArg_t()
|
|
315
|
-
upgrade_arg.timeLimit = c_uint(time_limit)
|
|
316
|
-
upgrade_arg.vbiosBinPath = bin_path
|
|
317
|
-
upgrade_arg.forceUpgrade = c_int(0)
|
|
318
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlDieVbiosUpgrade")
|
|
319
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(upgrade_arg))
|
|
320
|
-
_mxsmlMcmCheckReturn(ret)
|
|
321
|
-
return ret
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
def mxSmlGetDieEccState(device_id, die_id):
|
|
325
|
-
state = c_uint()
|
|
326
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieEccState")
|
|
327
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(state))
|
|
328
|
-
_mxsmlMcmCheckReturn(ret)
|
|
329
|
-
return state.value
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
def mxSmlSetDieEccState(device_id, die_id, state):
|
|
333
|
-
# Will take effect after reboot
|
|
334
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlSetDieEccState")
|
|
335
|
-
ret = fn(c_uint(device_id), c_uint(die_id), c_uint(state))
|
|
336
|
-
_mxsmlMcmCheckReturn(ret)
|
|
337
|
-
return ret
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
def mxSmlGetDiePowerStateInfo(device_id, die_id, dpm_ip):
|
|
341
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDiePowerStateInfo")
|
|
342
|
-
size = c_uint(0)
|
|
343
|
-
ret = fn(
|
|
344
|
-
c_uint(device_id),
|
|
345
|
-
c_uint(die_id),
|
|
346
|
-
_mxSmlDpmIp_t(dpm_ip),
|
|
347
|
-
(c_int * 0)(),
|
|
348
|
-
byref(size),
|
|
349
|
-
)
|
|
350
|
-
|
|
351
|
-
if ret == MXSML_ERROR_INSUFFICIENT_SIZE:
|
|
352
|
-
power_states = (c_int * size.value)()
|
|
353
|
-
ret = fn(
|
|
354
|
-
c_uint(device_id),
|
|
355
|
-
c_uint(die_id),
|
|
356
|
-
_mxSmlDpmIp_t(dpm_ip),
|
|
357
|
-
byref(power_states),
|
|
358
|
-
byref(size),
|
|
359
|
-
)
|
|
360
|
-
_mxsmlMcmCheckReturn(ret)
|
|
361
|
-
return [state for state in power_states]
|
|
362
|
-
else:
|
|
363
|
-
raise MXSMLError(ret)
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
def mxSmlGetDieHbmBandWidth(device_id, die_id):
|
|
367
|
-
bw = c_mxSmlHbmBandWidth_t()
|
|
368
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieHbmBandWidth")
|
|
369
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(bw))
|
|
370
|
-
_mxsmlMcmCheckReturn(ret)
|
|
371
|
-
return bw
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
@convertStrBytes
|
|
375
|
-
def mxSmlGetDiePptableVersion(device_id, die_id):
|
|
376
|
-
version = create_string_buffer(MXSML_VERSION_INFO_SIZE)
|
|
377
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDiePptableVersion")
|
|
378
|
-
ret = fn(c_uint(device_id), c_uint(die_id), c_uint(5), byref(version))
|
|
379
|
-
_mxsmlMcmCheckReturn(ret)
|
|
380
|
-
return version.value
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
def mxSmlGetDieFwLoglevel(device_id, die_id):
|
|
384
|
-
log_level = c_mxSmlFwLoglevel_t()
|
|
385
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieFwLoglevel")
|
|
386
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(log_level))
|
|
387
|
-
_mxsmlMcmCheckReturn(ret)
|
|
388
|
-
return log_level
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
def mxSmlSetDieFwLoglevel(device_id, die_id, fw_ip, level):
|
|
392
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlSetDieFwLoglevel")
|
|
393
|
-
ret = fn(
|
|
394
|
-
c_uint(device_id),
|
|
395
|
-
c_uint(die_id),
|
|
396
|
-
_mxSmlFwIpName_t(fw_ip),
|
|
397
|
-
_mxSmlLoglevel_t(level),
|
|
398
|
-
)
|
|
399
|
-
_mxsmlMcmCheckReturn(ret)
|
|
400
|
-
return ret
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
def mxSmlGetDieFwIpLoglevel(device_id, dieId, fw_ip):
|
|
404
|
-
level = _mxSmlLoglevel_t()
|
|
405
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieFwIpLoglevel")
|
|
406
|
-
ret = fn(c_uint(device_id), c_uint(dieId), _mxSmlFwIpName_t(fw_ip), byref(level))
|
|
407
|
-
_mxsmlMcmCheckReturn(ret)
|
|
408
|
-
return level.value
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
def mxSmlGetDieMetaXLinkBandwidth(device_id, dieId, metaxlink_type):
|
|
412
|
-
size = c_uint(MXSML_METAX_LINK_NUM + 1)
|
|
413
|
-
entry = []
|
|
414
|
-
bw = (c_mxSmlMetaXLinkBandwidth_t * (MXSML_METAX_LINK_NUM + 1))(*entry)
|
|
415
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieMetaXLinkBandwidth")
|
|
416
|
-
ret = fn(
|
|
417
|
-
c_uint(device_id),
|
|
418
|
-
c_uint(dieId),
|
|
419
|
-
_mxSmlMetaXLinkType_t(metaxlink_type),
|
|
420
|
-
byref(size),
|
|
421
|
-
byref(bw),
|
|
422
|
-
)
|
|
423
|
-
_mxsmlMcmCheckReturn(ret)
|
|
424
|
-
return bw
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
def mxSmlGetDieRasStatusData(device_id, dieId):
|
|
428
|
-
data = c_mxSmlRasStatusData_t()
|
|
429
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieRasStatusData")
|
|
430
|
-
ret = fn(c_uint(device_id), c_uint(dieId), byref(data))
|
|
431
|
-
_mxsmlMcmCheckReturn(ret)
|
|
432
|
-
return data
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
def mxSmlGetDieRasErrorData(device_id, dieId):
|
|
436
|
-
data = c_mxSmlRasErrorData_t()
|
|
437
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieRasErrorData")
|
|
438
|
-
ret = fn(c_uint(device_id), c_uint(dieId), byref(data))
|
|
439
|
-
_mxsmlMcmCheckReturn(ret)
|
|
440
|
-
return data
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
def mxSmlGetDieMetaXLinkInfo(device_id, dieId):
|
|
444
|
-
size = c_uint(8)
|
|
445
|
-
entry = []
|
|
446
|
-
metaxlink_info = (c_mxSmlSingleMxlkInfo_t * 8)(*entry)
|
|
447
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieMetaXLinkInfo")
|
|
448
|
-
ret = fn(c_uint(device_id), c_uint(dieId), byref(metaxlink_info), byref(size))
|
|
449
|
-
_mxsmlMcmCheckReturn(ret)
|
|
450
|
-
return metaxlink_info
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
def mxSmlGetDieMetaXLinkRemoteInfo(device_id, die_id, link_id):
|
|
454
|
-
link_remote_info = c_mxSmlMcmMetaXLinkRemoteInfo_t()
|
|
455
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieMetaXLinkRemoteInfo")
|
|
456
|
-
ret = fn(
|
|
457
|
-
c_uint(device_id), c_uint(die_id), c_uint(link_id), byref(link_remote_info)
|
|
458
|
-
)
|
|
459
|
-
_mxsmlMcmCheckReturn(ret)
|
|
460
|
-
return link_remote_info
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
def mxSmlGetDieUnavailableReason(device_id, die_id):
|
|
464
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieUnavailableReason")
|
|
465
|
-
reason = c_mxSmlDeviceUnavailableReasonInfo_t()
|
|
466
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(reason))
|
|
467
|
-
_mxsmlMcmCheckReturn(ret)
|
|
468
|
-
return reason
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
def mxSmlGetDieTotalEccErrors(device_id, die_id):
|
|
472
|
-
fn = _mxsmlMcmGetFunctionPointer("mxSmlGetDieTotalEccErrors")
|
|
473
|
-
eccCounts = c_mxSmlEccErrorCount_t(0)
|
|
474
|
-
ret = fn(c_uint(device_id), c_uint(die_id), byref(eccCounts))
|
|
475
|
-
_mxsmlMcmCheckReturn(ret)
|
|
476
|
-
return mxsmlStructToFriendlyObject(eccCounts)
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
gpustack_runtime/__init__.py,sha256=kKcK6DMIXOdpWhgMS7xlsNrBNvEmY0L8eyQtBIC3CU4,160
|
|
2
|
-
gpustack_runtime/__main__.py,sha256=LkRkKifYM9DTAo-HAlOQZ2vCQaXxXb49EKyfAYJG2vg,3808
|
|
3
|
-
gpustack_runtime/_version.py,sha256=tZXYTH4eh4oIU0uyIkOj_F02YAgxD4j6lwgczS7RU_U,792
|
|
4
|
-
gpustack_runtime/_version.pyi,sha256=A42NoSgcqEXVy2OeNm4LXC9CbyonbooYrSUBlPm2lGY,156
|
|
5
|
-
gpustack_runtime/envs.py,sha256=7CTVHWfzBQn9iN8LcGWOxuLp_7HAd-lFDuAYDmwCB6U,34065
|
|
6
|
-
gpustack_runtime/logging.py,sha256=h_fvD5FV7GHCo00IUDLQmkPR-H6r66IX_WSwZwl0mCw,6869
|
|
7
|
-
gpustack_runtime/cmds/__init__.py,sha256=hokwjRG9ovum0Cq5VbUtTMPOk6oFKcyXFgTXpxw-uKs,1276
|
|
8
|
-
gpustack_runtime/cmds/__types__.py,sha256=7C4kQM0EHPD8WpJpTo6kh9rEdkrYALcLQ-GAzMMsqV8,789
|
|
9
|
-
gpustack_runtime/cmds/deployer.py,sha256=6C5MYZISugdCcJX8EfJbJKsgtgw1xkdjpoVBi2OPCcs,28787
|
|
10
|
-
gpustack_runtime/cmds/detector.py,sha256=xTuPkl0Psi6T_n7RvwCHBeubX4AsjXAhc_emrMufY58,8724
|
|
11
|
-
gpustack_runtime/cmds/images.py,sha256=nq25wQGFn-0GgmBjonC3p0G_YbWoKWdWpnGm37YaIhU,568
|
|
12
|
-
gpustack_runtime/deployer/__init__.py,sha256=my4IY7t3obOFnKHCwwwPq363T4OZOjnivoAK4Svu4Ow,15581
|
|
13
|
-
gpustack_runtime/deployer/__patches__.py,sha256=4TCUdDzKBiOYmr5s0UkrEjBU0UjT7U36R0aQbSvrFRE,17823
|
|
14
|
-
gpustack_runtime/deployer/__types__.py,sha256=Yx09FnuPDD2XKgAEUy9PfzkEpZY6V1932Gf8WA4TiAw,72162
|
|
15
|
-
gpustack_runtime/deployer/__utils__.py,sha256=rDfF3mRqL17KsI1l2kfcMjxrEBUL5vBPFPWqiY4cJkw,21072
|
|
16
|
-
gpustack_runtime/deployer/docker.py,sha256=_mZkfd4LG1INcGdiwG-2HxQ3xKoxk__fdcjHRg7hfi0,85011
|
|
17
|
-
gpustack_runtime/deployer/kuberentes.py,sha256=8eohX2UQXgQ8hM1QDaOAe_lmeP_D6VZfcF8cNb1W7XA,87488
|
|
18
|
-
gpustack_runtime/deployer/podman.py,sha256=g1XKeHXMczy3OPsBrBBO9D8bEQ1ewhxvGq2b33Jg-UI,82128
|
|
19
|
-
gpustack_runtime/deployer/cdi/__init__.py,sha256=Cx2Ua7WPy6YctxWHd_Ntd6Zuz47vs4c0Ia_73aNmSbk,1904
|
|
20
|
-
gpustack_runtime/deployer/cdi/__types__.py,sha256=z9HsOnD-FnHbHqdhprxsQATg0yDeGYrDMyAWS2iK7ew,16180
|
|
21
|
-
gpustack_runtime/deployer/cdi/thead.py,sha256=tirkgBGLBrIJFmJoWcSIf2OMwtzAeFBiEzGej_zVtkg,2714
|
|
22
|
-
gpustack_runtime/detector/__init__.py,sha256=aNrWMsin3TXnU37LjazNUJmbaTlBxzWNbQ-ELaZRH78,7204
|
|
23
|
-
gpustack_runtime/detector/__types__.py,sha256=OE-6JtafUpocCk_lHMKJBhU_7OV-8ZbNNFbOYIy2jQ8,13374
|
|
24
|
-
gpustack_runtime/detector/__utils__.py,sha256=3_6RsBmrFJ0TpNk0KkwTju_cWhXA-rP__ZNktjP_T_Q,25269
|
|
25
|
-
gpustack_runtime/detector/amd.py,sha256=JGERVoSx1MlZP9AHs_u92I_Zz4Cl4-fxMzLMBia_F74,18693
|
|
26
|
-
gpustack_runtime/detector/ascend.py,sha256=VkmNM-enbjMNVXKFfv7z6S-4BkwD6YkBmcC0J1ZGEuc,18588
|
|
27
|
-
gpustack_runtime/detector/cambricon.py,sha256=bqWo2mUuf3a5kV8NC1PzFtHIUhVQkSejUSWR5Z5XaGA,3899
|
|
28
|
-
gpustack_runtime/detector/hygon.py,sha256=n_spB46BFSQtUBYEact0bQo25uOWSn0fsZ8Uwcq9DHs,13540
|
|
29
|
-
gpustack_runtime/detector/iluvatar.py,sha256=FKd9ZPb9oEUU1wv-f-t0nmKtY6gAytNvWeqXQktt2is,10899
|
|
30
|
-
gpustack_runtime/detector/metax.py,sha256=YRpZVfz_nG7QTEMqTxqpgi9x5aPYy4gfvYhiUpbz8R8,10146
|
|
31
|
-
gpustack_runtime/detector/mthreads.py,sha256=XW8dyb4i8qVKxHw1Yu08f2YRhpj0Xe8E-MSNfSeOwr4,11012
|
|
32
|
-
gpustack_runtime/detector/nvidia.py,sha256=dGeAd-DAGBIhvuexzC9pVi3NYf2LrzYusvg-IACU_9o,32398
|
|
33
|
-
gpustack_runtime/detector/thead.py,sha256=zP-BqUn6bu2FjLA49u3TyELzykUfNzL8CloX6IqBpnY,26281
|
|
34
|
-
gpustack_runtime/detector/pyacl/__init__.py,sha256=UIdRYql11hGflkFD1bAcO9EwDxr4c3xrU_Mb7TtBWgs,16206
|
|
35
|
-
gpustack_runtime/detector/pyamdgpu/__init__.py,sha256=U5GVzKMIxkwR2UlZOjZQbBPgrYuoBhgKMtpw17zg8ms,8591
|
|
36
|
-
gpustack_runtime/detector/pyamdsmi/__init__.py,sha256=BXAOVnoew6MliU86ci73Rk2yWPeXRUBicFKFWh-r2s0,929
|
|
37
|
-
gpustack_runtime/detector/pycuda/__init__.py,sha256=zBL6seocp5NCapM39g3ANu0SdqopeHg_EgCX1bElzXU,16896
|
|
38
|
-
gpustack_runtime/detector/pydcmi/__init__.py,sha256=f0w5hKs9KmGG8ye0FCJIfGLCA8dx8me0SOyPihBGiV0,37238
|
|
39
|
-
gpustack_runtime/detector/pyhgml/__init__.py,sha256=Yp9s-QhHS4ck7Iq9kd4v6a4BruyJQcuOTYlyYSmnOgI,182896
|
|
40
|
-
gpustack_runtime/detector/pyhgml/libhgml.so,sha256=BPzGVBpzrMX1tSvbXddq8Q0Qhi8w-No2JXX8sRxTioI,2101640
|
|
41
|
-
gpustack_runtime/detector/pyhgml/libuki.so,sha256=EE6v1vIYYT4FSDMMm9rSfAqwrwIPFD-4_6KtP51lSps,702352
|
|
42
|
-
gpustack_runtime/detector/pyhsa/__init__.py,sha256=rmogC5o3Chl4_AhPIjnb8W1YXfIsxou4yp-SbimnUN8,15766
|
|
43
|
-
gpustack_runtime/detector/pyixml/__init__.py,sha256=6ss_Dyl8lIT4WrKpfwmQqzBmg4Bxi38vg_eey_wsSY0,162681
|
|
44
|
-
gpustack_runtime/detector/pymxsml/__init__.py,sha256=spHMs9t2tiV-C9kO-cV_230CBVAZ-j2DWtLfiFU5V3E,25
|
|
45
|
-
gpustack_runtime/detector/pymxsml/mxsml.py,sha256=nRuKSVxIsJj2SJX-SYnE9NGZ7hGjWO9nKczC6sYmSRg,47196
|
|
46
|
-
gpustack_runtime/detector/pymxsml/mxsml_extension.py,sha256=zfWFRGa9eSup336t2lPhIvCbPpa7Prn-7xCHRljg4CI,26967
|
|
47
|
-
gpustack_runtime/detector/pymxsml/mxsml_mcm.py,sha256=a4rX7hJNJKTqLodKU9rYeDaAEKef6UNVThl1w-aiFsA,15363
|
|
48
|
-
gpustack_runtime/detector/pyrocmcore/__init__.py,sha256=5Iwy-U4ogFFQwGh1LrEUBsXgmOmt3VQ70P9MZCq1qxc,2497
|
|
49
|
-
gpustack_runtime/detector/pyrocmsmi/__init__.py,sha256=wlzH54ibvw1qgCBgV6vvDBzyQBNa5A9JVa_hLwhba0o,11880
|
|
50
|
-
gpustack_runtime/_version_appendix.py,sha256=Q3VQO7E2lOhSF31RZK7_H7YQrILXRcVIw5UGAZBveoU,23
|
|
51
|
-
gpustack_runtime-0.1.40.post1.dist-info/METADATA,sha256=6PR3Z4vumr7f5wS5hMF1IkGkyNBsWHlXn3dS3tligB8,2182
|
|
52
|
-
gpustack_runtime-0.1.40.post1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
53
|
-
gpustack_runtime-0.1.40.post1.dist-info/entry_points.txt,sha256=bBO_61GxP6dIT74uZwbSDgW5Vt2pTePUS3CgjUJkUgg,68
|
|
54
|
-
gpustack_runtime-0.1.40.post1.dist-info/licenses/LICENSE,sha256=OiPibowBvB-NHV3TP_NOj18XNBlXcshXZFMpa3uvKVE,10362
|
|
55
|
-
gpustack_runtime-0.1.40.post1.dist-info/RECORD,,
|
|
File without changes
|
{gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|