tensorstudio 1.15.0__tar.gz → 2.0.0__tar.gz

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 (248) hide show
  1. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/CHANGELOG.md +35 -0
  2. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/CMakeLists.txt +1 -1
  3. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/PKG-INFO +102 -26
  4. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/README.md +93 -25
  5. tensorstudio-2.0.0/benchmarks/results.md +351 -0
  6. tensorstudio-2.0.0/benchmarks/results_matmul.md +49 -0
  7. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/autograd/overview.md +2 -1
  8. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/core/api-reference.md +132 -1
  9. tensorstudio-2.0.0/docs/ecosystem/datasets.md +49 -0
  10. tensorstudio-2.0.0/docs/ecosystem/distributed-and-onnx-runtime.md +39 -0
  11. tensorstudio-2.0.0/docs/ecosystem/model-zoo-and-language.md +48 -0
  12. tensorstudio-2.0.0/docs/ecosystem/quantization-and-kernels.md +48 -0
  13. tensorstudio-2.0.0/docs/ecosystem/sparse.md +37 -0
  14. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/index.md +29 -10
  15. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/model-formats.md +3 -1
  16. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/numpy-interop.md +13 -0
  17. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/onnx-import.md +11 -1
  18. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/onnx.md +23 -3
  19. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/serialization.md +7 -2
  20. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/release/publishing.md +4 -4
  21. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/release/versioning.md +2 -2
  22. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/roadmap/milestones.md +13 -0
  23. tensorstudio-2.0.0/docs/roadmap/roadmap.md +138 -0
  24. tensorstudio-2.0.0/examples/ecosystem_features.py +73 -0
  25. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/version.hpp +1 -1
  26. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/mkdocs.yml +6 -0
  27. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/pyproject.toml +11 -1
  28. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/__init__.py +78 -2
  29. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/_version.py +1 -1
  30. tensorstudio-2.0.0/python/tensorstudio/data/__init__.py +67 -0
  31. tensorstudio-2.0.0/python/tensorstudio/data/manifest.py +225 -0
  32. tensorstudio-2.0.0/python/tensorstudio/data/public_formats.py +240 -0
  33. tensorstudio-2.0.0/python/tensorstudio/distributed.py +118 -0
  34. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/interchange/__init__.py +10 -0
  35. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/interchange/onnx.py +135 -0
  36. tensorstudio-2.0.0/python/tensorstudio/kernels.py +114 -0
  37. tensorstudio-2.0.0/python/tensorstudio/model_zoo.py +149 -0
  38. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/nn/__init__.py +22 -0
  39. tensorstudio-2.0.0/python/tensorstudio/nn/attention.py +156 -0
  40. tensorstudio-2.0.0/python/tensorstudio/nn/language.py +134 -0
  41. tensorstudio-2.0.0/python/tensorstudio/quantization.py +227 -0
  42. tensorstudio-2.0.0/python/tensorstudio/sparse.py +384 -0
  43. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/tensor.py +14 -0
  44. tensorstudio-2.0.0/tests/test_ecosystem.py +147 -0
  45. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_import.py +1 -1
  46. tensorstudio-2.0.0/tests/test_v2_foundation.py +97 -0
  47. tensorstudio-1.15.0/benchmarks/results.md +0 -351
  48. tensorstudio-1.15.0/benchmarks/results_matmul.md +0 -49
  49. tensorstudio-1.15.0/docs/roadmap/roadmap.md +0 -245
  50. tensorstudio-1.15.0/python/tensorstudio/data/__init__.py +0 -29
  51. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.gitattributes +0 -0
  52. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.github/workflows/ci.yml +0 -0
  53. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.github/workflows/docs.yml +0 -0
  54. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.github/workflows/publish-testpypi.yml +0 -0
  55. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.github/workflows/publish.yml +0 -0
  56. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.github/workflows/wheels.yml +0 -0
  57. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.gitignore +0 -0
  58. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/.pre-commit-config.yaml +0 -0
  59. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/CONTRIBUTING.md +0 -0
  60. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/LICENSE +0 -0
  61. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/SECURITY.md +0 -0
  62. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmark_all.py +0 -0
  63. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/__init__.py +0 -0
  64. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_activations.py +0 -0
  65. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_autograd.py +0 -0
  66. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_conv2d.py +0 -0
  67. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_elementwise.py +0 -0
  68. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_matmul.py +0 -0
  69. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_pooling.py +0 -0
  70. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_reductions.py +0 -0
  71. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_tensor_ops.py +0 -0
  72. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/bench_training_loop.py +0 -0
  73. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/benchmark_report.py +0 -0
  74. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/results_conv2d.md +0 -0
  75. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/results_pooling.md +0 -0
  76. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/results_reductions.md +0 -0
  77. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/results_tensor_ops.md +0 -0
  78. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/benchmarks/thresholds.json +0 -0
  79. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/autograd/coverage.md +0 -0
  80. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/autograd/gradient-notes.md +0 -0
  81. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/core/broadcasting.md +0 -0
  82. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/core/math-and-statistics.md +0 -0
  83. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/core/native-cpp-core.md +0 -0
  84. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/core/tensors.md +0 -0
  85. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/data/dataloader-patterns.md +0 -0
  86. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/data/dataset-creation.md +0 -0
  87. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/data/datasets-and-dataloaders.md +0 -0
  88. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/data/tensor-datasets.md +0 -0
  89. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/development/contributing.md +0 -0
  90. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/development/cpp-first.md +0 -0
  91. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/getting-started/installation.md +0 -0
  92. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/getting-started/quickstart.md +0 -0
  93. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/getting-started/source-build.md +0 -0
  94. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/graph/profiling-and-memory.md +0 -0
  95. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/graph/serialization-and-optimization.md +0 -0
  96. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/graph/tracing.md +0 -0
  97. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/backend-benchmarks.md +0 -0
  98. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/cpu-backend.md +0 -0
  99. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/cuda.md +0 -0
  100. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/device-api.md +0 -0
  101. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/linux.md +0 -0
  102. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/macos.md +0 -0
  103. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/metal.md +0 -0
  104. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/hardware/windows.md +0 -0
  105. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/metadata.md +0 -0
  106. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/safetensors.md +0 -0
  107. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/interchange/trusted-serialization.md +0 -0
  108. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/nn/initializers.md +0 -0
  109. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/nn/losses-and-summary.md +0 -0
  110. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/nn/modules.md +0 -0
  111. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/nn/optimizers.md +0 -0
  112. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/nn/overview.md +0 -0
  113. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/nn/training.md +0 -0
  114. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/performance/benchmarks.md +0 -0
  115. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/performance/optimization.md +0 -0
  116. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/performance/profiling.md +0 -0
  117. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/project/checkpoints.md +0 -0
  118. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/project/configs-and-templates.md +0 -0
  119. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/project/metrics.md +0 -0
  120. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/project/project-layout.md +0 -0
  121. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/project/trainer-and-callbacks.md +0 -0
  122. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/project/workflows.md +0 -0
  123. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/release/checklist.md +0 -0
  124. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/release/platform-compatibility.md +0 -0
  125. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/roadmap/priorities.md +0 -0
  126. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/vision/dataset-creation.md +0 -0
  127. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/vision/detection.md +0 -0
  128. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/vision/models-and-visualization.md +0 -0
  129. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/vision/overview.md +0 -0
  130. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/vision/segmentation.md +0 -0
  131. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/docs/vision/transforms.md +0 -0
  132. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/basic_tensor_ops.py +0 -0
  133. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/export_onnx.py +0 -0
  134. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/graph_runtime.py +0 -0
  135. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/image_folder_classification.py +0 -0
  136. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/linear_regression.py +0 -0
  137. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/project_training.py +0 -0
  138. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/save_load_model.py +0 -0
  139. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/tiny_mlp.py +0 -0
  140. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/examples/vision_classifier.py +0 -0
  141. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/autograd.hpp +0 -0
  142. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/device.hpp +0 -0
  143. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/dtype.hpp +0 -0
  144. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/errors.hpp +0 -0
  145. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/module.hpp +0 -0
  146. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/ops.hpp +0 -0
  147. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/optim.hpp +0 -0
  148. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/perf.hpp +0 -0
  149. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/random.hpp +0 -0
  150. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/serialization.hpp +0 -0
  151. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/shape.hpp +0 -0
  152. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/storage.hpp +0 -0
  153. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/include/tensorstudio/tensor.hpp +0 -0
  154. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/_C.pyi +0 -0
  155. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/autograd.py +0 -0
  156. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/data/dataloader.py +0 -0
  157. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/data/dataset.py +0 -0
  158. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/data/factories.py +0 -0
  159. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/data/splitting.py +0 -0
  160. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/dtypes.py +0 -0
  161. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/errors.py +0 -0
  162. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/grad_mode.py +0 -0
  163. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/graph/__init__.py +0 -0
  164. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/graph/core.py +0 -0
  165. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/hardware.py +0 -0
  166. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/math.py +0 -0
  167. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/metrics/__init__.py +0 -0
  168. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/metrics/classification.py +0 -0
  169. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/metrics/multilabel.py +0 -0
  170. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/metrics/regression.py +0 -0
  171. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/nn/functional.py +0 -0
  172. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/nn/init.py +0 -0
  173. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/nn/losses.py +0 -0
  174. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/nn/modules.py +0 -0
  175. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/nn/summary.py +0 -0
  176. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/ops.py +0 -0
  177. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/optim/__init__.py +0 -0
  178. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/optim/adam.py +0 -0
  179. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/optim/adamw.py +0 -0
  180. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/optim/lr_scheduler.py +0 -0
  181. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/optim/sgd.py +0 -0
  182. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/optim/utils.py +0 -0
  183. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/performance.py +0 -0
  184. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/project/__init__.py +0 -0
  185. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/project/callbacks.py +0 -0
  186. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/project/checkpoint.py +0 -0
  187. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/project/config.py +0 -0
  188. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/project/seed.py +0 -0
  189. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/project/templates.py +0 -0
  190. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/project/trainer.py +0 -0
  191. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/py.typed +0 -0
  192. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/serialization.py +0 -0
  193. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/typing.py +0 -0
  194. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/__init__.py +0 -0
  195. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/datasets.py +0 -0
  196. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/detection.py +0 -0
  197. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/io.py +0 -0
  198. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/metrics.py +0 -0
  199. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/models.py +0 -0
  200. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/segmentation.py +0 -0
  201. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/transforms.py +0 -0
  202. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/python/tensorstudio/vision/visualization.py +0 -0
  203. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/bindings/bind_autograd.cpp +0 -0
  204. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/bindings/bind_nn.cpp +0 -0
  205. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/bindings/bind_ops.cpp +0 -0
  206. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/bindings/bind_optim.cpp +0 -0
  207. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/bindings/bind_tensor.cpp +0 -0
  208. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/bindings/bindings.cpp +0 -0
  209. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/bindings/bindings.hpp +0 -0
  210. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/autograd.cpp +0 -0
  211. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/device.cpp +0 -0
  212. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/dtype.cpp +0 -0
  213. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/errors.cpp +0 -0
  214. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/module.cpp +0 -0
  215. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/ops.cpp +0 -0
  216. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/optim.cpp +0 -0
  217. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/perf.cpp +0 -0
  218. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/random.cpp +0 -0
  219. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/serialization.cpp +0 -0
  220. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/shape.cpp +0 -0
  221. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/storage.cpp +0 -0
  222. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/src/core/tensor.cpp +0 -0
  223. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/test_all.py +0 -0
  224. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_autograd.py +0 -0
  225. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_autograd_hardening.py +0 -0
  226. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_benchmark_report.py +0 -0
  227. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_broadcasting.py +0 -0
  228. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_core_math_expansion.py +0 -0
  229. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_data.py +0 -0
  230. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_errors.py +0 -0
  231. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_graph.py +0 -0
  232. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_hardware.py +0 -0
  233. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_indexing.py +0 -0
  234. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_interchange.py +0 -0
  235. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_nn.py +0 -0
  236. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_nn_building_blocks.py +0 -0
  237. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_numpy_interop.py +0 -0
  238. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_ops.py +0 -0
  239. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_optim.py +0 -0
  240. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_performance.py +0 -0
  241. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_project.py +0 -0
  242. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_serialization.py +0 -0
  243. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_tensor.py +0 -0
  244. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_training_workflows.py +0 -0
  245. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_views.py +0 -0
  246. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_vision.py +0 -0
  247. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tests/test_vision_depth.py +0 -0
  248. {tensorstudio-1.15.0 → tensorstudio-2.0.0}/tools/verify_artifacts.py +0 -0
