tinygrad 0.10.2__py3-none-any.whl → 0.11.0__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 (131) hide show
  1. tinygrad/__init__.py +1 -1
  2. tinygrad/apps/llm.py +206 -0
  3. tinygrad/codegen/__init__.py +116 -0
  4. tinygrad/codegen/devectorizer.py +315 -172
  5. tinygrad/codegen/expander.py +8 -16
  6. tinygrad/codegen/gpudims.py +89 -0
  7. tinygrad/codegen/linearize.py +205 -203
  8. tinygrad/codegen/lowerer.py +92 -139
  9. tinygrad/codegen/opt/__init__.py +38 -0
  10. tinygrad/codegen/opt/heuristic.py +125 -0
  11. tinygrad/codegen/opt/kernel.py +510 -0
  12. tinygrad/{engine → codegen/opt}/search.py +51 -35
  13. tinygrad/codegen/opt/swizzler.py +134 -0
  14. tinygrad/codegen/opt/tc.py +127 -0
  15. tinygrad/codegen/quantize.py +67 -0
  16. tinygrad/device.py +122 -132
  17. tinygrad/dtype.py +152 -35
  18. tinygrad/engine/jit.py +81 -54
  19. tinygrad/engine/memory.py +46 -27
  20. tinygrad/engine/realize.py +82 -41
  21. tinygrad/engine/schedule.py +70 -445
  22. tinygrad/frontend/__init__.py +0 -0
  23. tinygrad/frontend/onnx.py +1253 -0
  24. tinygrad/frontend/torch.py +5 -0
  25. tinygrad/gradient.py +19 -27
  26. tinygrad/helpers.py +95 -47
  27. tinygrad/nn/__init__.py +7 -8
  28. tinygrad/nn/optim.py +72 -41
  29. tinygrad/nn/state.py +37 -23
  30. tinygrad/renderer/__init__.py +40 -60
  31. tinygrad/renderer/cstyle.py +143 -128
  32. tinygrad/renderer/llvmir.py +113 -62
  33. tinygrad/renderer/ptx.py +50 -32
  34. tinygrad/renderer/wgsl.py +27 -23
  35. tinygrad/runtime/autogen/am/am.py +5861 -0
  36. tinygrad/runtime/autogen/am/pm4_nv.py +962 -0
  37. tinygrad/runtime/autogen/am/pm4_soc15.py +931 -0
  38. tinygrad/runtime/autogen/am/sdma_4_0_0.py +5209 -0
  39. tinygrad/runtime/autogen/am/sdma_4_4_2.py +5209 -0
  40. tinygrad/runtime/autogen/am/sdma_5_0_0.py +7103 -0
  41. tinygrad/runtime/autogen/am/sdma_6_0_0.py +8085 -0
  42. tinygrad/runtime/autogen/am/smu_v13_0_0.py +3068 -0
  43. tinygrad/runtime/autogen/am/smu_v14_0_2.py +3605 -0
  44. tinygrad/runtime/autogen/amd_gpu.py +1433 -67197
  45. tinygrad/runtime/autogen/comgr.py +35 -9
  46. tinygrad/runtime/autogen/comgr_3.py +906 -0
  47. tinygrad/runtime/autogen/cuda.py +2419 -494
  48. tinygrad/runtime/autogen/hsa.py +57 -16
  49. tinygrad/runtime/autogen/ib.py +7171 -0
  50. tinygrad/runtime/autogen/io_uring.py +917 -118
  51. tinygrad/runtime/autogen/kfd.py +748 -26
  52. tinygrad/runtime/autogen/libc.py +613 -218
  53. tinygrad/runtime/autogen/libusb.py +1643 -0
  54. tinygrad/runtime/autogen/nv/nv.py +8602 -0
  55. tinygrad/runtime/autogen/nv_gpu.py +7218 -2072
  56. tinygrad/runtime/autogen/opencl.py +2 -4
  57. tinygrad/runtime/autogen/sqtt.py +1789 -0
  58. tinygrad/runtime/autogen/vfio.py +3 -3
  59. tinygrad/runtime/autogen/webgpu.py +273 -264
  60. tinygrad/runtime/graph/cuda.py +3 -3
  61. tinygrad/runtime/graph/hcq.py +68 -29
  62. tinygrad/runtime/graph/metal.py +29 -13
  63. tinygrad/runtime/graph/remote.py +114 -0
  64. tinygrad/runtime/ops_amd.py +537 -320
  65. tinygrad/runtime/ops_cpu.py +108 -7
  66. tinygrad/runtime/ops_cuda.py +12 -14
  67. tinygrad/runtime/ops_disk.py +13 -10
  68. tinygrad/runtime/ops_dsp.py +47 -40
  69. tinygrad/runtime/ops_gpu.py +13 -11
  70. tinygrad/runtime/ops_hip.py +6 -9
  71. tinygrad/runtime/ops_llvm.py +35 -15
  72. tinygrad/runtime/ops_metal.py +29 -19
  73. tinygrad/runtime/ops_npy.py +5 -3
  74. tinygrad/runtime/ops_null.py +28 -0
  75. tinygrad/runtime/ops_nv.py +306 -234
  76. tinygrad/runtime/ops_python.py +62 -52
  77. tinygrad/runtime/ops_qcom.py +28 -39
  78. tinygrad/runtime/ops_remote.py +482 -0
  79. tinygrad/runtime/ops_webgpu.py +28 -28
  80. tinygrad/runtime/support/am/amdev.py +114 -249
  81. tinygrad/runtime/support/am/ip.py +211 -172
  82. tinygrad/runtime/support/amd.py +138 -0
  83. tinygrad/runtime/support/{compiler_hip.py → compiler_amd.py} +40 -8
  84. tinygrad/runtime/support/compiler_cuda.py +8 -11
  85. tinygrad/runtime/support/elf.py +2 -1
  86. tinygrad/runtime/support/hcq.py +184 -97
  87. tinygrad/runtime/support/ib.py +172 -0
  88. tinygrad/runtime/support/llvm.py +3 -4
  89. tinygrad/runtime/support/memory.py +251 -0
  90. tinygrad/runtime/support/nv/__init__.py +0 -0
  91. tinygrad/runtime/support/nv/ip.py +581 -0
  92. tinygrad/runtime/support/nv/nvdev.py +183 -0
  93. tinygrad/runtime/support/system.py +170 -0
  94. tinygrad/runtime/support/usb.py +268 -0
  95. tinygrad/runtime/support/webgpu.py +18 -0
  96. tinygrad/schedule/__init__.py +0 -0
  97. tinygrad/schedule/grouper.py +119 -0
  98. tinygrad/schedule/kernelize.py +368 -0
  99. tinygrad/schedule/multi.py +231 -0
  100. tinygrad/shape/shapetracker.py +40 -46
  101. tinygrad/shape/view.py +88 -52
  102. tinygrad/tensor.py +968 -542
  103. tinygrad/uop/__init__.py +117 -0
  104. tinygrad/{codegen/transcendental.py → uop/decompositions.py} +125 -38
  105. tinygrad/uop/mathtraits.py +169 -0
  106. tinygrad/uop/ops.py +1021 -0
  107. tinygrad/uop/spec.py +228 -0
  108. tinygrad/{codegen → uop}/symbolic.py +239 -216
  109. tinygrad/uop/upat.py +163 -0
  110. tinygrad/viz/assets/cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/languages/x86asm.min.js +19 -0
  111. tinygrad/viz/assets/d3js.org/d3.v7.min.js +2 -0
  112. tinygrad/viz/assets/dagrejs.github.io/project/dagre/latest/dagre.min.js +801 -0
  113. tinygrad/viz/index.html +203 -403
  114. tinygrad/viz/js/index.js +718 -0
  115. tinygrad/viz/js/worker.js +29 -0
  116. tinygrad/viz/serve.py +224 -102
  117. {tinygrad-0.10.2.dist-info → tinygrad-0.11.0.dist-info}/METADATA +24 -16
  118. tinygrad-0.11.0.dist-info/RECORD +141 -0
  119. {tinygrad-0.10.2.dist-info → tinygrad-0.11.0.dist-info}/WHEEL +1 -1
  120. tinygrad/codegen/kernel.py +0 -693
  121. tinygrad/engine/multi.py +0 -161
  122. tinygrad/ops.py +0 -1003
  123. tinygrad/runtime/ops_cloud.py +0 -220
  124. tinygrad/runtime/support/allocator.py +0 -94
  125. tinygrad/spec.py +0 -155
  126. tinygrad/viz/assets/d3js.org/d3.v5.min.js +0 -2
  127. tinygrad/viz/assets/dagrejs.github.io/project/dagre-d3/latest/dagre-d3.min.js +0 -4816
  128. tinygrad/viz/perfetto.html +0 -178
  129. tinygrad-0.10.2.dist-info/RECORD +0 -99
  130. {tinygrad-0.10.2.dist-info → tinygrad-0.11.0.dist-info/licenses}/LICENSE +0 -0
  131. {tinygrad-0.10.2.dist-info → tinygrad-0.11.0.dist-info}/top_level.txt +0 -0
@@ -11,9 +11,9 @@ import ctypes, os
11
11
 
12
12
 
13
13
  import functools
14
- from tinygrad.runtime.support.hcq import HWInterface
14
+ from tinygrad.runtime.support.hcq import FileIOInterface
15
15
 
16
- def _do_ioctl(__idir, __base, __nr, __user_struct, __fd:HWInterface, **kwargs):
16
+ def _do_ioctl(__idir, __base, __nr, __user_struct, __fd:FileIOInterface, **kwargs):
17
17
  ret = __fd.ioctl((__idir<<30) | (ctypes.sizeof(made := __user_struct(**kwargs))<<16) | (__base<<8) | __nr, made)
18
18
  if ret != 0: raise RuntimeError(f"ioctl returned {ret}")
19
19
  return made
@@ -135,7 +135,7 @@ class Union(ctypes.Union, AsDictMixin):
135
135
 
136
136
  KFD_IOCTL_H_INCLUDED = True # macro
137
137
  KFD_IOCTL_MAJOR_VERSION = 1 # macro
