modelstudio 0.6.1__tar.gz → 0.7.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 (237) hide show
  1. {modelstudio-0.6.1/python/modelstudio.egg-info → modelstudio-0.7.0}/PKG-INFO +3 -2
  2. {modelstudio-0.6.1 → modelstudio-0.7.0}/README.md +2 -1
  3. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/backend-status.md +1 -1
  4. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/cuda.md +19 -1
  5. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/native-backend-roadmap.md +1 -1
  6. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/releasing.md +7 -0
  7. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/training.md +1 -1
  8. {modelstudio-0.6.1 → modelstudio-0.7.0}/pyproject.toml +1 -1
  9. modelstudio-0.7.0/python/modelstudio/_version.py +1 -0
  10. {modelstudio-0.6.1 → modelstudio-0.7.0/python/modelstudio.egg-info}/PKG-INFO +3 -2
  11. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio.egg-info/SOURCES.txt +1 -0
  12. {modelstudio-0.6.1 → modelstudio-0.7.0}/scripts/cuda_release_check.py +7 -1
  13. modelstudio-0.7.0/scripts/cuda_source_build_check.py +218 -0
  14. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_public_exports.py +2 -2
  15. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_version.py +1 -1
  16. modelstudio-0.6.1/python/modelstudio/_version.py +0 -1
  17. {modelstudio-0.6.1 → modelstudio-0.7.0}/CMakeLists.txt +0 -0
  18. {modelstudio-0.6.1 → modelstudio-0.7.0}/LICENSE +0 -0
  19. {modelstudio-0.6.1 → modelstudio-0.7.0}/MANIFEST.in +0 -0
  20. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_attention.py +0 -0
  21. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_conv.py +0 -0
  22. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_creation.py +0 -0
  23. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_cuda_autograd.py +0 -0
  24. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_cuda_elementwise.py +0 -0
  25. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_cuda_matmul.py +0 -0
  26. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_dataloader.py +0 -0
  27. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_dropout.py +0 -0
  28. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_elementwise.py +0 -0
  29. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_manipulation.py +0 -0
  30. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_matmul.py +0 -0
  31. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_mlp.py +0 -0
  32. {modelstudio-0.6.1 → modelstudio-0.7.0}/benchmarks/bench_trace.py +0 -0
  33. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/CMakeLists.txt +0 -0
  34. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cpu/cpu_backend.cpp +0 -0
  35. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cpu/cpu_backend.hpp +0 -0
  36. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cpu/kernels/add.cpp +0 -0
  37. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cpu/kernels/matmul.cpp +0 -0
  38. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cpu/kernels/mul.cpp +0 -0
  39. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cpu/kernels/relu.cpp +0 -0
  40. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/README.md +0 -0
  41. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_backend.cu +0 -0
  42. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_backend.hpp +0 -0
  43. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_context.cu +0 -0
  44. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_context.hpp +0 -0
  45. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_kernels.hpp +0 -0
  46. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_memory.cu +0 -0
  47. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_memory.hpp +0 -0
  48. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_stream.cu +0 -0
  49. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/cuda_stream.hpp +0 -0
  50. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/kernels/elementwise.cu +0 -0
  51. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/kernels/matmul.cu +0 -0
  52. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/cuda/kernels/reductions.cu +0 -0
  53. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/oneapi/README.md +0 -0
  54. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/oneapi/oneapi_backend.cpp +0 -0
  55. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/oneapi/oneapi_backend.hpp +0 -0
  56. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/oneapi/sycl_memory.hpp +0 -0
  57. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/rocm/README.md +0 -0
  58. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/rocm/hip_memory.hpp +0 -0
  59. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/rocm/rocm_backend.cpp +0 -0
  60. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/backends/rocm/rocm_backend.hpp +0 -0
  61. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/bindings/cuda_bindings.cpp +0 -0
  62. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/bindings/python_bindings.cpp +0 -0
  63. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/core/device.hpp +0 -0
  64. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/core/dtype.hpp +0 -0
  65. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/core/error.hpp +0 -0
  66. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/core/shape.hpp +0 -0
  67. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/core/storage.hpp +0 -0
  68. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/core/tensor.hpp +0 -0
  69. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/dispatcher/backend.hpp +0 -0
  70. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/dispatcher/dispatcher.hpp +0 -0
  71. {modelstudio-0.6.1 → modelstudio-0.7.0}/csrc/dispatcher/operator_registry.hpp +0 -0
  72. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/autograd.md +0 -0
  73. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/backend-architecture.md +0 -0
  74. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/checkpointing.md +0 -0
  75. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/comparison-ops.md +0 -0
  76. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/data.md +0 -0
  77. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/functional-api.md +0 -0
  78. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/linalg.md +0 -0
  79. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/metrics.md +0 -0
  80. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/modules.md +0 -0
  81. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/nn.md +0 -0
  82. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/numpy-interop.md +0 -0
  83. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/optimizers.md +0 -0
  84. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/random.md +0 -0
  85. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/randomness.md +0 -0
  86. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/serialization.md +0 -0
  87. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/tensor-api.md +0 -0
  88. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/tensor-creation.md +0 -0
  89. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/tensor-manipulation.md +0 -0
  90. {modelstudio-0.6.1 → modelstudio-0.7.0}/docs/tracing.md +0 -0
  91. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/backend_status.py +0 -0
  92. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/checkpoint_resume.py +0 -0
  93. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/checkpoint_training.py +0 -0
  94. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/cuda_autograd_demo.py +0 -0
  95. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/cuda_mlp_demo.py +0 -0
  96. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/cuda_tensor_demo.py +0 -0
  97. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/dropout_batchnorm.py +0 -0
  98. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/functional_training.py +0 -0
  99. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/metrics_demo.py +0 -0
  100. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/numpy_interop.py +0 -0
  101. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/random_linalg_demo.py +0 -0
  102. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/save_load.py +0 -0
  103. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/scheduler_training.py +0 -0
  104. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/tiny_transformer.py +0 -0
  105. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/tracing_demo.py +0 -0
  106. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/train_classifier.py +0 -0
  107. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/train_cnn_toy.py +0 -0
  108. {modelstudio-0.6.1 → modelstudio-0.7.0}/examples/train_mlp.py +0 -0
  109. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/__init__.py +0 -0
  110. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/autograd/__init__.py +0 -0
  111. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/autograd/engine.py +0 -0
  112. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/autograd/function.py +0 -0
  113. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/autograd/grad_mode.py +0 -0
  114. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/backends/__init__.py +0 -0
  115. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/backends/cuda.py +0 -0
  116. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/backends/status.py +0 -0
  117. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/compile/__init__.py +0 -0
  118. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/compile/graph_capture.py +0 -0
  119. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/compile/ir.py +0 -0
  120. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/compile/passes.py +0 -0
  121. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/cuda/__init__.py +0 -0
  122. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/cuda/device.py +0 -0
  123. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/cuda/memory.py +0 -0
  124. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/cuda/streams.py +0 -0
  125. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/data/__init__.py +0 -0
  126. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/data/dataloader.py +0 -0
  127. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/data/dataset.py +0 -0
  128. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/device.py +0 -0
  129. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/dtypes.py +0 -0
  130. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/errors.py +0 -0
  131. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/interop.py +0 -0
  132. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/linalg.py +0 -0
  133. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/metrics/__init__.py +0 -0
  134. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/metrics/classification.py +0 -0
  135. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/__init__.py +0 -0
  136. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/activations.py +0 -0
  137. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/convolution.py +0 -0
  138. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/embedding.py +0 -0
  139. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/functional.py +0 -0
  140. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/init.py +0 -0
  141. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/linear.py +0 -0
  142. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/losses.py +0 -0
  143. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/module.py +0 -0
  144. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/normalization.py +0 -0
  145. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/parameter.py +0 -0
  146. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/pooling.py +0 -0
  147. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/transformer.py +0 -0
  148. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/nn/utils.py +0 -0
  149. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/ops/__init__.py +0 -0
  150. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/ops/comparison.py +0 -0
  151. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/ops/creation.py +0 -0
  152. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/ops/linalg.py +0 -0
  153. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/ops/math.py +0 -0
  154. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/ops/movement.py +0 -0
  155. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/ops/reductions.py +0 -0
  156. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/optim/__init__.py +0 -0
  157. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/optim/adamw.py +0 -0
  158. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/optim/lr_scheduler.py +0 -0
  159. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/optim/optimizer.py +0 -0
  160. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/optim/sgd.py +0 -0
  161. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/py.typed +0 -0
  162. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/random.py +0 -0
  163. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/runtime/__init__.py +0 -0
  164. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/runtime/backend.py +0 -0
  165. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/runtime/dispatcher.py +0 -0
  166. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/serialization.py +0 -0
  167. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/storage.py +0 -0
  168. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/tensor.py +0 -0
  169. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/testing/__init__.py +0 -0
  170. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio/testing/gradcheck.py +0 -0
  171. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio.egg-info/dependency_links.txt +0 -0
  172. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio.egg-info/requires.txt +0 -0
  173. {modelstudio-0.6.1 → modelstudio-0.7.0}/python/modelstudio.egg-info/top_level.txt +0 -0
  174. {modelstudio-0.6.1 → modelstudio-0.7.0}/scripts/smoke_test.py +0 -0
  175. {modelstudio-0.6.1 → modelstudio-0.7.0}/setup.cfg +0 -0
  176. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_activations_more.py +0 -0
  177. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_attention.py +0 -0
  178. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_autograd.py +0 -0
  179. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_backend_status.py +0 -0
  180. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_batchnorm.py +0 -0
  181. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_buffers.py +0 -0
  182. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_checkpoint_helpers.py +0 -0
  183. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_clone_copy.py +0 -0
  184. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_comparison_ops.py +0 -0
  185. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_concat_stack.py +0 -0
  186. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_conv.py +0 -0
  187. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_creation_more.py +0 -0
  188. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_autograd.py +0 -0
  189. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_availability.py +0 -0
  190. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_matmul.py +0 -0
  191. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_memory.py +0 -0
  192. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_nn.py +0 -0
  193. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_ops.py +0 -0
  194. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_optim.py +0 -0
  195. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_reductions.py +0 -0
  196. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_cuda_tensor.py +0 -0
  197. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_data.py +0 -0
  198. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_data_split.py +0 -0
  199. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_dataloader_seed.py +0 -0
  200. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_dispatcher.py +0 -0
  201. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_dropout.py +0 -0
  202. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_dtype_conversion.py +0 -0
  203. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_embedding.py +0 -0
  204. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_functional.py +0 -0
  205. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_grad_clip.py +0 -0
  206. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_gradcheck.py +0 -0
  207. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_indexing.py +0 -0
  208. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_indexing_assignment.py +0 -0
  209. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_init.py +0 -0
  210. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_linalg.py +0 -0
  211. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_loss_reductions.py +0 -0
  212. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_losses.py +0 -0
  213. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_lr_scheduler.py +0 -0
  214. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_manipulation_ops.py +0 -0
  215. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_metrics.py +0 -0
  216. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_module_ergonomics.py +0 -0
  217. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_native_cpu_mode.py +0 -0
  218. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_nn.py +0 -0
  219. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_norms.py +0 -0
  220. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_numpy_interop.py +0 -0
  221. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_ops.py +0 -0
  222. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_optim.py +0 -0
  223. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_optimizer_param_groups.py +0 -0
  224. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_optimizer_state.py +0 -0
  225. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_pooling.py +0 -0
  226. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_random.py +0 -0
  227. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_random_namespace.py +0 -0
  228. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_reductions_axis.py +0 -0
  229. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_scalar_behavior.py +0 -0
  230. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_serialization.py +0 -0
  231. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_serialization_hardening.py +0 -0
  232. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_shape_ops.py +0 -0
  233. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_state_dict.py +0 -0
  234. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_tensor.py +0 -0
  235. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_trace.py +0 -0
  236. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_transformer.py +0 -0
  237. {modelstudio-0.6.1 → modelstudio-0.7.0}/tests/test_unary_ops.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modelstudio