@@ -2,6 +2,41 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2.0.0 - 2026-07-08
6
+
7
+ - Added a tested v2 foundation slice from the remaining roadmap while keeping
8
+ accelerator and production-distributed limitations explicit.
9
+ - Added dataset manifests, SHA-256 file checksums, manifest validation, and a
10
+ small map-style dataset cache wrapper.
11
+ - Added compact attention APIs: `scaled_dot_product_attention`,
12
+ `MultiHeadSelfAttention`, and `TransformerEncoderBlock`.
13
+ - Added experimental CSR sparse tensors, dense/COO conversion helpers, and
14
+ CSR sparse-dense matmul.
15
+ - Added quantization calibration helpers and quantization error reporting.
16
+ - Added CPU `from_dlpack()` import for DLPack-compatible providers via NumPy.
17
+ - Added ONNX Runtime provider discovery and compatibility diagnostics.
18
+ - Reworked the roadmap to show remaining work only.
19
+
20
+ ## 1.16.0 - 2026-07-07
21
+
22
+ - Completed the Ecosystem And Advanced Features roadmap batch as supported
23
+ lightweight APIs plus explicit research-stage boundaries.
24
+ - Added experimental COO sparse tensors with dense conversion, coalescing,
25
+ transpose, and sparse-dense matmul.
26
+ - Added distributed-training research helpers for single-process collectives,
27
+ environment parsing, and deterministic data-parallel planning metadata.
28
+ - Added a small model-zoo registry with reproducible tiny MLP, CNN, and
29
+ language-model factories.
30
+ - Added CSV, JSONL, text-line, and LIBSVM dataset loaders for common public
31
+ data formats.
32
+ - Added language-model helpers: vocabulary building, token/position
33
+ embeddings, tiny causal language model, causal batches, and LM loss.
34
+ - Added quantization research utilities for affine quantization, fake
35
+ quantization, state-dict conversion, and parameter-size reports.
36
+ - Added a custom kernel registry for Python or native-extension callables.
37
+ - Added optional ONNX Runtime execution adapter through the
38
+ `tensorstudio[onnxruntime]` extra, with TensorStudio ONNX import fallback.
39
+
5
40
  ## 1.15.0 - 2026-07-07
