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
@@ -19,7 +19,7 @@ def _try_dlopen_amd_comgr():
19
19
  for candidate in PATHS_TO_TRY:
20
20
  try: return ctypes.CDLL(candidate)
21
21
  except OSError: pass
22
- raise RuntimeError("library amd_comgr not found")
22
+ return None
23
23
 
24
24
 
25
25
  def string_cast(char_pointer, encoding='utf-8', errors='strict'):
@@ -226,7 +226,8 @@ amd_comgr_data_kind_s__enumvalues = {
226
226
  17: 'AMD_COMGR_DATA_KIND_AR',
227
227
  18: 'AMD_COMGR_DATA_KIND_BC_BUNDLE',
228
228
  19: 'AMD_COMGR_DATA_KIND_AR_BUNDLE',
229
- 19: 'AMD_COMGR_DATA_KIND_LAST',
229
+ 20: 'AMD_COMGR_DATA_KIND_OBJ_BUNDLE',
230
+ 20: 'AMD_COMGR_DATA_KIND_LAST',
230
231
  }
231
232
  AMD_COMGR_DATA_KIND_UNDEF = 0
232
233
  AMD_COMGR_DATA_KIND_SOURCE = 1
@@ -242,7 +243,8 @@ AMD_COMGR_DATA_KIND_FATBIN = 16
242
243
  AMD_COMGR_DATA_KIND_AR = 17
243
244
  AMD_COMGR_DATA_KIND_BC_BUNDLE = 18
244
245
  AMD_COMGR_DATA_KIND_AR_BUNDLE = 19
245
- AMD_COMGR_DATA_KIND_LAST = 19
246
+ AMD_COMGR_DATA_KIND_OBJ_BUNDLE = 20
247
+ AMD_COMGR_DATA_KIND_LAST = 20
246
248
  amd_comgr_data_kind_s = ctypes.c_uint32 # enum
247
249
  amd_comgr_data_kind_t = amd_comgr_data_kind_s
248
250
  amd_comgr_data_kind_t__enumvalues = amd_comgr_data_kind_s__enumvalues
@@ -515,6 +517,24 @@ try:
515
517
  amd_comgr_action_info_get_option_list_item.argtypes = [amd_comgr_action_info_t, size_t, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_char)]
516
518
  except AttributeError:
517
519
  pass
520
+ try:
521
+ amd_comgr_action_info_set_bundle_entry_ids = _libraries['libamd_comgr.so'].amd_comgr_action_info_set_bundle_entry_ids
522
+ amd_comgr_action_info_set_bundle_entry_ids.restype = amd_comgr_status_t
523
+ amd_comgr_action_info_set_bundle_entry_ids.argtypes = [amd_comgr_action_info_t, ctypes.POINTER(ctypes.c_char) * 0, size_t]
524
+ except AttributeError:
525
+ pass
526
+ try:
527
+ amd_comgr_action_info_get_bundle_entry_id_count = _libraries['libamd_comgr.so'].amd_comgr_action_info_get_bundle_entry_id_count
528
+ amd_comgr_action_info_get_bundle_entry_id_count.restype = amd_comgr_status_t
529
+ amd_comgr_action_info_get_bundle_entry_id_count.argtypes = [amd_comgr_action_info_t, ctypes.POINTER(ctypes.c_uint64)]
530
+ except AttributeError:
531
+ pass
532
+ try:
533
+ amd_comgr_action_info_get_bundle_entry_id = _libraries['libamd_comgr.so'].amd_comgr_action_info_get_bundle_entry_id
534
+ amd_comgr_action_info_get_bundle_entry_id.restype = amd_comgr_status_t
535
+ amd_comgr_action_info_get_bundle_entry_id.argtypes = [amd_comgr_action_info_t, size_t, ctypes.POINTER(ctypes.c_uint64), ctypes.POINTER(ctypes.c_char)]
536
+ except AttributeError:
537
+ pass
518
538
  try:
519
539
  amd_comgr_action_info_set_working_directory_path = _libraries['libamd_comgr.so'].amd_comgr_action_info_set_working_directory_path
520
540
  amd_comgr_action_info_set_working_directory_path.restype = amd_comgr_status_t
@@ -560,7 +580,8 @@ amd_comgr_action_kind_s__enumvalues = {
560
580
  15: 'AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC',
561
581
  16: 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE',
562
582
  17: 'AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE',
563
- 17: 'AMD_COMGR_ACTION_LAST',
583
+ 18: 'AMD_COMGR_ACTION_UNBUNDLE',
584
+ 18: 'AMD_COMGR_ACTION_LAST',
564
585
  }