138
- KFD_IOCTL_MINOR_VERSION = 6 # macro
138
+ KFD_IOCTL_MINOR_VERSION = 14 # macro
139
139
  KFD_IOC_QUEUE_TYPE_COMPUTE = 0x0 # macro
140
140
  KFD_IOC_QUEUE_TYPE_SDMA = 0x1 # macro
141
141
  KFD_IOC_QUEUE_TYPE_COMPUTE_AQL = 0x2 # macro
@@ -148,6 +148,7 @@ NUM_OF_SUPPORTED_GPUS = 7 # macro
148
148
  MAX_ALLOWED_NUM_POINTS = 100 # macro
149
149
  MAX_ALLOWED_AW_BUFF_SIZE = 4096 # macro
150
150
  MAX_ALLOWED_WAC_BUFF_SIZE = 128 # macro
151
+ KFD_INVALID_FD = 0xffffffff # macro
151
152
  KFD_IOC_EVENT_SIGNAL = 0 # macro
152
153
  KFD_IOC_EVENT_NODECHANGE = 1 # macro
153
154
  KFD_IOC_EVENT_DEVICESTATECHANGE = 2 # macro
@@ -181,14 +182,26 @@ KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE = (1<<28) # macro
181
182
  KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM = (1<<27) # macro
182
183
  KFD_IOC_ALLOC_MEM_FLAGS_COHERENT = (1<<26) # macro
183
184
  KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED = (1<<25) # macro
185
+ KFD_IOC_ALLOC_MEM_FLAGS_EXT_COHERENT = (1<<24) # macro
184
186
  def KFD_SMI_EVENT_MASK_FROM_INDEX(i): # macro
185
187
  return (1<<((i)-1))
188
+ KFD_SMI_EVENT_MSG_SIZE = 96 # macro
186
189
  KFD_IOCTL_SVM_FLAG_HOST_ACCESS = 0x00000001 # macro
187
190
  KFD_IOCTL_SVM_FLAG_COHERENT = 0x00000002 # macro
188
191
  KFD_IOCTL_SVM_FLAG_HIVE_LOCAL = 0x00000004 # macro
189
192
  KFD_IOCTL_SVM_FLAG_GPU_RO = 0x00000008 # macro
190
193
  KFD_IOCTL_SVM_FLAG_GPU_EXEC = 0x00000010 # macro
191
194
  KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY = 0x00000020 # macro
195
+ KFD_IOCTL_SVM_FLAG_GPU_ALWAYS_MAPPED = 0x00000040 # macro
196
+ KFD_IOCTL_SVM_FLAG_EXT_COHERENT = 0x00000080 # macro
197
+ def KFD_EC_MASK(ecode): # macro
198
+ return (1<<(ecode-1))
199
+ KFD_RUNTIME_ENABLE_MODE_ENABLE_MASK = 1 # macro
200
+ KFD_RUNTIME_ENABLE_MODE_TTMP_SAVE_MASK = 2 # macro
201
+ KFD_DBG_QUEUE_ERROR_BIT = 30 # macro
202
+ KFD_DBG_QUEUE_INVALID_BIT = 31 # macro
203
+ KFD_DBG_QUEUE_ERROR_MASK = (1<<30) # macro
204
+ KFD_DBG_QUEUE_INVALID_MASK = (1<<31) # macro
192
205
  AMDKFD_IOCTL_BASE = 'K' # macro
193
206
  def AMDKFD_IO(nr): # macro
194
207
  return _IO('K',nr)
@@ -199,7 +212,7 @@ def AMDKFD_IOW(nr, type): # macro
199
212
  def AMDKFD_IOWR(nr, type): # macro
200
213
  return _IOWR('K',nr,type)
201
214
  AMDKFD_COMMAND_START = 0x01 # macro
202
- AMDKFD_COMMAND_END = 0x22 # macro
215
+ AMDKFD_COMMAND_END = 0x27 # macro
203
216
  class struct_kfd_ioctl_get_version_args(Structure):
204
217
  pass
205
218
 
@@ -280,6 +293,47 @@ struct_kfd_ioctl_get_queue_wave_state_args._fields_ = [
280
293
  ]
281
294
 
282
295
  AMDKFD_IOC_GET_QUEUE_WAVE_STATE = AMDKFD_IOWR ( 0x1B , struct_kfd_ioctl_get_queue_wave_state_args ) # macro (from list)
296
+ class struct_kfd_ioctl_get_available_memory_args(Structure):
297
+ pass
298
+
299
+ struct_kfd_ioctl_get_available_memory_args._pack_ = 1 # source:False
300
+ struct_kfd_ioctl_get_available_memory_args._fields_ = [
301
+ ('available', ctypes.c_uint64),
302
+ ('gpu_id', ctypes.c_uint32),
303
+ ('pad', ctypes.c_uint32),
304
+ ]
305
+
306
+ AMDKFD_IOC_AVAILABLE_MEMORY = AMDKFD_IOWR ( 0x23 , struct_kfd_ioctl_get_available_memory_args ) # macro (from list)
307
+ class struct_kfd_dbg_device_info_entry(Structure):
308
+ pass
309
+
310
+ struct_kfd_dbg_device_info_entry._pack_ = 1 # source:False
311
+ struct_kfd_dbg_device_info_entry._fields_ = [
312
+ ('exception_status', ctypes.c_uint64),
313
+ ('lds_base', ctypes.c_uint64),
314
+ ('lds_limit', ctypes.c_uint64),
315
+ ('scratch_base', ctypes.c_uint64),
316
+ ('scratch_limit', ctypes.c_uint64),
317
+ ('gpuvm_base', ctypes.c_uint64),
318
+ ('gpuvm_limit', ctypes.c_uint64),
319
+ ('gpu_id', ctypes.c_uint32),
320
+ ('location_id', ctypes.c_uint32),
321
+ ('vendor_id', ctypes.c_uint32),
322
+ ('device_id', ctypes.c_uint32),
323
+ ('revision_id', ctypes.c_uint32),
324
+ ('subsystem_vendor_id', ctypes.c_uint32),
325
+ ('subsystem_device_id', ctypes.c_uint32),
326
+ ('fw_version', ctypes.c_uint32),
327
+ ('gfx_target_version', ctypes.c_uint32),
328
+ ('simd_count', ctypes.c_uint32),
329
+ ('max_waves_per_simd', ctypes.c_uint32),
330
+ ('array_count', ctypes.c_uint32),
331
+ ('simd_arrays_per_engine', ctypes.c_uint32),
332
+ ('num_xcc', ctypes.c_uint32),
333
+ ('capability', ctypes.c_uint32),
334
+ ('debug_prop', ctypes.c_uint32),
335
+ ]
336
+
283
337
  class struct_kfd_ioctl_set_memory_policy_args(Structure):
284
338
  pass
285
339
 
@@ -354,7 +408,7 @@ struct_kfd_ioctl_dbg_register_args._fields_ = [
354
408
  ('pad', ctypes.c_uint32),
355
409
  ]
356
410
 
357
- AMDKFD_IOC_DBG_REGISTER = AMDKFD_IOW ( 0x0D , struct_kfd_ioctl_dbg_register_args ) # macro (from list)
411
+ AMDKFD_IOC_DBG_REGISTER_DEPRECATED = AMDKFD_IOW ( 0x0D , struct_kfd_ioctl_dbg_register_args ) # macro (from list)
358
412
  class struct_kfd_ioctl_dbg_unregister_args(Structure):
359
413
  pass
360
414
 
@@ -364,7 +418,7 @@ struct_kfd_ioctl_dbg_unregister_args._fields_ = [
364
418
  ('pad', ctypes.c_uint32),
365
419
  ]
366
420
 
367
- AMDKFD_IOC_DBG_UNREGISTER = AMDKFD_IOW ( 0x0E , struct_kfd_ioctl_dbg_unregister_args ) # macro (from list)
421
+ AMDKFD_IOC_DBG_UNREGISTER_DEPRECATED = AMDKFD_IOW ( 0x0E , struct_kfd_ioctl_dbg_unregister_args ) # macro (from list)
368
422
  class struct_kfd_ioctl_dbg_address_watch_args(Structure):
369
423
  pass
370
424
 
@@ -375,7 +429,7 @@ struct_kfd_ioctl_dbg_address_watch_args._fields_ = [
375
429
  ('buf_size_in_bytes', ctypes.c_uint32),
376
430
  ]
377
431
 
378
- AMDKFD_IOC_DBG_ADDRESS_WATCH = AMDKFD_IOW ( 0x0F , struct_kfd_ioctl_dbg_address_watch_args ) # macro (from list)
432
+ AMDKFD_IOC_DBG_ADDRESS_WATCH_DEPRECATED = AMDKFD_IOW ( 0x0F , struct_kfd_ioctl_dbg_address_watch_args ) # macro (from list)
379
433
  class struct_kfd_ioctl_dbg_wave_control_args(Structure):
380
434
  pass
381
435
 
@@ -386,7 +440,7 @@ struct_kfd_ioctl_dbg_wave_control_args._fields_ = [
386
440
  ('buf_size_in_bytes', ctypes.c_uint32),
387
441
  ]
388
442
 
389
- AMDKFD_IOC_DBG_WAVE_CONTROL = AMDKFD_IOW ( 0x10 , struct_kfd_ioctl_dbg_wave_control_args ) # macro (from list)
443
+ AMDKFD_IOC_DBG_WAVE_CONTROL_DEPRECATED = AMDKFD_IOW ( 0x10 , struct_kfd_ioctl_dbg_wave_control_args ) # macro (from list)
390
444
  class struct_kfd_ioctl_create_event_args(Structure):
391
445
  pass
392
446
 
@@ -465,6 +519,14 @@ struct_kfd_hsa_hw_exception_data._fields_ = [
465
519
  ('gpu_id', ctypes.c_uint32),
466
520
  ]
467
521
 
522
+ class struct_kfd_hsa_signal_event_data(Structure):
523
+ pass
524
+
525
+ struct_kfd_hsa_signal_event_data._pack_ = 1 # source:False
526
+ struct_kfd_hsa_signal_event_data._fields_ = [
527
+ ('last_event_age', ctypes.c_uint64),
528
+ ]
529
+
468
530
  class struct_kfd_event_data(Structure):