6
41
 
7
42
  - Completed the Graph, Compiler, And Runtime Systems roadmap batch as a
@@ -1,6 +1,6 @@
1
1
  cmake_minimum_required(VERSION 3.18)
2
2
 
3
- project(tensorstudio VERSION 1.15.0 LANGUAGES CXX)
3
+ project(tensorstudio VERSION 2.0.0 LANGUAGES CXX)
4
4
 
5
5
  find_package(Python COMPONENTS Interpreter Development.Module REQUIRED)
6
6
  set(PYBIND11_FINDPYTHON ON)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tensorstudio
3
- Version: 1.15.0
3
+ Version: 2.0.0
4
4
  Summary: TensorStudio is a compact C++ tensor and autograd engine with a Python API for learning, experimentation, and lightweight ML workloads.
5
5
  Keywords: tensor,autograd,machine-learning,cpp,pybind11
6
6
  Author: TensorStudio contributors
@@ -61,10 +61,18 @@ Requires-Dist: mkdocs>=1.6; extra == "docs"
61
61
  Requires-Dist: mkdocs-material>=9.5; extra == "docs"
62
62
  Provides-Extra: onnx
63
63
  Requires-Dist: onnx>=1.16; extra == "onnx"
64
+ Provides-Extra: onnxruntime
65
+ Requires-Dist: onnx>=1.16; extra == "onnxruntime"
66
+ Requires-Dist: onnxruntime>=1.18; extra == "onnxruntime"
64
67
  Provides-Extra: safetensors
