tinygrad 0.10.0__py3-none-any.whl → 0.10.2__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 (88) hide show
  1. tinygrad/codegen/devectorizer.py +247 -0
  2. tinygrad/codegen/expander.py +121 -0
  3. tinygrad/codegen/kernel.py +141 -201
  4. tinygrad/codegen/linearize.py +223 -84
  5. tinygrad/codegen/lowerer.py +60 -42
  6. tinygrad/codegen/symbolic.py +476 -0
  7. tinygrad/codegen/transcendental.py +22 -13
  8. tinygrad/device.py +187 -47
  9. tinygrad/dtype.py +39 -28
  10. tinygrad/engine/jit.py +83 -65
  11. tinygrad/engine/memory.py +4 -5
  12. tinygrad/engine/multi.py +161 -0
  13. tinygrad/engine/realize.py +62 -108
  14. tinygrad/engine/schedule.py +396 -357
  15. tinygrad/engine/search.py +55 -66
  16. tinygrad/gradient.py +73 -0
  17. tinygrad/helpers.py +81 -59
  18. tinygrad/nn/__init__.py +30 -32
  19. tinygrad/nn/datasets.py +1 -2
  20. tinygrad/nn/optim.py +22 -26
  21. tinygrad/nn/state.py +91 -66
  22. tinygrad/ops.py +492 -641
  23. tinygrad/renderer/__init__.py +95 -36
  24. tinygrad/renderer/cstyle.py +99 -92
  25. tinygrad/renderer/llvmir.py +83 -34
  26. tinygrad/renderer/ptx.py +83 -99
  27. tinygrad/renderer/wgsl.py +95 -0
  28. tinygrad/runtime/autogen/amd_gpu.py +39507 -12
  29. tinygrad/runtime/autogen/comgr.py +2 -0
  30. tinygrad/runtime/autogen/kfd.py +4 -3
  31. tinygrad/runtime/autogen/kgsl.py +1 -1
  32. tinygrad/runtime/autogen/libc.py +404 -71
  33. tinygrad/runtime/autogen/llvm.py +11379 -0
  34. tinygrad/runtime/autogen/pci.py +1333 -0
  35. tinygrad/runtime/autogen/vfio.py +891 -0
  36. tinygrad/runtime/autogen/webgpu.py +6985 -0
  37. tinygrad/runtime/graph/cuda.py +8 -9
  38. tinygrad/runtime/graph/hcq.py +84 -79
  39. tinygrad/runtime/graph/metal.py +40 -43
  40. tinygrad/runtime/ops_amd.py +498 -334
  41. tinygrad/runtime/ops_cloud.py +34 -34
  42. tinygrad/runtime/ops_cpu.py +24 -0
  43. tinygrad/runtime/ops_cuda.py +30 -27
  44. tinygrad/runtime/ops_disk.py +62 -63
  45. tinygrad/runtime/ops_dsp.py +159 -42
  46. tinygrad/runtime/ops_gpu.py +30 -30
  47. tinygrad/runtime/ops_hip.py +29 -31
  48. tinygrad/runtime/ops_llvm.py +48 -41
  49. tinygrad/runtime/ops_metal.py +149 -113
  50. tinygrad/runtime/ops_npy.py +2 -2
  51. tinygrad/runtime/ops_nv.py +238 -273
  52. tinygrad/runtime/ops_python.py +55 -50
  53. tinygrad/runtime/ops_qcom.py +129 -157
  54. tinygrad/runtime/ops_webgpu.py +225 -0
  55. tinygrad/runtime/support/allocator.py +94 -0
  56. tinygrad/runtime/support/am/__init__.py +0 -0
  57. tinygrad/runtime/support/am/amdev.py +396 -0
  58. tinygrad/runtime/support/am/ip.py +463 -0
  59. tinygrad/runtime/support/compiler_cuda.py +4 -2
  60. tinygrad/runtime/support/elf.py +28 -4
  61. tinygrad/runtime/support/hcq.py +256 -324
  62. tinygrad/runtime/support/llvm.py +26 -0
  63. tinygrad/shape/shapetracker.py +85 -53
  64. tinygrad/shape/view.py +104 -140
  65. tinygrad/spec.py +155 -0
  66. tinygrad/tensor.py +835 -527
  67. tinygrad/viz/assets/cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/highlight.min.js +1232 -0
  68. tinygrad/viz/assets/cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/languages/cpp.min.js +47 -0
  69. tinygrad/viz/assets/cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/languages/python.min.js +42 -0
  70. tinygrad/viz/assets/cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/styles/default.min.css +9 -0
  71. tinygrad/viz/assets/d3js.org/d3.v5.min.js +2 -0
  72. tinygrad/viz/assets/dagrejs.github.io/project/dagre-d3/latest/dagre-d3.min.js +4816 -0
  73. tinygrad/viz/assets/unpkg.com/@highlightjs/cdn-assets@11.10.0/styles/tokyo-night-dark.min.css +8 -0
  74. tinygrad/viz/index.html +544 -0
  75. tinygrad/viz/perfetto.html +178 -0
  76. tinygrad/viz/serve.py +205 -0
  77. {tinygrad-0.10.0.dist-info → tinygrad-0.10.2.dist-info}/METADATA +48 -25
  78. tinygrad-0.10.2.dist-info/RECORD +99 -0
  79. {tinygrad-0.10.0.dist-info → tinygrad-0.10.2.dist-info}/WHEEL +1 -1
  80. tinygrad/codegen/uopgraph.py +0 -506
  81. tinygrad/engine/lazy.py +0 -228
  82. tinygrad/function.py +0 -212
  83. tinygrad/multi.py +0 -177
  84. tinygrad/runtime/graph/clang.py +0 -39
  85. tinygrad/runtime/ops_clang.py +0 -35
  86. tinygrad-0.10.0.dist-info/RECORD +0 -77
  87. {tinygrad-0.10.0.dist-info → tinygrad-0.10.2.dist-info}/LICENSE +0 -0
  88. {tinygrad-0.10.0.dist-info → tinygrad-0.10.2.dist-info}/top_level.txt +0 -0