469
531
  pass
470
532
 
@@ -475,7 +537,8 @@ union_kfd_event_data_0._pack_ = 1 # source:False
475
537
  union_kfd_event_data_0._fields_ = [
476
538
  ('memory_exception_data', struct_kfd_hsa_memory_exception_data),
477
539
  ('hw_exception_data', struct_kfd_hsa_hw_exception_data),
478
- ('PADDING_0', ctypes.c_ubyte * 16),
540
+ ('signal_event_data', struct_kfd_hsa_signal_event_data),
541
+ ('PADDING_0', ctypes.c_ubyte * 24),
479
542
  ]
480
543
 
481
544
  struct_kfd_event_data._pack_ = 1 # source:False
@@ -634,6 +697,17 @@ struct_kfd_ioctl_import_dmabuf_args._fields_ = [
634
697
  ]
635
698
 
636
699
  AMDKFD_IOC_IMPORT_DMABUF = AMDKFD_IOWR ( 0x1D , struct_kfd_ioctl_import_dmabuf_args ) # macro (from list)
700
+ class struct_kfd_ioctl_export_dmabuf_args(Structure):
701
+ pass
702
+
703
+ struct_kfd_ioctl_export_dmabuf_args._pack_ = 1 # source:False
704
+ struct_kfd_ioctl_export_dmabuf_args._fields_ = [
705
+ ('handle', ctypes.c_uint64),
706
+ ('flags', ctypes.c_uint32),
707
+ ('dmabuf_fd', ctypes.c_uint32),
708
+ ]
709
+
710
+ AMDKFD_IOC_EXPORT_DMABUF = AMDKFD_IOWR ( 0x24 , struct_kfd_ioctl_export_dmabuf_args ) # macro (from list)
637
711
 
638
712
  # values for enumeration 'kfd_smi_event'