65
68
  Requires-Dist: safetensors>=0.4; extra == "safetensors"
66
69
  Provides-Extra: vision
67
70
  Requires-Dist: Pillow>=10; extra == "vision"
71
+ Provides-Extra: all
72
+ Requires-Dist: onnx>=1.16; extra == "all"
73
+ Requires-Dist: onnxruntime>=1.18; extra == "all"
74
+ Requires-Dist: Pillow>=10; extra == "all"
75
+ Requires-Dist: safetensors>=0.4; extra == "all"
68
76
  Description-Content-Type: text/markdown
69
77
 
70
78
  # TensorStudio
@@ -76,7 +84,7 @@ Description-Content-Type: text/markdown
76
84
  TensorStudio is a compact C++ tensor and autograd engine with a Python API for
77
85
  learning, experimentation, and lightweight ML workloads.
78
86
 
79
- TensorStudio `1.15.0` is a CPU-only stable API foundation with native C++
87
+ TensorStudio `2.0.0` is a CPU-only stable API foundation with native C++
80
88
  threading, storage reuse, SIMD-friendly typed kernels, and optional
81
89
  CBLAS/Accelerate matrix multiplication when available. It adds native stable
82
90
  softmax/logsumexp, batched matrix multiplication, statistical reductions,
@@ -94,7 +102,13 @@ boundaries, explicit transfer APIs, and backend benchmark artifacts while
94
102
  keeping the published wheels honest about CPU-only execution. The graph layer
95
103
  adds constrained symbolic tracing, JSON graph serialization, simple graph
96
104
  optimization, eager-backed graph execution, profiling hooks, and memory-plan
97
- metadata.
105
+ metadata. The ecosystem layer adds experimental COO sparse tensors, public
106
+ dataset format readers, tiny model-zoo factories, language-model helpers,
107
+ quantization research utilities, a custom-kernel registry, single-process
108
+ distributed planning helpers, and an optional ONNX Runtime adapter. The v2
109
+ foundation adds dataset manifests/checksums, a small dataset cache wrapper, CSR
110
+ sparse matrices, compact attention/Transformer encoder blocks, quantization
111
+ calibration, CPU DLPack import, and ONNX Runtime provider diagnostics.
98
112
  It is eager-first, intentionally compact, and not a replacement for mature ML
99
113
  frameworks.
100
114
 
@@ -113,10 +127,12 @@ python -m pip install -U pip
113
127
  python -m pip install -e ".[dev]"
114
128
  ```
115
129
 
116
- Install optional extras for ONNX export and Pillow-backed image inputs:
130
+ Install optional extras for ONNX export, optional ONNX Runtime delegation, and
131
+ Pillow-backed image inputs:
117
132
 
118
133
  ```bash
119
134
  python -m pip install "tensorstudio[onnx,vision]"
135
+ python -m pip install "tensorstudio[onnxruntime]"
120
136
  ```
121
137
 
122
138
  Build source and wheel distributions:
@@ -330,7 +346,7 @@ classification workflows: Pillow-backed image IO, transform pipelines,
330
346
  deterministic augmentations, `ImageFolder` datasets, metrics, image grids,
331
347
  bounding-box drawing, and compact CNN classifiers running through native
332
348
  Conv2d/pooling kernels.
333
- The `1.15.0` vision surface includes batch-aware transforms, color jitter, random
349
+ The current vision surface includes batch-aware transforms, color jitter, random
334
350
  resized crop, rotation, affine transforms, cutout, mixup, CutMix, detection
335
351
  helpers, segmentation mask helpers, detection/segmentation folder datasets,
336
352
  ResNet-style blocks, MobileNet-style depthwise blocks, a compact UNet, and
@@ -477,6 +493,61 @@ loaded = ts.load_graph("model.tsgraph.json")
477
493
  print(loaded.run(x).item())
478
494
  ```
479
495
 