@@ -1,35 +0,0 @@
1
- from typing import Optional, List
2
- import ctypes, subprocess, pathlib, tempfile
3
- from tinygrad.device import Compiled, Compiler, MallocAllocator
4
- from tinygrad.helpers import cpu_time_execution, cpu_objdump
5
- from tinygrad.renderer.cstyle import ClangRenderer
6
-
7
- class ClangCompiler(Compiler):
8
- def __init__(self, cachekey="compile_clang", args:Optional[List[str]]=None, objdump_tool='objdump'):
9
- self.args = ['-march=native'] if args is None else args
10
- self.objdump_tool = objdump_tool
11
- super().__init__(cachekey)
12
-
13
- def compile(self, src:str) -> bytes:
14
- # TODO: remove file write. sadly clang doesn't like the use of /dev/stdout here
15
- with tempfile.NamedTemporaryFile(delete=True) as output_file:
16
- subprocess.check_output(['clang', '-shared', *self.args, '-O2', '-Wall', '-Werror', '-x', 'c', '-fPIC', '-ffreestanding', '-nostdlib',
17
- '-', '-o', str(output_file.name)], input=src.encode('utf-8'))
18
- return pathlib.Path(output_file.name).read_bytes()
19
-
20
- def disassemble(self, lib:bytes): return cpu_objdump(lib, self.objdump_tool)
21
-
22
- class ClangProgram:
23
- def __init__(self, name:str, lib:bytes):
24
- self.name, self.lib = name, lib
25
- # write to disk so we can load it
26
- with tempfile.NamedTemporaryFile(delete=True) as cached_file_path:
27
- pathlib.Path(cached_file_path.name).write_bytes(lib)
28
- self.fxn = ctypes.CDLL(str(cached_file_path.name))[name]
29
-
30
- def __call__(self, *bufs, vals=(), wait=False): return cpu_time_execution(lambda: self.fxn(*bufs, *vals), enable=wait)
31
-
32
- class ClangDevice(Compiled):
33
- def __init__(self, device:str):
34
- from tinygrad.runtime.graph.clang import ClangGraph
35
- super().__init__(device, MallocAllocator, ClangRenderer(), ClangCompiler(), ClangProgram, ClangGraph)
@@ -1,77 +0,0 @@
1
- tinygrad/__init__.py,sha256=2Jhg7NSWlegCi4OAfGW0iHRVHeqMx09f7446rwAmc60,587
2
- tinygrad/device.py,sha256=8jr2SuxLHFk84e_9ky6pdh5v8MvPlT5rXsP0Ls04kNU,12513
3
- tinygrad/dtype.py,sha256=a9WaH5bISo1WNFvPpcC_EL_fHNP9faiBIOHFrKaYl9A,9874
4
- tinygrad/function.py,sha256=SAVRzPzh5kKyb01TSOCbFG8B02he7aer7S4uoY-XFoA,8464
5
- tinygrad/helpers.py,sha256=yJelGLmg8SH1R9gW77bv5bkuI4RCXuTcQVnZdPlk108,17969
6
- tinygrad/multi.py,sha256=cRy_bVA46GwB0aES_jcuLYLco6klQUuiosQcIiANBJ0,11809
7
- tinygrad/ops.py,sha256=sckffasep4LxfWFeEBS6BeMEYpjvqoBUL2k6mMh__ME,60926
8
- tinygrad/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- tinygrad/tensor.py,sha256=NF2UNn_Mvv1uZT9H8PYVLawQ7dEpRwQU-1wiu-cREhM,170536
10
- tinygrad/codegen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- tinygrad/codegen/kernel.py,sha256=WzcvbkOLBPhcC8tuPUEH1BLF_UqFzL7PZkanfefSHgQ,45406
12
- tinygrad/codegen/linearize.py,sha256=kQ1NQE_8OThIoWRrMVCvXKqd_8uXB_4uIrB_tw_hXGc,3926
13
- tinygrad/codegen/lowerer.py,sha256=GwFiie_j1-kLZrXELJv_HTEltSJ1DULWxsbiQDnnrT8,7725
14
- tinygrad/codegen/transcendental.py,sha256=lZX8y_eAPQGom8gNypNLg5PpxBchrrLKG6b24CZLLkc,13155
15
- tinygrad/codegen/uopgraph.py,sha256=bqGgqSbmE76pj77V96i5E3HucpRA67Q84MqHX0Fn3MY,28842
16
- tinygrad/engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- tinygrad/engine/jit.py,sha256=wXlTUhXa4p11ZmShCPY5nH2PGxJpDXbfCRFk7rOMGiA,15838
18
- tinygrad/engine/lazy.py,sha256=g8i1W5Lrd5WA8rcKBBonVxLUIVVOjPO46ZIDteADIrk,13836
19
- tinygrad/engine/memory.py,sha256=30WHQahkQR0MooGgxA2DuyLnxpLtiRu-nuF11hhzZb4,3303
20
- tinygrad/engine/realize.py,sha256=cGVrGrryfaNgoNM9DNhvfngH7tkSm73nMLc35G_Ud6E,12922
21
- tinygrad/engine/schedule.py,sha256=jP4F0bgGWKVDxWjzK8ozHwcntn22Kkgixvj2UAAd1B4,23495
22
- tinygrad/engine/search.py,sha256=fJfiwttnpC0NpCfrRPwbk_9VPMLnBDXH0S1IkK3Ow6s,12473
23
- tinygrad/nn/__init__.py,sha256=Jl7ddXj8EOhximbQWUgVzkwn_ODupNJPda_v-HJp1As,15574
24
- tinygrad/nn/datasets.py,sha256=JyhoLwNB9Yek2IORMQ6cGRh5fnrYol5hkz1cAuTELPk,1067
25
- tinygrad/nn/optim.py,sha256=eznleXq_eudT--oEIUD79ZMRtAOczoCssTAPWQ_t30E,6808
26
- tinygrad/nn/state.py,sha256=XvgYNHEHksQyGvQnHmtRB4PLF1OUQi72FX7MKp_CTWI,14806
27
- tinygrad/renderer/__init__.py,sha256=Edhs-ldaHirH0F_JAN7HrVZ9AGCjLzQdb57l1es4muE,4529
28
- tinygrad/renderer/cstyle.py,sha256=oMIQk2TscKi1huNaUwSyJC0u-NZABvJ9xI3Ti1a7RII,31279
29
- tinygrad/renderer/llvmir.py,sha256=k_OPni2X7xVCUugiJ5ZczXf8wYrlkFllcZXhlMt1fNc,8137
30
- tinygrad/renderer/ptx.py,sha256=lIcMtqcvcrC9vW6SNqiSBDyobP-ytGwGahZZFQwSKTQ,16041
31
- tinygrad/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- tinygrad/runtime/ops_amd.py,sha256=7ZKaqBLL6gqhYlwhB8m6n5wlN-hPs_t36MPaQR_ocBA,29860
33
- tinygrad/runtime/ops_clang.py,sha256=kEbyFQimfLwuhOeIIKvcXUpw7R8H1Mf5YzceYPTcs4E,1758
34
- tinygrad/runtime/ops_cloud.py,sha256=wO4CZxl2fdVwcZsk41Rr473git_IDexIMru_KZV_vno,10425
35
- tinygrad/runtime/ops_cuda.py,sha256=TDXjERPZ8l0btVa1WRqVLd-DOAECBfxvMvLitC9Rows,6994
36
- tinygrad/runtime/ops_disk.py,sha256=b3jwNJW_s3CtRmubUIWbHChERJFbUJrfCl_alFDtepg,6689
37
- tinygrad/runtime/ops_dsp.py,sha256=NgOjV-hrsmwfJEtkr63KW7esuzQH2rk4yjzxjLcpuOg,10292
38
- tinygrad/runtime/ops_gpu.py,sha256=0l2QF3EMtNjRFRE8q5rp7B6Ub88Mir_6rz0aDnLupZM,9006
39
- tinygrad/runtime/ops_hip.py,sha256=nbYQIGKbSgAJ2PILJH3J-i3QR5AmJG8KTVMGqsbPLtE,3845
40
- tinygrad/runtime/ops_llvm.py,sha256=mSrWSKTY1wAy1skFXTgMAJPYLgxFD_ycphEkzhfhIZo,2499
41
- tinygrad/runtime/ops_metal.py,sha256=C_1CqWxf-VME0XyJ7i29Bzx7VURTcDUh4lH_t3QrFcw,11144
42
- tinygrad/runtime/ops_npy.py,sha256=HSDb47vcbPvDiG3EmSGPC0W-EPO9O5R0TqlQKnYxANU,404
43
- tinygrad/runtime/ops_nv.py,sha256=tpkmlEYFZW18k0mzHFP53esFpWx1O1mG06uv-y4GIro,38280
44
- tinygrad/runtime/ops_python.py,sha256=R6ie1DrY8uuaffS3ZPOWg3x1FBATlBLDMkIoBVWmUZs,11156
45
- tinygrad/runtime/ops_qcom.py,sha256=I8mXBCJk9gsDcFVwDakktgwuMwxjauHp5vub9LoKKjM,24453
46
- tinygrad/runtime/autogen/adreno.py,sha256=u7VxIomPAlW3nFUs4gSTe-6ijam_ywkvDM9OuTLF-j8,897915
47
- tinygrad/runtime/autogen/amd_gpu.py,sha256=blqmF-0gDby005JKnr07bNxuRSQLo5i0hpepcjUgQ_Y,2342436
48
- tinygrad/runtime/autogen/comgr.py,sha256=mhQtuF_vGDrJZD3iyQ_38FrS_2jp3WtImNZPC4TBuAg,39793
49
- tinygrad/runtime/autogen/cuda.py,sha256=N0QyaMvQumr_HZh7fusCHM1d4o4mYti3Wq1MN7JSKr8,243920
50
- tinygrad/runtime/autogen/hip.py,sha256=1yUHDCwL3KkD15if2Q1Ud3GbJiR7DxsNorKZTCINw54,245532
51
- tinygrad/runtime/autogen/hsa.py,sha256=7Hsrn17HmChyeFOSX_3Fnzl9c0COtq2Z2ExqGu5FNiU,277716
52
- tinygrad/runtime/autogen/io_uring.py,sha256=ZIZ2YnQkLr8WIHMieBw9Dv-NZ1ar9TwdP4YBv3gJm28,59786
53
- tinygrad/runtime/autogen/kfd.py,sha256=LQjcTZK93o4q6Qp4YlOu3aOVGL_RDlq6qDg5j0nRzQE,30815
54
- tinygrad/runtime/autogen/kgsl.py,sha256=Dg1skDsVdwZTGb1Cg-UTts-z4rta7qm8XFmods-ZiSU,50663
55
- tinygrad/runtime/autogen/libc.py,sha256=xKJk2hCzVpauJSc8wCQis5x3SwcXnDli7_HyRUqEGRc,197318
56
- tinygrad/runtime/autogen/nv_gpu.py,sha256=9X2tPdv2E5JmXGZeT8i9jL19YJ4ETTsYwfU_Wn9mTwc,1679326
57
- tinygrad/runtime/autogen/nvrtc.py,sha256=19te2-TW5suFy85KnJox3CPOmeeml5YxqIDeL-Bx_m4,23132
58
- tinygrad/runtime/autogen/opencl.py,sha256=NL6fa8P3KC_McNZ8g2babdr3b8vrY-bFK0qzNAtL-rE,82656
59
- tinygrad/runtime/autogen/qcom_dsp.py,sha256=jx36-zC6reTuWgfbHCrKVjOZcF4Q9fBnq3CuTbxztQk,61848
60
- tinygrad/runtime/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- tinygrad/runtime/graph/clang.py,sha256=DakBGMhEu-U5VT6xb18yL3HOuZh80BWzioZnXqTaWnE,1994
62
- tinygrad/runtime/graph/cuda.py,sha256=MLXZbATjpfriNBGmA9OYXV5sAfqn6Q4hZ8H0Etw9HTg,5005
63
- tinygrad/runtime/graph/hcq.py,sha256=Wqu4Ry5juXCj1HOV_BpECf6tDqCtl2_sAWp8vuBJyD8,12391
64
- tinygrad/runtime/graph/metal.py,sha256=5HRmOrsXI8Q4eieT52zEeeNEbmjUZ1agAggefXk959U,6093
65
- tinygrad/runtime/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- tinygrad/runtime/support/compiler_cuda.py,sha256=rS0XCFTy0blcdRstKVGKKRfoEU975DKzjbZKqg_YawY,5441
67
- tinygrad/runtime/support/compiler_hip.py,sha256=fbRP82UdG4T-KCRYH_H2hEXlMFeHIJntSnY35ZWE5JY,4398
68
- tinygrad/runtime/support/elf.py,sha256=FVoZu5r83RPk8ArBVpmOcbPDbtSz6hiv_OTCrQ9REHA,2385
69
- tinygrad/runtime/support/hcq.py,sha256=T4pp7Co69pLHKRULnZd-jwri_uAQ2Rji_gKVxTm5oR4,26306
70
- tinygrad/shape/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- tinygrad/shape/shapetracker.py,sha256=VFJZghI4c_bZl5ceZBxgf-ztHz0CPsXgov-XenXzWhM,5644
72
- tinygrad/shape/view.py,sha256=E6AXLEFPnCGP0H6rG9OCJa3Hy9F68Q_xj2bClnVi7qk,19992
73
- tinygrad-0.10.0.dist-info/LICENSE,sha256=ABRhUPEILzINYIukgazD-_rPipkUNUwslrb0RxnV6Xc,1058
74
- tinygrad-0.10.0.dist-info/METADATA,sha256=0ytEHMHtcc-w9bbrcRp-YRDR_xQOJadcnzMbJkkkRVs,10933
75
- tinygrad-0.10.0.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
76
- tinygrad-0.10.0.dist-info/top_level.txt,sha256=vDABMCWBFQnx2kn9Azueu88FP-1klQdePoHikQhHymc,9
77
- tinygrad-0.10.0.dist-info/RECORD,,