3
- Version: 0.6.1
3
+ Version: 0.7.0
4
4
  Summary: An early-stage AI tensor framework with CPU tensors, autograd, and backend extension scaffolding.
5
5
  Author: ModelStudio Contributors
6
6
  License-Expression: MIT
@@ -31,7 +31,7 @@ Dynamic: license-file
31
31
 
32
32
  # ModelStudio
33
33
 
34
- ModelStudio is an early-stage AI tensor framework. Version `0.6.1` provides a
34
+ ModelStudio is an early-stage AI tensor framework. Version `0.7.0` provides a
35
35
  CPU tensor/autograd MVP with neural-network modules, optimizers, serialization,
36
36
  data loading, graph tracing metadata, backend status inspection, a public CUDA
37
37
  availability namespace, and small LLM-oriented building blocks.
@@ -242,6 +242,7 @@ python benchmarks/bench_cuda_elementwise.py
242
242
  python benchmarks/bench_cuda_matmul.py
243
243
  python benchmarks/bench_cuda_autograd.py
244
244
  python scripts/cuda_release_check.py
245
+ python scripts/cuda_source_build_check.py
245
246
  ```
246
247
 
247
248
  ## Documentation
@@ -1,6 +1,6 @@
1
1
  # ModelStudio
2
2
 
3
- ModelStudio is an early-stage AI tensor framework. Version `0.6.1` provides a
3
+ ModelStudio is an early-stage AI tensor framework. Version `0.7.0` provides a
4
4
  CPU tensor/autograd MVP with neural-network modules, optimizers, serialization,
5
5
  data loading, graph tracing metadata, backend status inspection, a public CUDA
6
6
  availability namespace, and small LLM-oriented building blocks.
@@ -211,6 +211,7 @@ python benchmarks/bench_cuda_elementwise.py
211
211
  python benchmarks/bench_cuda_matmul.py
212
212
  python benchmarks/bench_cuda_autograd.py
213
213
  python scripts/cuda_release_check.py
214
+ python scripts/cuda_source_build_check.py
214
215
  ```