496
+ ## Ecosystem Utilities
497
+
498
+ TensorStudio `2.0.0` expands the late-roadmap ecosystem layer without
499
+ pretending to be a production-scale distributed or accelerator runtime.
500
+
501
+ ```python
502
+ import tensorstudio as ts
503
+ from tensorstudio import nn
504
+
505
+ sparse = ts.sparse_coo_tensor([[0, 1], [1, 0]], [2.0, 3.0], (2, 2))
506
+ print(sparse.to_dense().tolist())
507
+ print((sparse @ ts.ones((2, 1))).tolist())
508
+
509
+ model = ts.create_model("tiny_mlp", input_dim=2, hidden_dim=4, output_dim=1)
510
+ print(ts.model_info("tiny_mlp")["task"], model(ts.ones((1, 2))).shape)
511
+
512
+ vocab = nn.Vocabulary.build(["small tensor models", "small language batch"])
513
+ inputs, targets = nn.make_causal_lm_batch(vocab.encode("small tensor models"), 2)
514
+ lm = nn.CausalLanguageModel(vocab_size=len(vocab), embedding_dim=4, max_length=4)
515
+ print(nn.causal_language_model_loss(lm(inputs), targets).item())
516
+
517
+ quantized = ts.quantization.quantize_tensor(ts.tensor([-1.0, 0.0, 1.0]))
518
+ print(quantized.dequantize().tolist())
519
+
520
+ ts.register_kernel("double", lambda x: x * 2.0, overwrite=True)
521
+ print(ts.call_kernel("double", ts.ones((2,))).tolist())
522
+ ts.unregister_kernel("double")
523
+
524
+ print(ts.distributed.data_parallel_plan(dataset_size=10, batch_size=4))
525
+ ```
526
+
527
+ ```python
528
+ manifest = ts.data.build_dataset_manifest("data")
529
+ print(manifest.validate())
530
+
531
+ csr = ts.csr_from_dense(ts.tensor([[0.0, 2.0], [3.0, 0.0]]))
532
+ print((csr @ ts.ones((2, 1))).tolist())
533
+
534
+ attention = nn.MultiHeadSelfAttention(embed_dim=4, num_heads=2)
535
+ print(attention(ts.randn((1, 3, 4), seed=7), causal=True).shape)
536
+
537
+ stats = ts.quantization.calibrate_tensor(ts.tensor([-1.0, 0.0, 2.0]))
538
+ print(stats.to_dict())
539
+ ```
540
+
541
+ For ONNX files, TensorStudio has two paths:
542
+
543
+ - `ts.import_onnx()` imports and executes a constrained static subset through
544
+ TensorStudio tensor ops.
545
+ - `ts.run_onnx()` can delegate to the optional `onnxruntime` package when
546
+ installed with `tensorstudio[onnxruntime]`; otherwise it can fall back to the
547
+ supported TensorStudio importer for compatible graphs.
548
+ - `ts.check_onnxruntime_compatibility()` and
549
+ `ts.onnxruntime_available_providers()` report runtime/provider availability.
550
+
480
551
  ## Performance
481
552
 
482
553
  TensorStudio is optimized for small-to-medium CPU eager workloads, but
@@ -507,11 +578,11 @@ Run the loose local regression thresholds with:
507
578
  python benchmark_all.py --check-thresholds