639
713
  kfd_smi_event__enumvalues = {
@@ -642,13 +716,70 @@ kfd_smi_event__enumvalues = {
642
716
  2: 'KFD_SMI_EVENT_THERMAL_THROTTLE',
643
717
  3: 'KFD_SMI_EVENT_GPU_PRE_RESET',
644
718
  4: 'KFD_SMI_EVENT_GPU_POST_RESET',
719
+ 5: 'KFD_SMI_EVENT_MIGRATE_START',
720
+ 6: 'KFD_SMI_EVENT_MIGRATE_END',
721
+ 7: 'KFD_SMI_EVENT_PAGE_FAULT_START',
722
+ 8: 'KFD_SMI_EVENT_PAGE_FAULT_END',
723
+ 9: 'KFD_SMI_EVENT_QUEUE_EVICTION',
724
+ 10: 'KFD_SMI_EVENT_QUEUE_RESTORE',
725
+ 11: 'KFD_SMI_EVENT_UNMAP_FROM_GPU',
726
+ 64: 'KFD_SMI_EVENT_ALL_PROCESS',
645
727
  }
646
728
  KFD_SMI_EVENT_NONE = 0
647
729
  KFD_SMI_EVENT_VMFAULT = 1
648
730
  KFD_SMI_EVENT_THERMAL_THROTTLE = 2
649
731
  KFD_SMI_EVENT_GPU_PRE_RESET = 3
650
732
  KFD_SMI_EVENT_GPU_POST_RESET = 4
733
+ KFD_SMI_EVENT_MIGRATE_START = 5
734
+ KFD_SMI_EVENT_MIGRATE_END = 6
735
+ KFD_SMI_EVENT_PAGE_FAULT_START = 7
736
+ KFD_SMI_EVENT_PAGE_FAULT_END = 8
737
+ KFD_SMI_EVENT_QUEUE_EVICTION = 9
738
+ KFD_SMI_EVENT_QUEUE_RESTORE = 10
739
+ KFD_SMI_EVENT_UNMAP_FROM_GPU = 11
740
+ KFD_SMI_EVENT_ALL_PROCESS = 64
651
741
  kfd_smi_event = ctypes.c_uint32 # enum
742
+
743
+ # values for enumeration 'KFD_MIGRATE_TRIGGERS'
744
+ KFD_MIGRATE_TRIGGERS__enumvalues = {
745
+ 0: 'KFD_MIGRATE_TRIGGER_PREFETCH',
746
+ 1: 'KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU',
747
+ 2: 'KFD_MIGRATE_TRIGGER_PAGEFAULT_CPU',
748
+ 3: 'KFD_MIGRATE_TRIGGER_TTM_EVICTION',
749
+ }
750
+ KFD_MIGRATE_TRIGGER_PREFETCH = 0
751
+ KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU = 1
752
+ KFD_MIGRATE_TRIGGER_PAGEFAULT_CPU = 2
753
+ KFD_MIGRATE_TRIGGER_TTM_EVICTION = 3
754
+ KFD_MIGRATE_TRIGGERS = ctypes.c_uint32 # enum
755
+
756
+ # values for enumeration 'KFD_QUEUE_EVICTION_TRIGGERS'
757
+ KFD_QUEUE_EVICTION_TRIGGERS__enumvalues = {
758
+ 0: 'KFD_QUEUE_EVICTION_TRIGGER_SVM',
759
+ 1: 'KFD_QUEUE_EVICTION_TRIGGER_USERPTR',
760
+ 2: 'KFD_QUEUE_EVICTION_TRIGGER_TTM',
761
+ 3: 'KFD_QUEUE_EVICTION_TRIGGER_SUSPEND',
762
+ 4: 'KFD_QUEUE_EVICTION_CRIU_CHECKPOINT',
763
+ 5: 'KFD_QUEUE_EVICTION_CRIU_RESTORE',
764
+ }
765
+ KFD_QUEUE_EVICTION_TRIGGER_SVM = 0
766
+ KFD_QUEUE_EVICTION_TRIGGER_USERPTR = 1
767
+ KFD_QUEUE_EVICTION_TRIGGER_TTM = 2
768
+ KFD_QUEUE_EVICTION_TRIGGER_SUSPEND = 3
769
+ KFD_QUEUE_EVICTION_CRIU_CHECKPOINT = 4
770
+ KFD_QUEUE_EVICTION_CRIU_RESTORE = 5
771
+ KFD_QUEUE_EVICTION_TRIGGERS = ctypes.c_uint32 # enum
772
+
773
+ # values for enumeration 'KFD_SVM_UNMAP_TRIGGERS'
774
+ KFD_SVM_UNMAP_TRIGGERS__enumvalues = {
775
+ 0: 'KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY',
776
+ 1: 'KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY_MIGRATE',
777
+ 2: 'KFD_SVM_UNMAP_TRIGGER_UNMAP_FROM_CPU',
778
+ }
779
+ KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY = 0
780
+ KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY_MIGRATE = 1
781
+ KFD_SVM_UNMAP_TRIGGER_UNMAP_FROM_CPU = 2
782
+ KFD_SVM_UNMAP_TRIGGERS = ctypes.c_uint32 # enum
652
783
  class struct_kfd_ioctl_smi_events_args(Structure):
653
784
  pass
654
785
 
@@ -660,6 +791,65 @@ struct_kfd_ioctl_smi_events_args._fields_ = [
660
791
 
661
792
  AMDKFD_IOC_SMI_EVENTS = AMDKFD_IOWR ( 0x1F , struct_kfd_ioctl_smi_events_args ) # macro (from list)
662
793
 
794
+ # values for enumeration 'kfd_criu_op'
795
+ kfd_criu_op__enumvalues = {
796
+ 0: 'KFD_CRIU_OP_PROCESS_INFO',
797
+ 1: 'KFD_CRIU_OP_CHECKPOINT',
798
+ 2: 'KFD_CRIU_OP_UNPAUSE',
799
+ 3: 'KFD_CRIU_OP_RESTORE',
800
+ 4: 'KFD_CRIU_OP_RESUME',
801
+ }
802
+ KFD_CRIU_OP_PROCESS_INFO = 0
803
+ KFD_CRIU_OP_CHECKPOINT = 1
804
+ KFD_CRIU_OP_UNPAUSE = 2
805
+ KFD_CRIU_OP_RESTORE = 3
806
+ KFD_CRIU_OP_RESUME = 4
807
+ kfd_criu_op = ctypes.c_uint32 # enum
808
+ class struct_kfd_ioctl_criu_args(Structure):
809
+ pass
810
+
811
+ struct_kfd_ioctl_criu_args._pack_ = 1 # source:False
812
+ struct_kfd_ioctl_criu_args._fields_ = [
813
+ ('devices', ctypes.c_uint64),
814
+ ('bos', ctypes.c_uint64),
815
+ ('priv_data', ctypes.c_uint64),
816
+ ('priv_data_size', ctypes.c_uint64),
817
+ ('num_devices', ctypes.c_uint32),
818
+ ('num_bos', ctypes.c_uint32),
819
+ ('num_objects', ctypes.c_uint32),
820
+ ('pid', ctypes.c_uint32),
821
+ ('op', ctypes.c_uint32),
822
+ ('PADDING_0', ctypes.c_ubyte * 4),
823
+ ]
824
+
825
+ AMDKFD_IOC_CRIU_OP = AMDKFD_IOWR ( 0x22 , struct_kfd_ioctl_criu_args ) # macro (from list)
826
+ class struct_kfd_criu_device_bucket(Structure):
827
+ pass
828
+
829
+ struct_kfd_criu_device_bucket._pack_ = 1 # source:False
830
+ struct_kfd_criu_device_bucket._fields_ = [
831
+ ('user_gpu_id', ctypes.c_uint32),
832
+ ('actual_gpu_id', ctypes.c_uint32),
833
+ ('drm_fd', ctypes.c_uint32),
834
+ ('pad', ctypes.c_uint32),
835
+ ]
836
+
837
+ class struct_kfd_criu_bo_bucket(Structure):
838
+ pass
839
+
840
+ struct_kfd_criu_bo_bucket._pack_ = 1 # source:False
841
+ struct_kfd_criu_bo_bucket._fields_ = [
842
+ ('addr', ctypes.c_uint64),
843
+ ('size', ctypes.c_uint64),
844
+ ('offset', ctypes.c_uint64),
845
+ ('restored_offset', ctypes.c_uint64),
846
+ ('gpu_id', ctypes.c_uint32),
847
+ ('alloc_flags', ctypes.c_uint32),
848
+ ('dmabuf_fd', ctypes.c_uint32),
849
+ ('pad', ctypes.c_uint32),
850
+ ]
851
+
852
+
663
853
  # values for enumeration 'kfd_mmio_remap'
664
854
  kfd_mmio_remap__enumvalues = {
665
855
  0: 'KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL',
@@ -738,18 +928,484 @@ struct_kfd_ioctl_set_xnack_mode_args._fields_ = [
738
928
  ]
739
929
 
740
930
  AMDKFD_IOC_SET_XNACK_MODE = AMDKFD_IOWR ( 0x21 , struct_kfd_ioctl_set_xnack_mode_args ) # macro (from list)
931
+
932
+ # values for enumeration 'kfd_dbg_trap_override_mode'
933
+ kfd_dbg_trap_override_mode__enumvalues = {
934
+ 0: 'KFD_DBG_TRAP_OVERRIDE_OR',
935
+ 1: 'KFD_DBG_TRAP_OVERRIDE_REPLACE',
936
+ }
937
+ KFD_DBG_TRAP_OVERRIDE_OR = 0
938
+ KFD_DBG_TRAP_OVERRIDE_REPLACE = 1
939
+ kfd_dbg_trap_override_mode = ctypes.c_uint32 # enum
940
+
941
+ # values for enumeration 'kfd_dbg_trap_mask'
942
+ kfd_dbg_trap_mask__enumvalues = {
943
+ 1: 'KFD_DBG_TRAP_MASK_FP_INVALID',
944
+ 2: 'KFD_DBG_TRAP_MASK_FP_INPUT_DENORMAL',
945
+ 4: 'KFD_DBG_TRAP_MASK_FP_DIVIDE_BY_ZERO',
946
+ 8: 'KFD_DBG_TRAP_MASK_FP_OVERFLOW',
947
+ 16: 'KFD_DBG_TRAP_MASK_FP_UNDERFLOW',
948
+ 32: 'KFD_DBG_TRAP_MASK_FP_INEXACT',
949
+ 64: 'KFD_DBG_TRAP_MASK_INT_DIVIDE_BY_ZERO',
950
+ 128: 'KFD_DBG_TRAP_MASK_DBG_ADDRESS_WATCH',
951
+ 256: 'KFD_DBG_TRAP_MASK_DBG_MEMORY_VIOLATION',
952
+ 1073741824: 'KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_START',
953
+ -2147483648: 'KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_END',
954
+ }
955
+ KFD_DBG_TRAP_MASK_FP_INVALID = 1
956
+ KFD_DBG_TRAP_MASK_FP_INPUT_DENORMAL = 2
957
+ KFD_DBG_TRAP_MASK_FP_DIVIDE_BY_ZERO = 4
958
+ KFD_DBG_TRAP_MASK_FP_OVERFLOW = 8
959
+ KFD_DBG_TRAP_MASK_FP_UNDERFLOW = 16
960
+ KFD_DBG_TRAP_MASK_FP_INEXACT = 32
961
+ KFD_DBG_TRAP_MASK_INT_DIVIDE_BY_ZERO = 64
962
+ KFD_DBG_TRAP_MASK_DBG_ADDRESS_WATCH = 128
963
+ KFD_DBG_TRAP_MASK_DBG_MEMORY_VIOLATION = 256
964
+ KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_START = 1073741824
965
+ KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_END = -2147483648
966
+ kfd_dbg_trap_mask = ctypes.c_int32 # enum
967
+
968
+ # values for enumeration 'kfd_dbg_trap_wave_launch_mode'
969
+ kfd_dbg_trap_wave_launch_mode__enumvalues = {
970
+ 0: 'KFD_DBG_TRAP_WAVE_LAUNCH_MODE_NORMAL',
971
+ 1: 'KFD_DBG_TRAP_WAVE_LAUNCH_MODE_HALT',
972
+ 3: 'KFD_DBG_TRAP_WAVE_LAUNCH_MODE_DEBUG',
973
+ }
974
+ KFD_DBG_TRAP_WAVE_LAUNCH_MODE_NORMAL = 0
975
+ KFD_DBG_TRAP_WAVE_LAUNCH_MODE_HALT = 1
976
+ KFD_DBG_TRAP_WAVE_LAUNCH_MODE_DEBUG = 3
977
+ kfd_dbg_trap_wave_launch_mode = ctypes.c_uint32 # enum
978
+
979
+ # values for enumeration 'kfd_dbg_trap_address_watch_mode'
980
+ kfd_dbg_trap_address_watch_mode__enumvalues = {
981
+ 0: 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_READ',
982
+ 1: 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_NONREAD',
983
+ 2: 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ATOMIC',
984
+ 3: 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ALL',
985
+ }
986
+ KFD_DBG_TRAP_ADDRESS_WATCH_MODE_READ = 0
987
+ KFD_DBG_TRAP_ADDRESS_WATCH_MODE_NONREAD = 1
988
+ KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ATOMIC = 2
989
+ KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ALL = 3
990
+ kfd_dbg_trap_address_watch_mode = ctypes.c_uint32 # enum
991
+
992
+ # values for enumeration 'kfd_dbg_trap_flags'
993
+ kfd_dbg_trap_flags__enumvalues = {
994
+ 1: 'KFD_DBG_TRAP_FLAG_SINGLE_MEM_OP',
995
+ }
996
+ KFD_DBG_TRAP_FLAG_SINGLE_MEM_OP = 1
997
+ kfd_dbg_trap_flags = ctypes.c_uint32 # enum
998
+
999
+ # values for enumeration 'kfd_dbg_trap_exception_code'
1000
+ kfd_dbg_trap_exception_code__enumvalues = {
1001
+ 0: 'EC_NONE',
1002
+ 1: 'EC_QUEUE_WAVE_ABORT',
1003
+ 2: 'EC_QUEUE_WAVE_TRAP',
1004
+ 3: 'EC_QUEUE_WAVE_MATH_ERROR',
1005
+ 4: 'EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION',
1006
+ 5: 'EC_QUEUE_WAVE_MEMORY_VIOLATION',
1007
+ 6: 'EC_QUEUE_WAVE_APERTURE_VIOLATION',
1008
+ 16: 'EC_QUEUE_PACKET_DISPATCH_DIM_INVALID',
1009
+ 17: 'EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID',
1010
+ 18: 'EC_QUEUE_PACKET_DISPATCH_CODE_INVALID',
1011
+ 19: 'EC_QUEUE_PACKET_RESERVED',
1012
+ 20: 'EC_QUEUE_PACKET_UNSUPPORTED',
1013
+ 21: 'EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID',
1014
+ 22: 'EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID',
1015
+ 23: 'EC_QUEUE_PACKET_VENDOR_UNSUPPORTED',
1016
+ 30: 'EC_QUEUE_PREEMPTION_ERROR',
1017
+ 31: 'EC_QUEUE_NEW',
1018
+ 32: 'EC_DEVICE_QUEUE_DELETE',
1019
+ 33: 'EC_DEVICE_MEMORY_VIOLATION',
1020
+ 34: 'EC_DEVICE_RAS_ERROR',
1021
+ 35: 'EC_DEVICE_FATAL_HALT',
1022
+ 36: 'EC_DEVICE_NEW',
1023
+ 48: 'EC_PROCESS_RUNTIME',
1024
+ 49: 'EC_PROCESS_DEVICE_REMOVE',
1025
+ 50: 'EC_MAX',
1026
+ }
1027
+ EC_NONE = 0
1028
+ EC_QUEUE_WAVE_ABORT = 1
1029
+ EC_QUEUE_WAVE_TRAP = 2
1030
+ EC_QUEUE_WAVE_MATH_ERROR = 3
1031
+ EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION = 4
1032
+ EC_QUEUE_WAVE_MEMORY_VIOLATION = 5
1033
+ EC_QUEUE_WAVE_APERTURE_VIOLATION = 6
1034
+ EC_QUEUE_PACKET_DISPATCH_DIM_INVALID = 16
1035
+ EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID = 17
1036
+ EC_QUEUE_PACKET_DISPATCH_CODE_INVALID = 18
1037
+ EC_QUEUE_PACKET_RESERVED = 19
1038
+ EC_QUEUE_PACKET_UNSUPPORTED = 20
1039
+ EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID = 21
1040
+ EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID = 22
1041
+ EC_QUEUE_PACKET_VENDOR_UNSUPPORTED = 23
1042
+ EC_QUEUE_PREEMPTION_ERROR = 30
1043
+ EC_QUEUE_NEW = 31
1044
+ EC_DEVICE_QUEUE_DELETE = 32
1045
+ EC_DEVICE_MEMORY_VIOLATION = 33
1046
+ EC_DEVICE_RAS_ERROR = 34
1047
+ EC_DEVICE_FATAL_HALT = 35
1048
+ EC_DEVICE_NEW = 36
1049
+ EC_PROCESS_RUNTIME = 48
1050
+ EC_PROCESS_DEVICE_REMOVE = 49
1051
+ EC_MAX = 50
1052
+ kfd_dbg_trap_exception_code = ctypes.c_uint32 # enum
1053
+ KFD_EC_MASK_QUEUE = (KFD_EC_MASK(EC_QUEUE_WAVE_ABORT)|KFD_EC_MASK(EC_QUEUE_WAVE_TRAP)|KFD_EC_MASK(EC_QUEUE_WAVE_MATH_ERROR)|KFD_EC_MASK(EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION)|KFD_EC_MASK(EC_QUEUE_WAVE_MEMORY_VIOLATION)|KFD_EC_MASK(EC_QUEUE_WAVE_APERTURE_VIOLATION)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_DIM_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_CODE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_RESERVED)|KFD_EC_MASK(EC_QUEUE_PACKET_UNSUPPORTED)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_VENDOR_UNSUPPORTED)|KFD_EC_MASK(EC_QUEUE_PREEMPTION_ERROR)|KFD_EC_MASK(EC_QUEUE_NEW)) # macro
1054
+ KFD_EC_MASK_DEVICE = (KFD_EC_MASK(EC_DEVICE_QUEUE_DELETE)|KFD_EC_MASK(EC_DEVICE_RAS_ERROR)|KFD_EC_MASK(EC_DEVICE_FATAL_HALT)|KFD_EC_MASK(EC_DEVICE_MEMORY_VIOLATION)|KFD_EC_MASK(EC_DEVICE_NEW)) # macro
1055
+ KFD_EC_MASK_PROCESS = (KFD_EC_MASK(EC_PROCESS_RUNTIME)|KFD_EC_MASK(EC_PROCESS_DEVICE_REMOVE)) # macro
1056
+ KFD_EC_MASK_PACKET = (KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_DIM_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_CODE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_RESERVED)|KFD_EC_MASK(EC_QUEUE_PACKET_UNSUPPORTED)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_VENDOR_UNSUPPORTED)) # macro
1057
+ def KFD_DBG_EC_IS_VALID(ecode): # macro
1058
+ return (ecode>EC_NONE and ecode<EC_MAX)
1059
+ def KFD_DBG_EC_TYPE_IS_QUEUE(ecode): # macro
1060
+ return (KFD_DBG_EC_IS_VALID(ecode) and not not (KFD_EC_MASK(ecode)&(KFD_EC_MASK(EC_QUEUE_WAVE_ABORT)|KFD_EC_MASK(EC_QUEUE_WAVE_TRAP)|KFD_EC_MASK(EC_QUEUE_WAVE_MATH_ERROR)|KFD_EC_MASK(EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION)|KFD_EC_MASK(EC_QUEUE_WAVE_MEMORY_VIOLATION)|KFD_EC_MASK(EC_QUEUE_WAVE_APERTURE_VIOLATION)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_DIM_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_CODE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_RESERVED)|KFD_EC_MASK(EC_QUEUE_PACKET_UNSUPPORTED)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_VENDOR_UNSUPPORTED)|KFD_EC_MASK(EC_QUEUE_PREEMPTION_ERROR)|KFD_EC_MASK(EC_QUEUE_NEW))))
1061
+ def KFD_DBG_EC_TYPE_IS_DEVICE(ecode): # macro
1062
+ return (KFD_DBG_EC_IS_VALID(ecode) and not not (KFD_EC_MASK(ecode)&(KFD_EC_MASK(EC_DEVICE_QUEUE_DELETE)|KFD_EC_MASK(EC_DEVICE_RAS_ERROR)|KFD_EC_MASK(EC_DEVICE_FATAL_HALT)|KFD_EC_MASK(EC_DEVICE_MEMORY_VIOLATION)|KFD_EC_MASK(EC_DEVICE_NEW))))
1063
+ def KFD_DBG_EC_TYPE_IS_PROCESS(ecode): # macro
1064
+ return (KFD_DBG_EC_IS_VALID(ecode) and not not (KFD_EC_MASK(ecode)&(KFD_EC_MASK(EC_PROCESS_RUNTIME)|KFD_EC_MASK(EC_PROCESS_DEVICE_REMOVE))))
1065
+ def KFD_DBG_EC_TYPE_IS_PACKET(ecode): # macro
1066
+ return (KFD_DBG_EC_IS_VALID(ecode) and not not (KFD_EC_MASK(ecode)&(KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_DIM_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_CODE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_RESERVED)|KFD_EC_MASK(EC_QUEUE_PACKET_UNSUPPORTED)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID)|KFD_EC_MASK(EC_QUEUE_PACKET_VENDOR_UNSUPPORTED))))
1067
+
1068
+ # values for enumeration 'kfd_dbg_runtime_state'
1069
+ kfd_dbg_runtime_state__enumvalues = {
1070
+ 0: 'DEBUG_RUNTIME_STATE_DISABLED',
1071
+ 1: 'DEBUG_RUNTIME_STATE_ENABLED',
1072
+ 2: 'DEBUG_RUNTIME_STATE_ENABLED_BUSY',
1073
+ 3: 'DEBUG_RUNTIME_STATE_ENABLED_ERROR',
1074
+ }
1075
+ DEBUG_RUNTIME_STATE_DISABLED = 0
1076
+ DEBUG_RUNTIME_STATE_ENABLED = 1
1077
+ DEBUG_RUNTIME_STATE_ENABLED_BUSY = 2
1078
+ DEBUG_RUNTIME_STATE_ENABLED_ERROR = 3
1079
+ kfd_dbg_runtime_state = ctypes.c_uint32 # enum
1080
+ class struct_kfd_runtime_info(Structure):
1081
+ pass
1082
+
1083
+ struct_kfd_runtime_info._pack_ = 1 # source:False
1084
+ struct_kfd_runtime_info._fields_ = [
1085
+ ('r_debug', ctypes.c_uint64),
1086
+ ('runtime_state', ctypes.c_uint32),
1087
+ ('ttmp_setup', ctypes.c_uint32),
1088
+ ]
1089
+
1090
+ class struct_kfd_ioctl_runtime_enable_args(Structure):
1091
+ pass
1092
+
1093
+ struct_kfd_ioctl_runtime_enable_args._pack_ = 1 # source:False
1094
+ struct_kfd_ioctl_runtime_enable_args._fields_ = [
1095
+ ('r_debug', ctypes.c_uint64),
1096
+ ('mode_mask', ctypes.c_uint32),
1097
+ ('capabilities_mask', ctypes.c_uint32),
1098
+ ]
1099
+
1100
+ AMDKFD_IOC_RUNTIME_ENABLE = AMDKFD_IOWR ( 0x25 , struct_kfd_ioctl_runtime_enable_args ) # macro (from list)
1101
+ class struct_kfd_queue_snapshot_entry(Structure):
1102
+ pass
1103
+
1104
+ struct_kfd_queue_snapshot_entry._pack_ = 1 # source:False
1105
+ struct_kfd_queue_snapshot_entry._fields_ = [
1106
+ ('exception_status', ctypes.c_uint64),
1107
+ ('ring_base_address', ctypes.c_uint64),
1108
+ ('write_pointer_address', ctypes.c_uint64),
1109
+ ('read_pointer_address', ctypes.c_uint64),
1110
+ ('ctx_save_restore_address', ctypes.c_uint64),
1111
+ ('queue_id', ctypes.c_uint32),
1112
+ ('gpu_id', ctypes.c_uint32),
1113
+ ('ring_size', ctypes.c_uint32),
1114
+ ('queue_type', ctypes.c_uint32),
1115
+ ('ctx_save_restore_area_size', ctypes.c_uint32),
1116
+ ('reserved', ctypes.c_uint32),
1117
+ ]
1118
+
1119
+ class struct_kfd_context_save_area_header(Structure):
1120
+ pass
1121
+
1122
+ class struct_kfd_context_save_area_header_wave_state(Structure):
1123
+ pass
1124
+
1125
+ struct_kfd_context_save_area_header_wave_state._pack_ = 1 # source:False
1126
+ struct_kfd_context_save_area_header_wave_state._fields_ = [
1127
+ ('control_stack_offset', ctypes.c_uint32),
1128
+ ('control_stack_size', ctypes.c_uint32),
1129
+ ('wave_state_offset', ctypes.c_uint32),
1130
+ ('wave_state_size', ctypes.c_uint32),
1131
+ ]
1132
+
1133
+ struct_kfd_context_save_area_header._pack_ = 1 # source:False
1134
+ struct_kfd_context_save_area_header._fields_ = [
1135
+ ('wave_state', struct_kfd_context_save_area_header_wave_state),
1136
+ ('debug_offset', ctypes.c_uint32),
1137
+ ('debug_size', ctypes.c_uint32),
1138
+ ('err_payload_addr', ctypes.c_uint64),
1139
+ ('err_event_id', ctypes.c_uint32),
1140
+ ('reserved1', ctypes.c_uint32),
1141
+ ]
1142
+
1143
+
1144
+ # values for enumeration 'kfd_dbg_trap_operations'
1145
+ kfd_dbg_trap_operations__enumvalues = {
1146
+ 0: 'KFD_IOC_DBG_TRAP_ENABLE',
1147
+ 1: 'KFD_IOC_DBG_TRAP_DISABLE',
1148
+ 2: 'KFD_IOC_DBG_TRAP_SEND_RUNTIME_EVENT',
1149
+ 3: 'KFD_IOC_DBG_TRAP_SET_EXCEPTIONS_ENABLED',
1150
+ 4: 'KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE',
1151
+ 5: 'KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_MODE',
1152
+ 6: 'KFD_IOC_DBG_TRAP_SUSPEND_QUEUES',
1153
+ 7: 'KFD_IOC_DBG_TRAP_RESUME_QUEUES',
1154
+ 8: 'KFD_IOC_DBG_TRAP_SET_NODE_ADDRESS_WATCH',
1155
+ 9: 'KFD_IOC_DBG_TRAP_CLEAR_NODE_ADDRESS_WATCH',
1156
+ 10: 'KFD_IOC_DBG_TRAP_SET_FLAGS',
1157
+ 11: 'KFD_IOC_DBG_TRAP_QUERY_DEBUG_EVENT',
1158
+ 12: 'KFD_IOC_DBG_TRAP_QUERY_EXCEPTION_INFO',
1159
+ 13: 'KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT',
1160
+ 14: 'KFD_IOC_DBG_TRAP_GET_DEVICE_SNAPSHOT',
1161
+ }
1162
+ KFD_IOC_DBG_TRAP_ENABLE = 0
1163
+ KFD_IOC_DBG_TRAP_DISABLE = 1
1164
+ KFD_IOC_DBG_TRAP_SEND_RUNTIME_EVENT = 2
1165
+ KFD_IOC_DBG_TRAP_SET_EXCEPTIONS_ENABLED = 3
1166
+ KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE = 4
1167
+ KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_MODE = 5
1168
+ KFD_IOC_DBG_TRAP_SUSPEND_QUEUES = 6
1169
+ KFD_IOC_DBG_TRAP_RESUME_QUEUES = 7
1170
+ KFD_IOC_DBG_TRAP_SET_NODE_ADDRESS_WATCH = 8
1171
+ KFD_IOC_DBG_TRAP_CLEAR_NODE_ADDRESS_WATCH = 9
1172
+ KFD_IOC_DBG_TRAP_SET_FLAGS = 10
1173
+ KFD_IOC_DBG_TRAP_QUERY_DEBUG_EVENT = 11
1174
+ KFD_IOC_DBG_TRAP_QUERY_EXCEPTION_INFO = 12
1175
+ KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT = 13
1176
+ KFD_IOC_DBG_TRAP_GET_DEVICE_SNAPSHOT = 14
1177
+ kfd_dbg_trap_operations = ctypes.c_uint32 # enum
1178
+ class struct_kfd_ioctl_dbg_trap_enable_args(Structure):
1179
+ pass
1180
+
1181
+ struct_kfd_ioctl_dbg_trap_enable_args._pack_ = 1 # source:False
1182
+ struct_kfd_ioctl_dbg_trap_enable_args._fields_ = [
1183
+ ('exception_mask', ctypes.c_uint64),
1184
+ ('rinfo_ptr', ctypes.c_uint64),
1185
+ ('rinfo_size', ctypes.c_uint32),
1186
+ ('dbg_fd', ctypes.c_uint32),
1187
+ ]
1188
+
1189
+ class struct_kfd_ioctl_dbg_trap_send_runtime_event_args(Structure):
1190
+ pass
1191
+
1192
+ struct_kfd_ioctl_dbg_trap_send_runtime_event_args._pack_ = 1 # source:False
1193
+ struct_kfd_ioctl_dbg_trap_send_runtime_event_args._fields_ = [
1194
+ ('exception_mask', ctypes.c_uint64),
1195
+ ('gpu_id', ctypes.c_uint32),
1196
+ ('queue_id', ctypes.c_uint32),
1197
+ ]
1198
+
1199
+ class struct_kfd_ioctl_dbg_trap_set_exceptions_enabled_args(Structure):
1200
+ pass
1201
+
1202
+ struct_kfd_ioctl_dbg_trap_set_exceptions_enabled_args._pack_ = 1 # source:False
1203
+ struct_kfd_ioctl_dbg_trap_set_exceptions_enabled_args._fields_ = [
1204
+ ('exception_mask', ctypes.c_uint64),
1205
+ ]
1206
+
1207
+ class struct_kfd_ioctl_dbg_trap_set_wave_launch_override_args(Structure):
1208
+ pass
1209
+
1210
+ struct_kfd_ioctl_dbg_trap_set_wave_launch_override_args._pack_ = 1 # source:False
1211
+ struct_kfd_ioctl_dbg_trap_set_wave_launch_override_args._fields_ = [
1212
+ ('override_mode', ctypes.c_uint32),
1213
+ ('enable_mask', ctypes.c_uint32),
1214
+ ('support_request_mask', ctypes.c_uint32),
1215
+ ('pad', ctypes.c_uint32),
1216
+ ]
1217
+
1218
+ class struct_kfd_ioctl_dbg_trap_set_wave_launch_mode_args(Structure):
1219
+ pass
1220
+
1221
+ struct_kfd_ioctl_dbg_trap_set_wave_launch_mode_args._pack_ = 1 # source:False
1222
+ struct_kfd_ioctl_dbg_trap_set_wave_launch_mode_args._fields_ = [
1223
+ ('launch_mode', ctypes.c_uint32),
1224
+ ('pad', ctypes.c_uint32),
1225
+ ]
1226
+
1227
+ class struct_kfd_ioctl_dbg_trap_suspend_queues_args(Structure):
1228
+ pass
1229
+
1230
+ struct_kfd_ioctl_dbg_trap_suspend_queues_args._pack_ = 1 # source:False
1231
+ struct_kfd_ioctl_dbg_trap_suspend_queues_args._fields_ = [
1232
+ ('exception_mask', ctypes.c_uint64),
1233
+ ('queue_array_ptr', ctypes.c_uint64),
1234
+ ('num_queues', ctypes.c_uint32),
1235
+ ('grace_period', ctypes.c_uint32),
1236
+ ]
1237
+
1238
+ class struct_kfd_ioctl_dbg_trap_resume_queues_args(Structure):
1239
+ pass
1240
+
1241
+ struct_kfd_ioctl_dbg_trap_resume_queues_args._pack_ = 1 # source:False
1242
+ struct_kfd_ioctl_dbg_trap_resume_queues_args._fields_ = [
1243
+ ('queue_array_ptr', ctypes.c_uint64),
1244
+ ('num_queues', ctypes.c_uint32),
1245
+ ('pad', ctypes.c_uint32),
1246
+ ]
1247
+
1248
+ class struct_kfd_ioctl_dbg_trap_set_node_address_watch_args(Structure):
1249
+ pass
1250
+
1251
+ struct_kfd_ioctl_dbg_trap_set_node_address_watch_args._pack_ = 1 # source:False
1252
+ struct_kfd_ioctl_dbg_trap_set_node_address_watch_args._fields_ = [
1253
+ ('address', ctypes.c_uint64),
1254
+ ('mode', ctypes.c_uint32),
1255
+ ('mask', ctypes.c_uint32),
1256
+ ('gpu_id', ctypes.c_uint32),
1257
+ ('id', ctypes.c_uint32),
1258
+ ]
1259
+
1260
+ class struct_kfd_ioctl_dbg_trap_clear_node_address_watch_args(Structure):
1261
+ pass
1262
+
1263
+ struct_kfd_ioctl_dbg_trap_clear_node_address_watch_args._pack_ = 1 # source:False
1264
+ struct_kfd_ioctl_dbg_trap_clear_node_address_watch_args._fields_ = [
1265
+ ('gpu_id', ctypes.c_uint32),
1266
+ ('id', ctypes.c_uint32),
1267
+ ]
1268
+
1269
+ class struct_kfd_ioctl_dbg_trap_set_flags_args(Structure):
1270
+ pass
1271
+
1272
+ struct_kfd_ioctl_dbg_trap_set_flags_args._pack_ = 1 # source:False
1273
+ struct_kfd_ioctl_dbg_trap_set_flags_args._fields_ = [
1274
+ ('flags', ctypes.c_uint32),
1275
+ ('pad', ctypes.c_uint32),
1276
+ ]
1277
+
1278
+ class struct_kfd_ioctl_dbg_trap_query_debug_event_args(Structure):
1279
+ pass
1280
+
1281
+ struct_kfd_ioctl_dbg_trap_query_debug_event_args._pack_ = 1 # source:False
1282
+ struct_kfd_ioctl_dbg_trap_query_debug_event_args._fields_ = [
1283
+ ('exception_mask', ctypes.c_uint64),
1284
+ ('gpu_id', ctypes.c_uint32),
1285
+ ('queue_id', ctypes.c_uint32),
1286
+ ]
1287
+
1288
+ class struct_kfd_ioctl_dbg_trap_query_exception_info_args(Structure):
1289
+ pass
1290
+
1291
+ struct_kfd_ioctl_dbg_trap_query_exception_info_args._pack_ = 1 # source:False
1292
+ struct_kfd_ioctl_dbg_trap_query_exception_info_args._fields_ = [
1293
+ ('info_ptr', ctypes.c_uint64),
1294
+ ('info_size', ctypes.c_uint32),
1295
+ ('source_id', ctypes.c_uint32),
1296
+ ('exception_code', ctypes.c_uint32),
1297
+ ('clear_exception', ctypes.c_uint32),
1298
+ ]
1299
+
1300
+ class struct_kfd_ioctl_dbg_trap_queue_snapshot_args(Structure):
1301
+ pass
1302
+
1303
+ struct_kfd_ioctl_dbg_trap_queue_snapshot_args._pack_ = 1 # source:False
1304
+ struct_kfd_ioctl_dbg_trap_queue_snapshot_args._fields_ = [
1305
+ ('exception_mask', ctypes.c_uint64),
1306
+ ('snapshot_buf_ptr', ctypes.c_uint64),
1307
+ ('num_queues', ctypes.c_uint32),
1308
+ ('entry_size', ctypes.c_uint32),
1309
+ ]
1310
+
1311
+ class struct_kfd_ioctl_dbg_trap_device_snapshot_args(Structure):
1312
+ pass
1313
+
1314
+ struct_kfd_ioctl_dbg_trap_device_snapshot_args._pack_ = 1 # source:False
1315
+ struct_kfd_ioctl_dbg_trap_device_snapshot_args._fields_ = [
1316
+ ('exception_mask', ctypes.c_uint64),
1317
+ ('snapshot_buf_ptr', ctypes.c_uint64),
1318
+ ('num_devices', ctypes.c_uint32),
1319
+ ('entry_size', ctypes.c_uint32),
1320
+ ]
1321
+
1322
+ class struct_kfd_ioctl_dbg_trap_args(Structure):
1323
+ pass
1324
+
1325
+ class union_kfd_ioctl_dbg_trap_args_0(Union):
1326
+ _pack_ = 1 # source:False
1327
+ _fields_ = [
1328
+ ('enable', struct_kfd_ioctl_dbg_trap_enable_args),
1329
+ ('send_runtime_event', struct_kfd_ioctl_dbg_trap_send_runtime_event_args),
1330
+ ('set_exceptions_enabled', struct_kfd_ioctl_dbg_trap_set_exceptions_enabled_args),
1331
+ ('launch_override', struct_kfd_ioctl_dbg_trap_set_wave_launch_override_args),
1332
+ ('launch_mode', struct_kfd_ioctl_dbg_trap_set_wave_launch_mode_args),
1333
+ ('suspend_queues', struct_kfd_ioctl_dbg_trap_suspend_queues_args),
1334
+ ('resume_queues', struct_kfd_ioctl_dbg_trap_resume_queues_args),
1335
+ ('set_node_address_watch', struct_kfd_ioctl_dbg_trap_set_node_address_watch_args),
1336
+ ('clear_node_address_watch', struct_kfd_ioctl_dbg_trap_clear_node_address_watch_args),
1337
+ ('set_flags', struct_kfd_ioctl_dbg_trap_set_flags_args),
1338
+ ('query_debug_event', struct_kfd_ioctl_dbg_trap_query_debug_event_args),
1339
+ ('query_exception_info', struct_kfd_ioctl_dbg_trap_query_exception_info_args),
1340
+ ('queue_snapshot', struct_kfd_ioctl_dbg_trap_queue_snapshot_args),
1341
+ ('device_snapshot', struct_kfd_ioctl_dbg_trap_device_snapshot_args),
1342
+ ]
1343
+
1344
+ struct_kfd_ioctl_dbg_trap_args._pack_ = 1 # source:False
1345
+ struct_kfd_ioctl_dbg_trap_args._anonymous_ = ('_0',)
1346
+ struct_kfd_ioctl_dbg_trap_args._fields_ = [
1347
+ ('pid', ctypes.c_uint32),
1348
+ ('op', ctypes.c_uint32),
1349
+ ('_0', union_kfd_ioctl_dbg_trap_args_0),
1350
+ ]
1351
+
1352
+ AMDKFD_IOC_DBG_TRAP = AMDKFD_IOWR ( 0x26 , struct_kfd_ioctl_dbg_trap_args ) # macro (from list)
741
1353
  __all__ = \