215
216
 
216
217
  ## Documentation
@@ -1,6 +1,6 @@
1
1
  # Backend Status
2
2
 
3
- ModelStudio 0.6.1 keeps CPU as the only available runtime backend in the
3
+ ModelStudio 0.7.0 keeps CPU as the only available runtime backend in the
4
4
  default PyPI package. It also exposes a public CUDA status namespace so users
5
5
  can check accelerator availability without importing optional native artifacts.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CUDA Status
2
2
 
3
- ModelStudio 0.6.1 adds a public CUDA availability namespace and native scaffold,
3
+ ModelStudio 0.7.0 includes a public CUDA availability namespace and native scaffold,
4
4
  but the default `modelstudio` PyPI package remains CPU-only.
5
5
 
6
6
  ```python
@@ -54,6 +54,18 @@ cmake -S . -B build-cuda -DMODELSTUDIO_ENABLE_CUDA=ON
54
54
  If the CUDA compiler or toolkit is missing, configuration fails clearly instead
55
55
  of silently producing a CPU-only build that looks CUDA-capable.
56
56
 
57
+ On Windows source checkouts, the helper below bootstraps missing Python-side
58
+ build tools such as the CMake wheel, runs CMake, and treats skipped CUDA tests
59
+ as a failure:
60
+
61
+ ```powershell
62
+ python scripts/cuda_source_build_check.py
63
+ ```
64
+
65
+ If this fails with a C++ compiler or generator error, install Visual Studio
66
+ Build Tools with the C++ workload and rerun it from a shell where `nvcc --version`
67
+ works.
68
+
57
69
  ## Phase 7 Release Gate
58
70
 
59
71
  The next CUDA execution release must be prepared on a machine where all of
@@ -86,6 +98,12 @@ CPU-only machines may still run the same tests, but CUDA execution tests should
86
98
  skip with `CUDA unavailable`. That is useful development feedback, not release
87
99
  evidence for CUDA execution.
88
100
 
101
+ For the same gate in one command from a source checkout:
102
+
103
+ ```bash
104
+ python scripts/cuda_source_build_check.py
105
+ ```
106
+
89
107
  ## CUDA Examples And Benchmarks
90
108
 
91
109
  The CUDA scripts are safe to run on CPU-only installs:
@@ -1,6 +1,6 @@
1
1
  # Native Backend Roadmap
2
2
 
3
- The Python runtime still uses NumPy CPU kernels in 0.6.1. The native C++ tree is
3
+ The Python runtime still uses NumPy CPU kernels in 0.7.0. The native C++ tree is
4
4
  scaffolding for future backend work and is intentionally not wired into Python
5
5
  dispatch yet.
6
6
 
@@ -55,6 +55,13 @@ python scripts/cuda_release_check.py
55
55
  On the CUDA release machine those tests must run and pass. If they skip because
56
56
  CUDA is unavailable, do not tag or publish the CUDA release.
57
57
 
58
+ From a source checkout, this one-command gate also bootstraps missing
59
+ Python-side build tools such as the CMake wheel and fails if CUDA tests skip:
60
+
61
+ ```bash
62
+ python scripts/cuda_source_build_check.py
63
+ ```
64
+
58
65
  ## Build Distributions
59
66
 
60
67
  Start from clean build outputs:
@@ -1,6 +1,6 @@
1
1
  # Training
2
2
 
3
- ModelStudio 0.6.1 supports CPU training loops with modules, optimizers,
3
+ ModelStudio 0.7.0 supports CPU training loops with modules, optimizers,
4
4
  loss functions, DataLoader batching, dropout, BatchNorm1d, and checkpointing.
5
5
 
6
6
  ```python
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "modelstudio"
7
- version = "0.6.1"
7
+ version = "0.7.0"
8
8
  description = "An early-stage AI tensor framework with CPU tensors, autograd, and backend extension scaffolding."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -0,0 +1 @@