565
586
  AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR = 0
566
587
  AMD_COMGR_ACTION_ADD_PRECOMPILED_HEADERS = 1
@@ -580,7 +601,8 @@ AMD_COMGR_ACTION_COMPILE_SOURCE_TO_FATBIN = 14
580
601
  AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC = 15
581
602
  AMD_COMGR_ACTION_COMPILE_SOURCE_TO_RELOCATABLE = 16
582
603
  AMD_COMGR_ACTION_COMPILE_SOURCE_TO_EXECUTABLE = 17
583
- AMD_COMGR_ACTION_LAST = 17
604
+ AMD_COMGR_ACTION_UNBUNDLE = 18
605
+ AMD_COMGR_ACTION_LAST = 18
584
606
  amd_comgr_action_kind_s = ctypes.c_uint32 # enum
585
607
  amd_comgr_action_kind_t = amd_comgr_action_kind_s
586
608
  amd_comgr_action_kind_t__enumvalues = amd_comgr_action_kind_s__enumvalues
@@ -801,12 +823,13 @@ __all__ = \
801
823
  'AMD_COMGR_ACTION_LINK_RELOCATABLE_TO_RELOCATABLE',
802
824
  'AMD_COMGR_ACTION_OPTIMIZE_BC_TO_BC',
803
825
  'AMD_COMGR_ACTION_SOURCE_TO_PREPROCESSOR',
804
- 'AMD_COMGR_DATA_KIND_AR', 'AMD_COMGR_DATA_KIND_AR_BUNDLE',
805
- 'AMD_COMGR_DATA_KIND_BC', 'AMD_COMGR_DATA_KIND_BC_BUNDLE',
806
- 'AMD_COMGR_DATA_KIND_BYTES', 'AMD_COMGR_DATA_KIND_DIAGNOSTIC',
826
+ 'AMD_COMGR_ACTION_UNBUNDLE', 'AMD_COMGR_DATA_KIND_AR',
827
+ 'AMD_COMGR_DATA_KIND_AR_BUNDLE', 'AMD_COMGR_DATA_KIND_BC',
828
+ 'AMD_COMGR_DATA_KIND_BC_BUNDLE', 'AMD_COMGR_DATA_KIND_BYTES',
829
+ 'AMD_COMGR_DATA_KIND_DIAGNOSTIC',
807
830
  'AMD_COMGR_DATA_KIND_EXECUTABLE', 'AMD_COMGR_DATA_KIND_FATBIN',
808
831
  'AMD_COMGR_DATA_KIND_INCLUDE', 'AMD_COMGR_DATA_KIND_LAST',
809
- 'AMD_COMGR_DATA_KIND_LOG',
832
+ 'AMD_COMGR_DATA_KIND_LOG', 'AMD_COMGR_DATA_KIND_OBJ_BUNDLE',
810
833
  'AMD_COMGR_DATA_KIND_PRECOMPILED_HEADER',
811
834
  'AMD_COMGR_DATA_KIND_RELOCATABLE', 'AMD_COMGR_DATA_KIND_SOURCE',
812
835
  'AMD_COMGR_DATA_KIND_UNDEF', 'AMD_COMGR_LANGUAGE_HC',
@@ -828,6 +851,8 @@ __all__ = \
828
851
  'AMD_COMGR_SYMBOL_TYPE_OBJECT', 'AMD_COMGR_SYMBOL_TYPE_SECTION',
829
852
  'AMD_COMGR_SYMBOL_TYPE_UNKNOWN', 'amd_comgr_action_data_count',
830
853
  'amd_comgr_action_data_get_data',
854
+ 'amd_comgr_action_info_get_bundle_entry_id',
855
+ 'amd_comgr_action_info_get_bundle_entry_id_count',
831
856
  'amd_comgr_action_info_get_isa_name',
832
857
  'amd_comgr_action_info_get_language',
833
858
  'amd_comgr_action_info_get_logging',
@@ -835,6 +860,7 @@ __all__ = \
835
860
  'amd_comgr_action_info_get_option_list_item',
836
861
  'amd_comgr_action_info_get_options',
837
862
  'amd_comgr_action_info_get_working_directory_path',
863
+ 'amd_comgr_action_info_set_bundle_entry_ids',
838
864
  'amd_comgr_action_info_set_isa_name',
839
865
  'amd_comgr_action_info_set_language',
840
866
  'amd_comgr_action_info_set_logging',