508
579
  ```
509
580
 
510
- On one Windows CPython 3.10 development run reporting `1.15.0`, with
581
+ On one Windows CPython 3.10 development run reporting `2.0.0`, with
511
582
  TensorStudio threads enabled, storage pooling enabled, SSE2 autovectorization
512
- reported, and no BLAS provider found, TensorStudio beat NumPy on 6 local
513
- benchmark cases and lost on 97 NumPy-comparable cases. JAX CPU dispatch was
514
- available on that machine; TensorStudio won 36 local cases and lost 62. The
583
+ reported, and no BLAS provider found, TensorStudio beat NumPy on 7 local
584
+ benchmark cases and lost on 96 NumPy-comparable cases. JAX CPU dispatch was
585
+ available on that machine; TensorStudio won 45 local cases and lost 53. The
515
586
  strongest local wins were the simple NumPy convolution/pooling reference loops
516
587
  and some small JAX-dispatch-heavy eager cases. NumPy and JAX were faster for
517
588
  many elementwise, reduction, matrix multiplication, larger activation, and
@@ -523,15 +594,15 @@ Snapshot from that local run:
523
594
 
524
595
  | operation | shape | TensorStudio | NumPy | JAX CPU dispatch | TS vs NumPy | TS vs JAX |
525
596
  |---|---:|---:|---:|---:|---:|---:|
526
- | `sigmoid` | `(32,)` | 0.0198 ms | 0.0062 ms | 0.0916 ms | 0.3161x | 4.6348x |
527
- | `mean` | `(32,)` | 0.0166 ms | 0.0108 ms | 0.0148 ms | 0.6528x | 0.8959x |
528
- | `sum_axis1` | `(16, 16)` | 0.0196 ms | 0.0041 ms | 0.0153 ms | 0.2078x | 0.7818x |
529
- | `chain_relu` | `(128,)` | 0.0909 ms | 0.0058 ms | 0.0956 ms | 0.0634x | 1.0519x |
530
- | `matmul` | `(256, 256)` | 2.5387 ms | 0.5193 ms | 0.2421 ms | 0.2045x | 0.0954x |
531
- | `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2248 ms | 1.9712 ms | 0.1330 ms | 8.7672x | 0.5916x |
532
- | `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0342 ms | 0.1692 ms | n/a | 4.9541x | n/a |
533
- | `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0312 ms | 0.5922 ms | n/a | 18.9961x | n/a |
534
- | `elementwise_backward` | `(1024,)` | 2.7669 ms | n/a | n/a | n/a | n/a |
597
+ | `sigmoid` | `(32,)` | 0.0221 ms | 0.0068 ms | 0.1092 ms | 0.3106x | 4.9529x |
598
+ | `mean` | `(32,)` | 0.0256 ms | 0.0129 ms | 0.0210 ms | 0.5052x | 0.8221x |
599
+ | `sum_axis1` | `(16, 16)` | 0.0290 ms | 0.0034 ms | 0.0187 ms | 0.1170x | 0.6453x |
600
+ | `chain_relu` | `(128,)` | 0.1596 ms | 0.0099 ms | 0.1898 ms | 0.0621x | 1.1892x |
601
+ | `matmul` | `(256, 256)` | 3.6061 ms | 0.5097 ms | 0.3583 ms | 0.1413x | 0.0994x |
602
+ | `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2448 ms | 1.9636 ms | 0.1606 ms | 8.0224x | 0.6561x |
603
+ | `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0392 ms | 0.3468 ms | n/a | 8.8440x | n/a |
604
+ | `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0460 ms | 1.0295 ms | n/a | 22.4030x | n/a |
605
+ | `elementwise_backward` | `(1024,)` | 4.1790 ms | n/a | n/a | n/a | n/a |
535
606
 
536
607
  Speedup is `competitor median / TensorStudio median`, so values above `1.0x`
537
608
  favor TensorStudio.
@@ -654,16 +725,21 @@ tokens or print secrets.
654
725
  - Optional BLAS-backed matrix multiplication depends on the build environment
655
726
  exposing a compatible CBLAS/Accelerate interface; otherwise TensorStudio uses
656
727
  a portable C++ fallback.
657
- - No graph compiler or distributed runtime.
728
+ - No machine-code graph compiler or production distributed runtime.
729
+ TensorStudio includes a constrained eager-backed graph runtime and
730
+ single-process distributed planning helpers.
658
731
  - Convolution and pooling support are CPU-only. Native kernels include NCHW
659
732
  `conv2d`, grouped/depthwise convolution, `conv_transpose2d`, `max_pool2d`,
660
733
  `avg_pool2d`, and embedding lookup; they are not CUDA/cuDNN replacements.
661
734
  - Vision covers local image-classification utilities, metrics, visualization,
662
- and compact CNNs. It is not an OpenCV replacement and does not include
663
- pretrained model zoos, detection/segmentation training stacks, video IO, or
664
- GPU image kernels yet.
665
- - ONNX support covers export, metadata inspection, and import/execution for a
666
- limited static subset. It is not a full ONNX runtime.
735
+ detection/segmentation helpers, compact CNNs, and a compact UNet. It is not
736
+ an OpenCV replacement and does not include pretrained large model zoos,
737
+ end-to-end detection/segmentation trainers, video IO, or GPU image kernels
738
+ yet.
739
+ - ONNX support covers export, metadata inspection, import/execution for a
740
+ limited static subset, and optional delegation to the external ONNX Runtime
741
+ package through `tensorstudio[onnxruntime]`. TensorStudio's native importer is
742
+ not a full ONNX runtime.
667
743
  - Reductions support all-element, single-axis, and tuple/list-axis reductions
668
744
  for `sum`, `mean`, `max`, and `min`.
669
745
  - Arg reductions support all-element flat indices or one axis at a time for
@@ -683,8 +759,8 @@ tokens or print secrets.
683
759
  - Graph/JIT mode
684
760
  - Broader convolution ops, adaptive/global pooling, and image-model examples
685
761
  - Richer dataset utilities
686
- - Model zoo examples
687
- - Broader ONNX operator coverage
762
+ - Larger model zoo examples and pretrained-weight metadata
763
+ - Broader ONNX operator coverage and optional runtime providers
688
764
  - Runtime-dispatched SIMD kernels
689
765
  - Better non-BLAS matrix multiplication tiling
690
766
  - More threaded backward kernels
@@ -7,7 +7,7 @@
7
7
  TensorStudio is a compact C++ tensor and autograd engine with a Python API for
8
8
  learning, experimentation, and lightweight ML workloads.
9
9
 
10
- TensorStudio `1.15.0` is a CPU-only stable API foundation with native C++
10
+ TensorStudio `2.0.0` is a CPU-only stable API foundation with native C++
11
11
  threading, storage reuse, SIMD-friendly typed kernels, and optional
12
12
  CBLAS/Accelerate matrix multiplication when available. It adds native stable
13
13
  softmax/logsumexp, batched matrix multiplication, statistical reductions,
@@ -25,7 +25,13 @@ boundaries, explicit transfer APIs, and backend benchmark artifacts while
25
25
  keeping the published wheels honest about CPU-only execution. The graph layer
26
26
  adds constrained symbolic tracing, JSON graph serialization, simple graph
27
27
  optimization, eager-backed graph execution, profiling hooks, and memory-plan
28
- metadata.
28
+ metadata. The ecosystem layer adds experimental COO sparse tensors, public
29
+ dataset format readers, tiny model-zoo factories, language-model helpers,
30
+ quantization research utilities, a custom-kernel registry, single-process
31
+ distributed planning helpers, and an optional ONNX Runtime adapter. The v2
32
+ foundation adds dataset manifests/checksums, a small dataset cache wrapper, CSR
33
+ sparse matrices, compact attention/Transformer encoder blocks, quantization
34
+ calibration, CPU DLPack import, and ONNX Runtime provider diagnostics.
29
35
  It is eager-first, intentionally compact, and not a replacement for mature ML
30
36
  frameworks.
31
37
 
@@ -44,10 +50,12 @@ python -m pip install -U pip
44
50
  python -m pip install -e ".[dev]"
45
51
  ```
46
52
 
47
- Install optional extras for ONNX export and Pillow-backed image inputs:
53
+ Install optional extras for ONNX export, optional ONNX Runtime delegation, and
54
+ Pillow-backed image inputs:
48
55
 
49
56
  ```bash
50
57
  python -m pip install "tensorstudio[onnx,vision]"
58
+ python -m pip install "tensorstudio[onnxruntime]"
51
59
  ```