1
+ __version__ = "0.7.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modelstudio
3
- Version: 0.6.1
3
+ Version: 0.7.0
4
4
  Summary: An early-stage AI tensor framework with CPU tensors, autograd, and backend extension scaffolding.
5
5
  Author: ModelStudio Contributors
6
6
  License-Expression: MIT
@@ -31,7 +31,7 @@ Dynamic: license-file
31
31
 
32
32
  # ModelStudio
33
33
 
34
- ModelStudio is an early-stage AI tensor framework. Version `0.6.1` provides a
34
+ ModelStudio is an early-stage AI tensor framework. Version `0.7.0` provides a
35
35
  CPU tensor/autograd MVP with neural-network modules, optimizers, serialization,
36
36
  data loading, graph tracing metadata, backend status inspection, a public CUDA
37
37
  availability namespace, and small LLM-oriented building blocks.
@@ -242,6 +242,7 @@ python benchmarks/bench_cuda_elementwise.py
242
242
  python benchmarks/bench_cuda_matmul.py
243
243
  python benchmarks/bench_cuda_autograd.py
244
244
  python scripts/cuda_release_check.py
245
+ python scripts/cuda_source_build_check.py
245
246
  ```
246
247
 
247
248
  ## Documentation
@@ -166,6 +166,7 @@ python/modelstudio/runtime/dispatcher.py
166
166
  python/modelstudio/testing/__init__.py
167
167
  python/modelstudio/testing/gradcheck.py
168
168
  scripts/cuda_release_check.py
169
+ scripts/cuda_source_build_check.py
169
170
  scripts/smoke_test.py
170
171
  tests/test_activations_more.py
171
172
  tests/test_attention.py
@@ -5,8 +5,14 @@ import shutil
5
5
  import subprocess
6
6
  import sys
7
7
  from collections.abc import Sequence
8
+ from pathlib import Path
8
9
 
9
- import modelstudio as ms
10
+ _ROOT = Path(__file__).resolve().parents[1]
11
+ _PYTHON_SRC = _ROOT / "python"
12
+ if _PYTHON_SRC.exists():
13
+ sys.path.insert(0, str(_PYTHON_SRC))
14
+
15
+ import modelstudio as ms # noqa: E402
10
16
 
11
17
 
12
18
  def _run_probe(command: Sequence[str]) -> int:
@@ -0,0 +1,218 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import importlib.util
5
+ import os
6
+ import re
7
+ import shutil
8
+ import subprocess
9
+ import sys
10
+ import sysconfig
11
+ from collections.abc import Sequence
12
+ from pathlib import Path
13
+
14
+ ROOT = Path(__file__).resolve().parents[1]
15
+ DEFAULT_BUILD_DIR = ROOT / "build-cuda"
16
+ CUDA_TESTS = [
17
+ "tests/test_cuda_availability.py",
18
+ "tests/test_cuda_tensor.py",
19
+ "tests/test_cuda_ops.py",
20
+ "tests/test_cuda_reductions.py",
21
+ "tests/test_cuda_matmul.py",
22
+ "tests/test_cuda_autograd.py",
23
+ "tests/test_cuda_optim.py",
24
+ "tests/test_cuda_nn.py",
25
+ "tests/test_cuda_memory.py",
26
+ ]
27
+
28
+
29
+ class CheckFailed(RuntimeError):
30
+ """Raised when the CUDA source validation gate cannot complete."""
31
+
32
+
33
+ def _scripts_dir() -> Path:
34
+ return Path(sysconfig.get_path("scripts"))
35
+
36
+
37
+ def _command_name(name: str) -> str:
38
+ return f"{name}.exe" if os.name == "nt" else name
39
+
40
+
41
+ def _resolve_command(name: str) -> str | None:
42
+ path_command = shutil.which(name)
43
+ if path_command is not None:
44
+ return path_command
45
+
46
+ scripts_command = _scripts_dir() / _command_name(name)
47
+ if scripts_command.exists():
48
+ return str(scripts_command)
49
+ return None
50
+
51
+
52
+ def _format_command(command: Sequence[str | Path]) -> str:
53
+ return " ".join(str(part) for part in command)
54
+
55
+
56
+ def _run(
57
+ command: Sequence[str | Path],
58
+ *,
59
+ cwd: Path = ROOT,
60
+ env: dict[str, str] | None = None,
61
+ capture: bool = False,
62
+ ) -> subprocess.CompletedProcess[str]:
63
+ print(f"$ {_format_command(command)}")
64
+ completed = subprocess.run(
65
+ [str(part) for part in command],
66
+ cwd=cwd,
67
+ env=env,
68
+ check=False,
69
+ text=True,
70
+ stdout=subprocess.PIPE if capture else None,
71
+ stderr=subprocess.STDOUT if capture else None,
72
+ )
73
+ if capture and completed.stdout:
74
+ print(completed.stdout.rstrip())
75
+ return completed
76
+
77
+
78
+ def _require_command(command: str, hint: str) -> None:
79
+ resolved = _resolve_command(command)
80
+ if resolved is None:
81
+ raise CheckFailed(f"{command} was not found. {hint}")
82
+ probe_command = [resolved, "--version"] if command == "nvcc" else [resolved]
83
+ completed = _run(probe_command)
84
+ if completed.returncode != 0:
85
+ raise CheckFailed(f"{command} exists but returned exit code {completed.returncode}.")
86
+
87
+
88
+ def _python_package_available(module_name: str) -> bool:
89
+ return importlib.util.find_spec(module_name) is not None
90
+
91
+
92
+ def _bootstrap_build_tools(args: argparse.Namespace) -> None:
93
+ missing: list[str] = []
94
+ if _resolve_command("cmake") is None:
95
+ missing.append("cmake>=3.24")
96
+ if not _python_package_available("pytest"):
97
+ missing.append("pytest>=8")
98
+ if not _python_package_available("numpy"):
99
+ missing.append("numpy>=1.26")
100
+ if args.generator and args.generator.lower() == "ninja" and _resolve_command("ninja") is None:
101
+ missing.append("ninja")
102
+
103
+ if not missing:
104
+ return
105
+ if args.no_bootstrap:
106
+ raise CheckFailed(f"Missing build tools: {', '.join(missing)}")
107
+
108
+ print("Installing missing Python build tools into the active environment:")
109
+ completed = _run([sys.executable, "-m", "pip", "install", "-U", *missing])
110
+ if completed.returncode != 0:
111
+ raise CheckFailed("Failed to install missing Python build tools.")
112
+
113
+
114
+ def _validation_env(build_dir: Path) -> dict[str, str]:
115
+ env = os.environ.copy()
116
+ existing_path = env.get("PATH", "")
117
+ env["PATH"] = os.pathsep.join([str(_scripts_dir()), existing_path]) if existing_path else str(_scripts_dir())
118
+
119
+ pythonpath_parts = [
120
+ ROOT / "python",
121
+ build_dir,
122
+ build_dir / "Release",
123
+ build_dir / "Debug",
124
+ build_dir / "csrc",
125
+ build_dir / "csrc" / "Release",
126
+ build_dir / "csrc" / "Debug",
127
+ ]
128
+ existing_pythonpath = env.get("PYTHONPATH")
129
+ if existing_pythonpath:
130
+ pythonpath_parts.append(Path(existing_pythonpath))
131
+ env["PYTHONPATH"] = os.pathsep.join(str(part) for part in pythonpath_parts)
132
+ return env
133
+
134
+
135
+ def _configure_and_build(args: argparse.Namespace, cmake: str, env: dict[str, str]) -> None:
136
+ configure_command: list[str | Path] = [
137
+ cmake,
138
+ "-S",
139
+ ROOT,
140
+ "-B",
141
+ args.build_dir,
142
+ "-DMODELSTUDIO_ENABLE_CUDA=ON",
143
+ ]
144
+ if args.generator:
145
+ configure_command.extend(["-G", args.generator])
146
+
147
+ configure = _run(configure_command, env=env)
148
+ if configure.returncode != 0:
149
+ raise CheckFailed(
150
+ "CMake CUDA configure failed. On Windows, install CMake or let this script bootstrap it; "
151
+ "install Visual Studio Build Tools with the C++ workload; and run from a shell where nvcc works."
152
+ )
153
+
154
+ build = _run([cmake, "--build", args.build_dir, "--config", args.config], env=env)
155
+ if build.returncode != 0:
156
+ raise CheckFailed("CMake CUDA build failed.")
157
+
158
+
159
+ def _run_cuda_tests(env: dict[str, str]) -> None:
160
+ completed = _run([sys.executable, "-m", "pytest", "-q", "-rs", *CUDA_TESTS], env=env, capture=True)
161
+ if completed.returncode != 0:
162
+ raise CheckFailed("CUDA pytest gate failed.")
163
+
164
+ output = completed.stdout or ""
165
+ skipped_match = re.search(r"(?P<count>\d+)\s+skipped", output, flags=re.IGNORECASE)
166
+ if skipped_match and int(skipped_match.group("count")) > 0:
167
+ raise CheckFailed(
168
+ "CUDA tests skipped. That means ModelStudio's Python runtime did not see an available CUDA backend."
169
+ )
170
+
171
+
172
+ def _run_release_check(env: dict[str, str]) -> None:
173
+ completed = _run([sys.executable, "scripts/cuda_release_check.py"], env=env)
174
+ if completed.returncode != 0:
175
+ raise CheckFailed("Strict CUDA release check failed.")
176
+
177
+
178
+ def parse_args() -> argparse.Namespace:
179
+ parser = argparse.ArgumentParser(description="Validate a ModelStudio source checkout on a CUDA machine.")
180
+ parser.add_argument("--build-dir", type=Path, default=DEFAULT_BUILD_DIR)
181
+ parser.add_argument("--config", default="Release")
182
+ parser.add_argument("--generator", help="Optional CMake generator, for example Ninja.")
183
+ parser.add_argument("--no-bootstrap", action="store_true", help="Do not install missing Python build tools.")
184
+ parser.add_argument(
185
+ "--skip-cmake-build",
186
+ action="store_true",
187
+ help="Only run the Python CUDA tests and release check.",
188
+ )
189
+ return parser.parse_args()
190
+
191
+
192
+ def main() -> int:
193
+ args = parse_args()
194
+ try:
195
+ print("ModelStudio CUDA source validation")
196
+ print("This validates real CUDA availability; skipped CUDA tests are treated as a failure.")
197
+ _require_command("nvidia-smi", "Install an NVIDIA driver and make sure nvidia-smi is on PATH.")
198
+ _require_command("nvcc", "Install the CUDA Toolkit and make sure nvcc is on PATH.")
199
+ _bootstrap_build_tools(args)
200
+ cmake = _resolve_command("cmake")
201
+ if cmake is None:
202
+ raise CheckFailed("cmake was not found after bootstrapping.")
203
+
204
+ env = _validation_env(args.build_dir)
205
+ if not args.skip_cmake_build:
206
+ _configure_and_build(args, cmake, env)
207
+ _run_cuda_tests(env)
208
+ _run_release_check(env)
209
+ except Exception as exc: # noqa: BLE001
210
+ print(f"CUDA source validation failed: {exc}", file=sys.stderr)
211
+ return 1
212
+
213
+ print("CUDA source validation passed.")
214
+ return 0
215
+
216
+
217
+ if __name__ == "__main__":
218
+ raise SystemExit(main())
@@ -23,5 +23,5 @@ def test_existing_public_names_remain_available():
23
23
  assert hasattr(ms, "numpy")
24
24
 
25
25
 
26
- def test_version_is_0_5_0():
27
- assert ms.__version__ == "0.6.1"
26
+ def test_version_is_current():
27
+ assert ms.__version__ == "0.7.0"
@@ -2,4 +2,4 @@ import modelstudio as ms
2
2
 
3
3
 
4
4
  def test_version_is_exported() -> None:
5
- assert ms.__version__ == "0.6.1"
5
+ assert ms.__version__ == "0.7.0"
@@ -1 +0,0 @@
1
- __version__ = "0.6.1"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes