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.
Files changed (66) hide show
  1. gpustack_runtime/__init__.py +1 -1
  2. gpustack_runtime/__main__.py +5 -3
  3. gpustack_runtime/_version.py +2 -2
  4. gpustack_runtime/_version_appendix.py +1 -1
  5. gpustack_runtime/cmds/__init__.py +5 -3
  6. gpustack_runtime/cmds/__types__.py +1 -1
  7. gpustack_runtime/cmds/deployer.py +140 -18
  8. gpustack_runtime/cmds/detector.py +1 -1
  9. gpustack_runtime/cmds/images.py +1 -1
  10. gpustack_runtime/deployer/__init__.py +28 -2
  11. gpustack_runtime/deployer/__patches__.py +1 -1
  12. gpustack_runtime/deployer/__types__.py +2 -1
  13. gpustack_runtime/deployer/__utils__.py +2 -2
  14. gpustack_runtime/deployer/cdi/__init__.py +86 -5
  15. gpustack_runtime/deployer/cdi/__types__.py +92 -29
  16. gpustack_runtime/deployer/cdi/__utils__.py +180 -0
  17. gpustack_runtime/deployer/cdi/amd.py +146 -0
  18. gpustack_runtime/deployer/cdi/ascend.py +164 -0
  19. gpustack_runtime/deployer/cdi/hygon.py +147 -0
  20. gpustack_runtime/deployer/cdi/iluvatar.py +136 -0
  21. gpustack_runtime/deployer/cdi/metax.py +148 -0
  22. gpustack_runtime/deployer/cdi/thead.py +57 -23
  23. gpustack_runtime/deployer/docker.py +9 -8
  24. gpustack_runtime/deployer/k8s/deviceplugin/__init__.py +325 -0
  25. gpustack_runtime/deployer/k8s/deviceplugin/__types__.py +131 -0
  26. gpustack_runtime/deployer/k8s/deviceplugin/plugin.py +590 -0
  27. gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/__init__.py +3 -0
  28. gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api.proto +212 -0
  29. gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api_pb2.py +86 -0
  30. gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api_pb2.pyi +168 -0
  31. gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/api_pb2_grpc.py +358 -0
  32. gpustack_runtime/deployer/k8s/types/kubelet/deviceplugin/v1beta1/constants.py +34 -0
  33. gpustack_runtime/deployer/kuberentes.py +50 -4
  34. gpustack_runtime/deployer/podman.py +9 -8
  35. gpustack_runtime/detector/__init__.py +42 -5
  36. gpustack_runtime/detector/__types__.py +8 -24
  37. gpustack_runtime/detector/__utils__.py +46 -39
  38. gpustack_runtime/detector/amd.py +55 -66
  39. gpustack_runtime/detector/ascend.py +29 -41
  40. gpustack_runtime/detector/cambricon.py +3 -3
  41. gpustack_runtime/detector/hygon.py +21 -49
  42. gpustack_runtime/detector/iluvatar.py +44 -60
  43. gpustack_runtime/detector/metax.py +54 -37
  44. gpustack_runtime/detector/mthreads.py +74 -36
  45. gpustack_runtime/detector/nvidia.py +130 -93
  46. gpustack_runtime/detector/pyacl/__init__.py +1 -1
  47. gpustack_runtime/detector/pyamdgpu/__init__.py +1 -1
  48. gpustack_runtime/detector/pyamdsmi/__init__.py +1 -1
  49. gpustack_runtime/detector/pycuda/__init__.py +1 -1
  50. gpustack_runtime/detector/pydcmi/__init__.py +1 -1
  51. gpustack_runtime/detector/pyhsa/__init__.py +1 -1
  52. gpustack_runtime/detector/pymxsml/__init__.py +1553 -1
  53. gpustack_runtime/detector/pyrocmcore/__init__.py +1 -1
  54. gpustack_runtime/detector/pyrocmsmi/__init__.py +1 -1
  55. gpustack_runtime/detector/thead.py +41 -60
  56. gpustack_runtime/envs.py +106 -12
  57. gpustack_runtime/logging.py +6 -2
  58. {gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/METADATA +6 -1
  59. gpustack_runtime-0.1.41.post1.dist-info/RECORD +67 -0
  60. gpustack_runtime/detector/pymxsml/mxsml.py +0 -1580
  61. gpustack_runtime/detector/pymxsml/mxsml_extension.py +0 -816
  62. gpustack_runtime/detector/pymxsml/mxsml_mcm.py +0 -476
  63. gpustack_runtime-0.1.40.post1.dist-info/RECORD +0 -55
  64. {gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/WHEEL +0 -0
  65. {gpustack_runtime-0.1.40.post1.dist-info → gpustack_runtime-0.1.41.post1.dist-info}/entry_points.txt +0 -0
  66. {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,,