52
60
 
53
61
  Build source and wheel distributions:
@@ -261,7 +269,7 @@ classification workflows: Pillow-backed image IO, transform pipelines,
261
269
  deterministic augmentations, `ImageFolder` datasets, metrics, image grids,
262
270
  bounding-box drawing, and compact CNN classifiers running through native
263
271
  Conv2d/pooling kernels.
264
- The `1.15.0` vision surface includes batch-aware transforms, color jitter, random
272
+ The current vision surface includes batch-aware transforms, color jitter, random
265
273
  resized crop, rotation, affine transforms, cutout, mixup, CutMix, detection
266
274
  helpers, segmentation mask helpers, detection/segmentation folder datasets,
267
275
  ResNet-style blocks, MobileNet-style depthwise blocks, a compact UNet, and
@@ -408,6 +416,61 @@ loaded = ts.load_graph("model.tsgraph.json")
408
416
  print(loaded.run(x).item())
409
417
  ```
410
418
 
419
+ ## Ecosystem Utilities
420
+
421
+ TensorStudio `2.0.0` expands the late-roadmap ecosystem layer without
422
+ pretending to be a production-scale distributed or accelerator runtime.
423
+
424
+ ```python
425
+ import tensorstudio as ts
426
+ from tensorstudio import nn
427
+
428
+ sparse = ts.sparse_coo_tensor([[0, 1], [1, 0]], [2.0, 3.0], (2, 2))
429
+ print(sparse.to_dense().tolist())
430
+ print((sparse @ ts.ones((2, 1))).tolist())
431
+
432
+ model = ts.create_model("tiny_mlp", input_dim=2, hidden_dim=4, output_dim=1)
433
+ print(ts.model_info("tiny_mlp")["task"], model(ts.ones((1, 2))).shape)
434
+
435
+ vocab = nn.Vocabulary.build(["small tensor models", "small language batch"])
436
+ inputs, targets = nn.make_causal_lm_batch(vocab.encode("small tensor models"), 2)
437
+ lm = nn.CausalLanguageModel(vocab_size=len(vocab), embedding_dim=4, max_length=4)
438
+ print(nn.causal_language_model_loss(lm(inputs), targets).item())
439
+
440
+ quantized = ts.quantization.quantize_tensor(ts.tensor([-1.0, 0.0, 1.0]))
441
+ print(quantized.dequantize().tolist())
442
+
443
+ ts.register_kernel("double", lambda x: x * 2.0, overwrite=True)
444
+ print(ts.call_kernel("double", ts.ones((2,))).tolist())
445
+ ts.unregister_kernel("double")
446
+
447
+ print(ts.distributed.data_parallel_plan(dataset_size=10, batch_size=4))
448
+ ```
449
+
450
+ ```python
451
+ manifest = ts.data.build_dataset_manifest("data")
452
+ print(manifest.validate())
453
+
454
+ csr = ts.csr_from_dense(ts.tensor([[0.0, 2.0], [3.0, 0.0]]))
455
+ print((csr @ ts.ones((2, 1))).tolist())
456
+
457
+ attention = nn.MultiHeadSelfAttention(embed_dim=4, num_heads=2)
458
+ print(attention(ts.randn((1, 3, 4), seed=7), causal=True).shape)
459
+
460
+ stats = ts.quantization.calibrate_tensor(ts.tensor([-1.0, 0.0, 2.0]))
461
+ print(stats.to_dict())
462
+ ```
463
+
464
+ For ONNX files, TensorStudio has two paths:
465
+
466
+ - `ts.import_onnx()` imports and executes a constrained static subset through
467
+ TensorStudio tensor ops.
468
+ - `ts.run_onnx()` can delegate to the optional `onnxruntime` package when
469
+ installed with `tensorstudio[onnxruntime]`; otherwise it can fall back to the
470
+ supported TensorStudio importer for compatible graphs.
471
+ - `ts.check_onnxruntime_compatibility()` and
472
+ `ts.onnxruntime_available_providers()` report runtime/provider availability.
473
+
411
474
  ## Performance
412
475
 
413
476
  TensorStudio is optimized for small-to-medium CPU eager workloads, but
@@ -438,11 +501,11 @@ Run the loose local regression thresholds with:
438
501
  python benchmark_all.py --check-thresholds
439
502
  ```
440
503
 
441
- On one Windows CPython 3.10 development run reporting `1.15.0`, with
504
+ On one Windows CPython 3.10 development run reporting `2.0.0`, with
442
505
  TensorStudio threads enabled, storage pooling enabled, SSE2 autovectorization
443
- reported, and no BLAS provider found, TensorStudio beat NumPy on 6 local
444
- benchmark cases and lost on 97 NumPy-comparable cases. JAX CPU dispatch was
445
- available on that machine; TensorStudio won 36 local cases and lost 62. The
506
+ reported, and no BLAS provider found, TensorStudio beat NumPy on 7 local
507
+ benchmark cases and lost on 96 NumPy-comparable cases. JAX CPU dispatch was
508
+ available on that machine; TensorStudio won 45 local cases and lost 53. The
446
509
  strongest local wins were the simple NumPy convolution/pooling reference loops
447
510
  and some small JAX-dispatch-heavy eager cases. NumPy and JAX were faster for
448
511
  many elementwise, reduction, matrix multiplication, larger activation, and