742
1354
  ['AMDKFD_COMMAND_END', 'AMDKFD_COMMAND_START',
743
- 'AMDKFD_IOCTL_BASE', 'KFD_HW_EXCEPTION_ECC',
744
- 'KFD_HW_EXCEPTION_GPU_HANG', 'KFD_HW_EXCEPTION_PER_ENGINE_RESET',
745
- 'KFD_HW_EXCEPTION_WHOLE_GPU_RESET', 'KFD_IOCTL_H_INCLUDED',
746
- 'KFD_IOCTL_MAJOR_VERSION', 'KFD_IOCTL_MINOR_VERSION',
747
- 'KFD_IOCTL_SVM_ATTR_ACCESS', 'KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE',
1355
+ 'AMDKFD_IOCTL_BASE', 'DEBUG_RUNTIME_STATE_DISABLED',
1356
+ 'DEBUG_RUNTIME_STATE_ENABLED', 'DEBUG_RUNTIME_STATE_ENABLED_BUSY',
1357
+ 'DEBUG_RUNTIME_STATE_ENABLED_ERROR', 'EC_DEVICE_FATAL_HALT',
1358
+ 'EC_DEVICE_MEMORY_VIOLATION', 'EC_DEVICE_NEW',
1359
+ 'EC_DEVICE_QUEUE_DELETE', 'EC_DEVICE_RAS_ERROR', 'EC_MAX',
1360
+ 'EC_NONE', 'EC_PROCESS_DEVICE_REMOVE', 'EC_PROCESS_RUNTIME',
1361
+ 'EC_QUEUE_NEW', 'EC_QUEUE_PACKET_DISPATCH_CODE_INVALID',
1362
+ 'EC_QUEUE_PACKET_DISPATCH_DIM_INVALID',
1363
+ 'EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID',
1364
+ 'EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID',
1365
+ 'EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID',
1366
+ 'EC_QUEUE_PACKET_RESERVED', 'EC_QUEUE_PACKET_UNSUPPORTED',
1367
+ 'EC_QUEUE_PACKET_VENDOR_UNSUPPORTED', 'EC_QUEUE_PREEMPTION_ERROR',
1368
+ 'EC_QUEUE_WAVE_ABORT', 'EC_QUEUE_WAVE_APERTURE_VIOLATION',
1369
+ 'EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION', 'EC_QUEUE_WAVE_MATH_ERROR',
1370
+ 'EC_QUEUE_WAVE_MEMORY_VIOLATION', 'EC_QUEUE_WAVE_TRAP',
1371
+ 'KFD_CRIU_OP_CHECKPOINT', 'KFD_CRIU_OP_PROCESS_INFO',
1372
+ 'KFD_CRIU_OP_RESTORE', 'KFD_CRIU_OP_RESUME',
1373
+ 'KFD_CRIU_OP_UNPAUSE', 'KFD_DBG_QUEUE_ERROR_BIT',
1374
+ 'KFD_DBG_QUEUE_ERROR_MASK', 'KFD_DBG_QUEUE_INVALID_BIT',
1375
+ 'KFD_DBG_QUEUE_INVALID_MASK',
1376
+ 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ALL',
1377
+ 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ATOMIC',
1378
+ 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_NONREAD',
1379
+ 'KFD_DBG_TRAP_ADDRESS_WATCH_MODE_READ',
1380
+ 'KFD_DBG_TRAP_FLAG_SINGLE_MEM_OP',
1381
+ 'KFD_DBG_TRAP_MASK_DBG_ADDRESS_WATCH',
1382
+ 'KFD_DBG_TRAP_MASK_DBG_MEMORY_VIOLATION',
1383
+ 'KFD_DBG_TRAP_MASK_FP_DIVIDE_BY_ZERO',
1384
+ 'KFD_DBG_TRAP_MASK_FP_INEXACT',
1385
+ 'KFD_DBG_TRAP_MASK_FP_INPUT_DENORMAL',
1386
+ 'KFD_DBG_TRAP_MASK_FP_INVALID', 'KFD_DBG_TRAP_MASK_FP_OVERFLOW',
1387
+ 'KFD_DBG_TRAP_MASK_FP_UNDERFLOW',
1388
+ 'KFD_DBG_TRAP_MASK_INT_DIVIDE_BY_ZERO',
1389
+ 'KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_END',
1390
+ 'KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_START',
1391
+ 'KFD_DBG_TRAP_OVERRIDE_OR', 'KFD_DBG_TRAP_OVERRIDE_REPLACE',
1392
+ 'KFD_DBG_TRAP_WAVE_LAUNCH_MODE_DEBUG',
1393
+ 'KFD_DBG_TRAP_WAVE_LAUNCH_MODE_HALT',
1394
+ 'KFD_DBG_TRAP_WAVE_LAUNCH_MODE_NORMAL', 'KFD_EC_MASK_DEVICE',
1395
+ 'KFD_EC_MASK_PACKET', 'KFD_EC_MASK_PROCESS', 'KFD_EC_MASK_QUEUE',
1396
+ 'KFD_HW_EXCEPTION_ECC', 'KFD_HW_EXCEPTION_GPU_HANG',
1397
+ 'KFD_HW_EXCEPTION_PER_ENGINE_RESET',
1398
+ 'KFD_HW_EXCEPTION_WHOLE_GPU_RESET', 'KFD_INVALID_FD',
1399
+ 'KFD_IOCTL_H_INCLUDED', 'KFD_IOCTL_MAJOR_VERSION',
1400
+ 'KFD_IOCTL_MINOR_VERSION', 'KFD_IOCTL_SVM_ATTR_ACCESS',
1401
+ 'KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE',
748
1402
  'KFD_IOCTL_SVM_ATTR_CLR_FLAGS', 'KFD_IOCTL_SVM_ATTR_GRANULARITY',
749
1403
  'KFD_IOCTL_SVM_ATTR_NO_ACCESS',
750
1404
  'KFD_IOCTL_SVM_ATTR_PREFERRED_LOC',
751
1405
  'KFD_IOCTL_SVM_ATTR_PREFETCH_LOC', 'KFD_IOCTL_SVM_ATTR_SET_FLAGS',
752
- 'KFD_IOCTL_SVM_FLAG_COHERENT', 'KFD_IOCTL_SVM_FLAG_GPU_EXEC',
1406
+ 'KFD_IOCTL_SVM_FLAG_COHERENT', 'KFD_IOCTL_SVM_FLAG_EXT_COHERENT',
1407
+ 'KFD_IOCTL_SVM_FLAG_GPU_ALWAYS_MAPPED',
1408
+ 'KFD_IOCTL_SVM_FLAG_GPU_EXEC',
753
1409
  'KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY', 'KFD_IOCTL_SVM_FLAG_GPU_RO',
754
1410
  'KFD_IOCTL_SVM_FLAG_HIVE_LOCAL', 'KFD_IOCTL_SVM_FLAG_HOST_ACCESS',
755
1411
  'KFD_IOCTL_SVM_LOCATION_SYSMEM',
@@ -759,6 +1415,7 @@ __all__ = \
759
1415
  'KFD_IOC_ALLOC_MEM_FLAGS_COHERENT',
760
1416
  'KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL',
761
1417
  'KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE',
1418
+ 'KFD_IOC_ALLOC_MEM_FLAGS_EXT_COHERENT',
762
1419
  'KFD_IOC_ALLOC_MEM_FLAGS_GTT',
763
1420
  'KFD_IOC_ALLOC_MEM_FLAGS_MMIO_REMAP',
764
1421
  'KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE',
@@ -767,7 +1424,21 @@ __all__ = \
767
1424
  'KFD_IOC_ALLOC_MEM_FLAGS_USERPTR', 'KFD_IOC_ALLOC_MEM_FLAGS_VRAM',
768
1425
  'KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE',
769
1426
  'KFD_IOC_CACHE_POLICY_COHERENT',
770
- 'KFD_IOC_CACHE_POLICY_NONCOHERENT', 'KFD_IOC_EVENT_DEBUG_EVENT',
1427
+ 'KFD_IOC_CACHE_POLICY_NONCOHERENT',
1428
+ 'KFD_IOC_DBG_TRAP_CLEAR_NODE_ADDRESS_WATCH',
1429
+ 'KFD_IOC_DBG_TRAP_DISABLE', 'KFD_IOC_DBG_TRAP_ENABLE',
1430
+ 'KFD_IOC_DBG_TRAP_GET_DEVICE_SNAPSHOT',
1431
+ 'KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT',
1432
+ 'KFD_IOC_DBG_TRAP_QUERY_DEBUG_EVENT',
1433
+ 'KFD_IOC_DBG_TRAP_QUERY_EXCEPTION_INFO',
1434
+ 'KFD_IOC_DBG_TRAP_RESUME_QUEUES',
1435
+ 'KFD_IOC_DBG_TRAP_SEND_RUNTIME_EVENT',
1436
+ 'KFD_IOC_DBG_TRAP_SET_EXCEPTIONS_ENABLED',
1437
+ 'KFD_IOC_DBG_TRAP_SET_FLAGS',
1438
+ 'KFD_IOC_DBG_TRAP_SET_NODE_ADDRESS_WATCH',
1439
+ 'KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_MODE',
1440
+ 'KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE',
1441
+ 'KFD_IOC_DBG_TRAP_SUSPEND_QUEUES', 'KFD_IOC_EVENT_DEBUG_EVENT',
771
1442
  'KFD_IOC_EVENT_DEVICESTATECHANGE', 'KFD_IOC_EVENT_HW_EXCEPTION',
772
1443
  'KFD_IOC_EVENT_MEMORY', 'KFD_IOC_EVENT_NODECHANGE',
773
1444
  'KFD_IOC_EVENT_PROFILE_EVENT', 'KFD_IOC_EVENT_QUEUE_EVENT',
@@ -778,29 +1449,77 @@ __all__ = \
778
1449
  'KFD_IOC_WAIT_RESULT_TIMEOUT', 'KFD_MAX_QUEUE_PERCENTAGE',
779
1450
  'KFD_MAX_QUEUE_PRIORITY', 'KFD_MEM_ERR_GPU_HANG',
780
1451
  'KFD_MEM_ERR_NO_RAS', 'KFD_MEM_ERR_POISON_CONSUMED',
781
- 'KFD_MEM_ERR_SRAM_ECC', 'KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL',
782
- 'KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL', 'KFD_SIGNAL_EVENT_LIMIT',
1452
+ 'KFD_MEM_ERR_SRAM_ECC', 'KFD_MIGRATE_TRIGGERS',
1453
+ 'KFD_MIGRATE_TRIGGER_PAGEFAULT_CPU',
1454
+ 'KFD_MIGRATE_TRIGGER_PAGEFAULT_GPU',
1455
+ 'KFD_MIGRATE_TRIGGER_PREFETCH',
1456
+ 'KFD_MIGRATE_TRIGGER_TTM_EVICTION',
1457
+ 'KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL',
1458
+ 'KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL',
1459
+ 'KFD_QUEUE_EVICTION_CRIU_CHECKPOINT',
1460
+ 'KFD_QUEUE_EVICTION_CRIU_RESTORE', 'KFD_QUEUE_EVICTION_TRIGGERS',
1461
+ 'KFD_QUEUE_EVICTION_TRIGGER_SUSPEND',
1462
+ 'KFD_QUEUE_EVICTION_TRIGGER_SVM',
1463
+ 'KFD_QUEUE_EVICTION_TRIGGER_TTM',
1464
+ 'KFD_QUEUE_EVICTION_TRIGGER_USERPTR',
1465
+ 'KFD_RUNTIME_ENABLE_MODE_ENABLE_MASK',
1466
+ 'KFD_RUNTIME_ENABLE_MODE_TTMP_SAVE_MASK',
1467
+ 'KFD_SIGNAL_EVENT_LIMIT', 'KFD_SMI_EVENT_ALL_PROCESS',
783
1468
  'KFD_SMI_EVENT_GPU_POST_RESET', 'KFD_SMI_EVENT_GPU_PRE_RESET',
784
- 'KFD_SMI_EVENT_NONE', 'KFD_SMI_EVENT_THERMAL_THROTTLE',
785
- 'KFD_SMI_EVENT_VMFAULT', 'MAX_ALLOWED_AW_BUFF_SIZE',
786
- 'MAX_ALLOWED_NUM_POINTS', 'MAX_ALLOWED_WAC_BUFF_SIZE',
787
- 'NUM_OF_SUPPORTED_GPUS', '_IO', '_IOR', '_IOW', '_IOWR',
788
- 'kfd_ioctl_svm_attr_type', 'kfd_ioctl_svm_location',
789
- 'kfd_ioctl_svm_op', 'kfd_mmio_remap', 'kfd_smi_event',
790
- 'struct_kfd_event_data', 'struct_kfd_hsa_hw_exception_data',
1469
+ 'KFD_SMI_EVENT_MIGRATE_END', 'KFD_SMI_EVENT_MIGRATE_START',
1470
+ 'KFD_SMI_EVENT_MSG_SIZE', 'KFD_SMI_EVENT_NONE',
1471
+ 'KFD_SMI_EVENT_PAGE_FAULT_END', 'KFD_SMI_EVENT_PAGE_FAULT_START',
1472
+ 'KFD_SMI_EVENT_QUEUE_EVICTION', 'KFD_SMI_EVENT_QUEUE_RESTORE',
1473
+ 'KFD_SMI_EVENT_THERMAL_THROTTLE', 'KFD_SMI_EVENT_UNMAP_FROM_GPU',
1474
+ 'KFD_SMI_EVENT_VMFAULT', 'KFD_SVM_UNMAP_TRIGGERS',
1475
+ 'KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY',
1476
+ 'KFD_SVM_UNMAP_TRIGGER_MMU_NOTIFY_MIGRATE',
1477
+ 'KFD_SVM_UNMAP_TRIGGER_UNMAP_FROM_CPU',
1478
+ 'MAX_ALLOWED_AW_BUFF_SIZE', 'MAX_ALLOWED_NUM_POINTS',
1479
+ 'MAX_ALLOWED_WAC_BUFF_SIZE', 'NUM_OF_SUPPORTED_GPUS', '_IO',
1480
+ '_IOR', '_IOW', '_IOWR', 'kfd_criu_op', 'kfd_dbg_runtime_state',
1481
+ 'kfd_dbg_trap_address_watch_mode', 'kfd_dbg_trap_exception_code',
1482
+ 'kfd_dbg_trap_flags', 'kfd_dbg_trap_mask',
1483
+ 'kfd_dbg_trap_operations', 'kfd_dbg_trap_override_mode',
1484
+ 'kfd_dbg_trap_wave_launch_mode', 'kfd_ioctl_svm_attr_type',
1485
+ 'kfd_ioctl_svm_location', 'kfd_ioctl_svm_op', 'kfd_mmio_remap',
1486
+ 'kfd_smi_event', 'struct_kfd_context_save_area_header',
1487
+ 'struct_kfd_context_save_area_header_wave_state',
1488
+ 'struct_kfd_criu_bo_bucket', 'struct_kfd_criu_device_bucket',
1489
+ 'struct_kfd_dbg_device_info_entry', 'struct_kfd_event_data',
1490
+ 'struct_kfd_hsa_hw_exception_data',
791
1491
  'struct_kfd_hsa_memory_exception_data',
1492
+ 'struct_kfd_hsa_signal_event_data',
792
1493
  'struct_kfd_ioctl_acquire_vm_args',
793
1494
  'struct_kfd_ioctl_alloc_memory_of_gpu_args',
794
1495
  'struct_kfd_ioctl_alloc_queue_gws_args',
795
1496
  'struct_kfd_ioctl_create_event_args',
796
1497
  'struct_kfd_ioctl_create_queue_args',
1498
+ 'struct_kfd_ioctl_criu_args',
797
1499
  'struct_kfd_ioctl_dbg_address_watch_args',
798
1500
  'struct_kfd_ioctl_dbg_register_args',
1501
+ 'struct_kfd_ioctl_dbg_trap_args',
1502
+ 'struct_kfd_ioctl_dbg_trap_clear_node_address_watch_args',
1503
+ 'struct_kfd_ioctl_dbg_trap_device_snapshot_args',
1504
+ 'struct_kfd_ioctl_dbg_trap_enable_args',
1505
+ 'struct_kfd_ioctl_dbg_trap_query_debug_event_args',
1506
+ 'struct_kfd_ioctl_dbg_trap_query_exception_info_args',
1507
+ 'struct_kfd_ioctl_dbg_trap_queue_snapshot_args',
1508
+ 'struct_kfd_ioctl_dbg_trap_resume_queues_args',
1509
+ 'struct_kfd_ioctl_dbg_trap_send_runtime_event_args',
1510
+ 'struct_kfd_ioctl_dbg_trap_set_exceptions_enabled_args',
1511
+ 'struct_kfd_ioctl_dbg_trap_set_flags_args',
1512
+ 'struct_kfd_ioctl_dbg_trap_set_node_address_watch_args',
1513
+ 'struct_kfd_ioctl_dbg_trap_set_wave_launch_mode_args',
1514
+ 'struct_kfd_ioctl_dbg_trap_set_wave_launch_override_args',
1515
+ 'struct_kfd_ioctl_dbg_trap_suspend_queues_args',
799
1516
  'struct_kfd_ioctl_dbg_unregister_args',
800
1517
  'struct_kfd_ioctl_dbg_wave_control_args',
801
1518
  'struct_kfd_ioctl_destroy_event_args',
802
1519
  'struct_kfd_ioctl_destroy_queue_args',
1520
+ 'struct_kfd_ioctl_export_dmabuf_args',
803
1521
  'struct_kfd_ioctl_free_memory_of_gpu_args',
1522
+ 'struct_kfd_ioctl_get_available_memory_args',
804
1523
  'struct_kfd_ioctl_get_clock_counters_args',
805
1524
  'struct_kfd_ioctl_get_dmabuf_info_args',
806
1525
  'struct_kfd_ioctl_get_process_apertures_args',
@@ -811,6 +1530,7 @@ __all__ = \
811
1530
  'struct_kfd_ioctl_import_dmabuf_args',
812
1531
  'struct_kfd_ioctl_map_memory_to_gpu_args',
813
1532
  'struct_kfd_ioctl_reset_event_args',
1533
+ 'struct_kfd_ioctl_runtime_enable_args',
814
1534
  'struct_kfd_ioctl_set_cu_mask_args',
815
1535
  'struct_kfd_ioctl_set_event_args',
816
1536
  'struct_kfd_ioctl_set_memory_policy_args',
@@ -823,4 +1543,6 @@ __all__ = \
823
1543
  'struct_kfd_ioctl_update_queue_args',
824
1544
  'struct_kfd_ioctl_wait_events_args',
825
1545
  'struct_kfd_memory_exception_failure',
826
- 'struct_kfd_process_device_apertures', 'union_kfd_event_data_0']
1546
+ 'struct_kfd_process_device_apertures',
1547
+ 'struct_kfd_queue_snapshot_entry', 'struct_kfd_runtime_info',
1548
+ 'union_kfd_event_data_0', 'union_kfd_ioctl_dbg_trap_args_0']