@@ -454,15 +517,15 @@ Snapshot from that local run:
454
517
 
455
518
  | operation | shape | TensorStudio | NumPy | JAX CPU dispatch | TS vs NumPy | TS vs JAX |
456
519
  |---|---:|---:|---:|---:|---:|---:|
457
- | `sigmoid` | `(32,)` | 0.0198 ms | 0.0062 ms | 0.0916 ms | 0.3161x | 4.6348x |
458
- | `mean` | `(32,)` | 0.0166 ms | 0.0108 ms | 0.0148 ms | 0.6528x | 0.8959x |
459
- | `sum_axis1` | `(16, 16)` | 0.0196 ms | 0.0041 ms | 0.0153 ms | 0.2078x | 0.7818x |
460
- | `chain_relu` | `(128,)` | 0.0909 ms | 0.0058 ms | 0.0956 ms | 0.0634x | 1.0519x |
461
- | `matmul` | `(256, 256)` | 2.5387 ms | 0.5193 ms | 0.2421 ms | 0.2045x | 0.0954x |
462
- | `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2248 ms | 1.9712 ms | 0.1330 ms | 8.7672x | 0.5916x |
463
- | `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0342 ms | 0.1692 ms | n/a | 4.9541x | n/a |
464
- | `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0312 ms | 0.5922 ms | n/a | 18.9961x | n/a |
465
- | `elementwise_backward` | `(1024,)` | 2.7669 ms | n/a | n/a | n/a | n/a |
520
+ | `sigmoid` | `(32,)` | 0.0221 ms | 0.0068 ms | 0.1092 ms | 0.3106x | 4.9529x |
521
+ | `mean` | `(32,)` | 0.0256 ms | 0.0129 ms | 0.0210 ms | 0.5052x | 0.8221x |
522
+ | `sum_axis1` | `(16, 16)` | 0.0290 ms | 0.0034 ms | 0.0187 ms | 0.1170x | 0.6453x |
523
+ | `chain_relu` | `(128,)` | 0.1596 ms | 0.0099 ms | 0.1898 ms | 0.0621x | 1.1892x |
524
+ | `matmul` | `(256, 256)` | 3.6061 ms | 0.5097 ms | 0.3583 ms | 0.1413x | 0.0994x |
525
+ | `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2448 ms | 1.9636 ms | 0.1606 ms | 8.0224x | 0.6561x |
526
+ | `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0392 ms | 0.3468 ms | n/a | 8.8440x | n/a |
527
+ | `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0460 ms | 1.0295 ms | n/a | 22.4030x | n/a |
528
+ | `elementwise_backward` | `(1024,)` | 4.1790 ms | n/a | n/a | n/a | n/a |
466
529
 
467
530
  Speedup is `competitor median / TensorStudio median`, so values above `1.0x`
468
531
  favor TensorStudio.
@@ -585,16 +648,21 @@ tokens or print secrets.
585
648
  - Optional BLAS-backed matrix multiplication depends on the build environment
586
649
  exposing a compatible CBLAS/Accelerate interface; otherwise TensorStudio uses
587
650
  a portable C++ fallback.
588
- - No graph compiler or distributed runtime.
651
+ - No machine-code graph compiler or production distributed runtime.
652
+ TensorStudio includes a constrained eager-backed graph runtime and
653
+ single-process distributed planning helpers.
589
654
  - Convolution and pooling support are CPU-only. Native kernels include NCHW
590
655
  `conv2d`, grouped/depthwise convolution, `conv_transpose2d`, `max_pool2d`,
591
656
  `avg_pool2d`, and embedding lookup; they are not CUDA/cuDNN replacements.
592
657
  - Vision covers local image-classification utilities, metrics, visualization,
593
- and compact CNNs. It is not an OpenCV replacement and does not include
594
- pretrained model zoos, detection/segmentation training stacks, video IO, or
595
- GPU image kernels yet.
596
- - ONNX support covers export, metadata inspection, and import/execution for a
597
- limited static subset. It is not a full ONNX runtime.
658
+ detection/segmentation helpers, compact CNNs, and a compact UNet. It is not
659
+ an OpenCV replacement and does not include pretrained large model zoos,
660
+ end-to-end detection/segmentation trainers, video IO, or GPU image kernels
661
+ yet.
662
+ - ONNX support covers export, metadata inspection, import/execution for a
663
+ limited static subset, and optional delegation to the external ONNX Runtime
664
+ package through `tensorstudio[onnxruntime]`. TensorStudio's native importer is
665
+ not a full ONNX runtime.
598
666
  - Reductions support all-element, single-axis, and tuple/list-axis reductions
599
667
  for `sum`, `mean`, `max`, and `min`.
600
668
  - Arg reductions support all-element flat indices or one axis at a time for
@@ -614,8 +682,8 @@ tokens or print secrets.
614
682
  - Graph/JIT mode
615
683
  - Broader convolution ops, adaptive/global pooling, and image-model examples
616
684
  - Richer dataset utilities
617
- - Model zoo examples
618
- - Broader ONNX operator coverage
685
+ - Larger model zoo examples and pretrained-weight metadata
686
+ - Broader ONNX operator coverage and optional runtime providers
619
687
  - Runtime-dispatched SIMD kernels
620
688
  - Better non-BLAS matrix multiplication tiling
621
689
  - More threaded backward kernels