tensorstudio 1.3.6__tar.gz → 1.5.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.
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/.github/workflows/publish.yml +0 -9
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/CHANGELOG.md +29 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/CMakeLists.txt +1 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/PKG-INFO +7 -3
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/README.md +6 -2
- tensorstudio-1.5.0/benchmarks/results.md +343 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/autograd/coverage.md +8 -2
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/autograd/overview.md +4 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/core/api-reference.md +12 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/core/native-cpp-core.md +2 -2
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/core/tensors.md +33 -4
- tensorstudio-1.5.0/docs/data/dataloader-patterns.md +68 -0
- tensorstudio-1.5.0/docs/data/tensor-datasets.md +66 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/getting-started/quickstart.md +1 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/hardware/cpu-backend.md +1 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/index.md +28 -4
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/interchange/onnx.md +1 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/interchange/serialization.md +2 -2
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/nn/training.md +1 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/performance/benchmarks.md +1 -1
- tensorstudio-1.5.0/docs/performance/optimization.md +57 -0
- tensorstudio-1.5.0/docs/performance/profiling.md +56 -0
- tensorstudio-1.5.0/docs/project/checkpoints.md +58 -0
- tensorstudio-1.5.0/docs/project/project-layout.md +54 -0
- tensorstudio-1.5.0/docs/release/checklist.md +49 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/release/publishing.md +11 -10
- tensorstudio-1.5.0/docs/release/versioning.md +42 -0
- tensorstudio-1.5.0/docs/roadmap/milestones.md +46 -0
- tensorstudio-1.5.0/docs/roadmap/priorities.md +39 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/roadmap/roadmap.md +6 -4
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/ops.hpp +23 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/version.hpp +1 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/mkdocs.yml +12 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/pyproject.toml +1 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/_C.pyi +9 -2
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/__init__.py +8 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/_version.py +1 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/ops.py +17 -2
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/bindings/bind_ops.cpp +18 -1
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/bindings/bind_tensor.cpp +136 -9
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/ops.cpp +329 -7
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_import.py +1 -1
- tensorstudio-1.5.0/tests/test_indexing.py +87 -0
- tensorstudio-1.5.0/tests/test_views.py +94 -0
- tensorstudio-1.3.6/benchmarks/results.md +0 -343
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/.gitattributes +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/.github/workflows/ci.yml +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/.github/workflows/publish-testpypi.yml +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/.github/workflows/wheels.yml +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/.gitignore +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/.pre-commit-config.yaml +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/CONTRIBUTING.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/LICENSE +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/SECURITY.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmark_all.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/__init__.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_activations.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_autograd.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_conv2d.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_elementwise.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_matmul.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_pooling.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_reductions.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_tensor_ops.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/bench_training_loop.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/benchmark_report.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/results_conv2d.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/results_matmul.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/results_pooling.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/results_reductions.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/benchmarks/results_tensor_ops.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/autograd/gradient-notes.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/core/broadcasting.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/data/datasets-and-dataloaders.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/development/contributing.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/development/cpp-first.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/getting-started/installation.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/getting-started/source-build.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/hardware/linux.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/hardware/macos.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/hardware/windows.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/interchange/model-formats.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/interchange/numpy-interop.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/interchange/trusted-serialization.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/nn/modules.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/nn/optimizers.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/nn/overview.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/project/workflows.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/vision/dataset-creation.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/docs/vision/overview.md +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/basic_tensor_ops.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/export_onnx.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/image_folder_classification.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/linear_regression.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/project_training.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/save_load_model.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/tiny_mlp.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/examples/vision_classifier.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/autograd.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/device.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/dtype.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/errors.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/module.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/optim.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/random.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/serialization.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/shape.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/storage.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/include/tensorstudio/tensor.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/autograd.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/data/__init__.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/data/dataloader.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/data/dataset.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/dtypes.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/errors.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/grad_mode.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/interchange/__init__.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/interchange/onnx.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/math.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/nn/__init__.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/nn/functional.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/nn/losses.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/nn/modules.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/optim/__init__.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/optim/adam.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/optim/adamw.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/optim/lr_scheduler.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/optim/sgd.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/optim/utils.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/project/__init__.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/project/checkpoint.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/project/config.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/project/trainer.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/py.typed +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/serialization.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/tensor.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/typing.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/vision/__init__.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/vision/datasets.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/vision/io.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/vision/metrics.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/vision/models.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/vision/transforms.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/python/tensorstudio/vision/visualization.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/bindings/bind_autograd.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/bindings/bind_nn.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/bindings/bind_optim.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/bindings/bindings.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/bindings/bindings.hpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/autograd.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/device.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/dtype.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/errors.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/module.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/optim.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/random.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/serialization.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/shape.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/storage.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/src/core/tensor.cpp +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/test_all.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_autograd.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_benchmark_report.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_broadcasting.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_data.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_interchange.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_nn.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_numpy_interop.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_ops.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_optim.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_project.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_serialization.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_tensor.py +0 -0
- {tensorstudio-1.3.6 → tensorstudio-1.5.0}/tests/test_vision.py +0 -0
|
@@ -94,8 +94,6 @@ jobs:
|
|
|
94
94
|
needs: [windows_wheels, linux_wheels, macos_wheels, build_sdist]
|
|
95
95
|
runs-on: ubuntu-latest
|
|
96
96
|
environment: pypi
|
|
97
|
-
env:
|
|
98
|
-
HAS_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN != '' }}
|
|
99
97
|
steps:
|
|
100
98
|
- uses: actions/download-artifact@v4
|
|
101
99
|
with:
|
|
@@ -106,14 +104,7 @@ jobs:
|
|
|
106
104
|
run: |
|
|
107
105
|
python -m pip install -U twine
|
|
108
106
|
python -m twine check dist/*
|
|
109
|
-
- name: Publish to PyPI with configured API token
|
|
110
|
-
if: env.HAS_PYPI_TOKEN == 'true'
|
|
111
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
112
|
-
with:
|
|
113
|
-
password: ${{ secrets.PYPI_TOKEN }}
|
|
114
|
-
skip-existing: true
|
|
115
107
|
- name: Publish to PyPI with Trusted Publishing
|
|
116
|
-
if: env.HAS_PYPI_TOKEN != 'true'
|
|
117
108
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
118
109
|
with:
|
|
119
110
|
skip-existing: true
|
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 1.5.0 - 2026-07-07
|
|
6
|
+
|
|
7
|
+
- Completed the next ordered correctness-roadmap item with native C++ view and
|
|
8
|
+
layout operations: `squeeze`, `unsqueeze`, `permute`, and general
|
|
9
|
+
N-dimensional transpose.
|
|
10
|
+
- Added Python Tensor methods, functional APIs, top-level exports, and type
|
|
11
|
+
stubs for the new layout operations.
|
|
12
|
+
- Added autograd support for the new metadata views, including non-contiguous
|
|
13
|
+
gradient handling through reshape chains.
|
|
14
|
+
- Added NumPy parity tests for view semantics, strides, shape errors, and
|
|
15
|
+
autograd behavior.
|
|
16
|
+
- Updated tensor, API, autograd, and roadmap docs for the expanded view API.
|
|
17
|
+
|
|
18
|
+
## 1.4.0 - 2026-07-07
|
|
19
|
+
|
|
20
|
+
- Supersedes the short-lived `1.3.7` indexing release as a minor version
|
|
21
|
+
because the indexing/view API is a larger public surface change than a patch.
|
|
22
|
+
- Completed the next ordered correctness-roadmap item with native C++ basic
|
|
23
|
+
indexing and slicing views.
|
|
24
|
+
- Added Python `Tensor.__getitem__` support for integers, slices with steps,
|
|
25
|
+
tuples, ellipsis, and `None`/newaxis while rejecting advanced list, tensor,
|
|
26
|
+
and boolean indexing clearly.
|
|
27
|
+
- Added autograd scatter-back support for differentiable integer/slice views.
|
|
28
|
+
- Added NumPy parity tests for common indexing and slicing cases, scalar
|
|
29
|
+
indexing, negative strides, empty slices, unsupported indexing errors, and
|
|
30
|
+
indexing autograd.
|
|
31
|
+
- Expanded docs into multi-page sections for sparse documentation folders:
|
|
32
|
+
data, performance, project workflows, release process, and roadmap.
|
|
33
|
+
|
|
5
34
|
## 1.3.6 - 2026-07-07
|
|
6
35
|
|
|
7
36
|
- Completed the next ordered correctness-roadmap item with native C++
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tensorstudio
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.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
|
|
@@ -71,7 +71,7 @@ Description-Content-Type: text/markdown
|
|
|
71
71
|
TensorStudio is a compact C++ tensor and autograd engine with a Python API for
|
|
72
72
|
learning, experimentation, and lightweight ML workloads.
|
|
73
73
|
|
|
74
|
-
TensorStudio `1.
|
|
74
|
+
TensorStudio `1.5.0` is a CPU-only stable API foundation. It is eager-only,
|
|
75
75
|
intentionally small, and not a replacement for mature ML frameworks.
|
|
76
76
|
|
|
77
77
|
## Install
|
|
@@ -145,6 +145,8 @@ y = ts.ones((2, 2))
|
|
|
145
145
|
print((x + y).tolist())
|
|
146
146
|
print((x @ y).numpy())
|
|
147
147
|
print(x.reshape((4,)).tolist())
|
|
148
|
+
print(x[0, :].tolist())
|
|
149
|
+
print(x.unsqueeze(0).permute(1, 2, 0).shape)
|
|
148
150
|
```
|
|
149
151
|
|
|
150
152
|
## Tensor API
|
|
@@ -478,7 +480,9 @@ tokens or print secrets.
|
|
|
478
480
|
`argmax` and `argmin`.
|
|
479
481
|
- Selection helpers `where`, `maximum`, and `minimum` are native C++ tensor ops
|
|
480
482
|
with broadcasting and autograd support for floating-point branches.
|
|
481
|
-
-
|
|
483
|
+
- Basic integer/slice indexing is supported as native C++ views with autograd
|
|
484
|
+
scatter-back. Advanced list, tensor, and boolean-mask indexing are not
|
|
485
|
+
implemented yet.
|
|
482
486
|
- Dtype casting is basic and does not include a full promotion/casting policy.
|
|
483
487
|
- Experimental performance; benchmarks are local references only.
|
|
484
488
|
- Pickle serialization is for trusted TensorStudio objects only.
|
|
@@ -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.
|
|
10
|
+
TensorStudio `1.5.0` is a CPU-only stable API foundation. It is eager-only,
|
|
11
11
|
intentionally small, and not a replacement for mature ML frameworks.
|
|
12
12
|
|
|
13
13
|
## Install
|
|
@@ -81,6 +81,8 @@ y = ts.ones((2, 2))
|
|
|
81
81
|
print((x + y).tolist())
|
|
82
82
|
print((x @ y).numpy())
|
|
83
83
|
print(x.reshape((4,)).tolist())
|
|
84
|
+
print(x[0, :].tolist())
|
|
85
|
+
print(x.unsqueeze(0).permute(1, 2, 0).shape)
|
|
84
86
|
```
|
|
85
87
|
|
|
86
88
|
## Tensor API
|
|
@@ -414,7 +416,9 @@ tokens or print secrets.
|
|
|
414
416
|
`argmax` and `argmin`.
|
|
415
417
|
- Selection helpers `where`, `maximum`, and `minimum` are native C++ tensor ops
|
|
416
418
|
with broadcasting and autograd support for floating-point branches.
|
|
417
|
-
-
|
|
419
|
+
- Basic integer/slice indexing is supported as native C++ views with autograd
|
|
420
|
+
scatter-back. Advanced list, tensor, and boolean-mask indexing are not
|
|
421
|
+
implemented yet.
|
|
418
422
|
- Dtype casting is basic and does not include a full promotion/casting policy.
|
|
419
423
|
- Experimental performance; benchmarks are local references only.
|
|
420
424
|
- Pickle serialization is for trusted TensorStudio objects only.
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
# TensorStudio Benchmark Results
|
|
2
|
+
|
|
3
|
+
These benchmarks are local references, not marketing claims.
|
|
4
|
+
TensorStudio is compared on CPU only and uses the same shapes and dtype.
|
|
5
|
+
|
|
6
|
+
## Environment
|
|
7
|
+
|
|
8
|
+
- Platform: `Windows-10-10.0.26200-SP0`
|
|
9
|
+
- Processor: `Intel64 Family 6 Model 158 Stepping 10, GenuineIntel`
|
|
10
|
+
- Python: `3.10.11`
|
|
11
|
+
- TensorStudio: `1.5.0`
|
|
12
|
+
- NumPy: `1.26.4`
|
|
13
|
+
- TensorFlow CPU eager: unavailable (not installed)
|
|
14
|
+
- PyTorch CPU: unavailable (not installed)
|
|
15
|
+
- JAX CPU dispatch: available (0.6.2)
|
|
16
|
+
|
|
17
|
+
## Summary
|
|
18
|
+
|
|
19
|
+
- TensorStudio wins versus NumPy: `21`
|
|
20
|
+
- TensorStudio losses versus NumPy: `82`
|
|
21
|
+
- TensorStudio wins versus JAX CPU dispatch: `83`
|
|
22
|
+
- TensorStudio losses versus JAX CPU dispatch: `15`
|
|
23
|
+
|
|
24
|
+
TensorStudio beat NumPy on at least one local benchmark case. See the detailed table before making any narrow performance claim.
|
|
25
|
+
|
|
26
|
+
## Detailed Results
|
|
27
|
+
|
|
28
|
+
| category | operation | shape | library | median ms | mean ms | min ms | max ms | std ms | TS vs NumPy | TS vs TensorFlow | TS vs PyTorch | TS vs JAX | win vs NumPy | win vs TensorFlow | win vs PyTorch | win vs JAX | fastest library | result |
|
|
29
|
+
|---|---|---:|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---|---|---|---|---|---|
|
|
30
|
+
| elementwise | add | `(1,)` | TensorStudio | 0.0031 | 0.0030 | 0.0027 | 0.0034 | 0.0003 | 0.5045 | n/a | n/a | 3.9371 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
31
|
+
| elementwise | add | `(1,)` | NumPy | 0.0015 | 0.0016 | 0.0015 | 0.0018 | 0.0001 | 0.5045 | n/a | n/a | 3.9371 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
32
|
+
| elementwise | add | `(1,)` | JAX CPU dispatch | 0.0121 | 0.0120 | 0.0115 | 0.0123 | 0.0003 | 0.5045 | n/a | n/a | 3.9371 | no | n/a | n/a | yes | NumPy | reference |
|
|
33
|
+
| elementwise | sub | `(1,)` | TensorStudio | 0.0027 | 0.0027 | 0.0025 | 0.0029 | 0.0001 | 0.2684 | n/a | n/a | 4.4236 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
34
|
+
| elementwise | sub | `(1,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0008 | 0.0001 | 0.2684 | n/a | n/a | 4.4236 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
35
|
+
| elementwise | sub | `(1,)` | JAX CPU dispatch | 0.0117 | 0.0122 | 0.0115 | 0.0144 | 0.0011 | 0.2684 | n/a | n/a | 4.4236 | no | n/a | n/a | yes | NumPy | reference |
|
|
36
|
+
| elementwise | mul | `(1,)` | TensorStudio | 0.0027 | 0.0028 | 0.0026 | 0.0033 | 0.0003 | 0.2544 | n/a | n/a | 4.4158 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
37
|
+
| elementwise | mul | `(1,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0009 | 0.0001 | 0.2544 | n/a | n/a | 4.4158 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
38
|
+
| elementwise | mul | `(1,)` | JAX CPU dispatch | 0.0118 | 0.0118 | 0.0118 | 0.0119 | 0.0001 | 0.2544 | n/a | n/a | 4.4158 | no | n/a | n/a | yes | NumPy | reference |
|
|
39
|
+
| elementwise | div | `(1,)` | TensorStudio | 0.0031 | 0.0031 | 0.0026 | 0.0035 | 0.0003 | 0.2271 | n/a | n/a | 3.1559 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
40
|
+
| elementwise | div | `(1,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0009 | 0.0001 | 0.2271 | n/a | n/a | 3.1559 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
41
|
+
| elementwise | div | `(1,)` | JAX CPU dispatch | 0.0098 | 0.0098 | 0.0087 | 0.0114 | 0.0010 | 0.2271 | n/a | n/a | 3.1559 | no | n/a | n/a | yes | NumPy | reference |
|
|
42
|
+
| elementwise | chain_relu((x*2+1)/3) | `(1,)` | TensorStudio | 0.0104 | 0.0104 | 0.0100 | 0.0108 | 0.0003 | 0.5418 | n/a | n/a | 8.6896 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
43
|
+
| elementwise | chain_relu((x*2+1)/3) | `(1,)` | NumPy | 0.0056 | 0.0056 | 0.0055 | 0.0059 | 0.0002 | 0.5418 | n/a | n/a | 8.6896 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
44
|
+
| elementwise | chain_relu((x*2+1)/3) | `(1,)` | JAX CPU dispatch | 0.0902 | 0.0920 | 0.0875 | 0.1022 | 0.0052 | 0.5418 | n/a | n/a | 8.6896 | no | n/a | n/a | yes | NumPy | reference |
|
|
45
|
+
| elementwise | add | `(8,)` | TensorStudio | 0.0027 | 0.0027 | 0.0027 | 0.0029 | 0.0001 | 0.2908 | n/a | n/a | 4.4306 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
46
|
+
| elementwise | add | `(8,)` | NumPy | 0.0008 | 0.0008 | 0.0007 | 0.0009 | 0.0001 | 0.2908 | n/a | n/a | 4.4306 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
47
|
+
| elementwise | add | `(8,)` | JAX CPU dispatch | 0.0120 | 0.0124 | 0.0114 | 0.0144 | 0.0011 | 0.2908 | n/a | n/a | 4.4306 | no | n/a | n/a | yes | NumPy | reference |
|
|
48
|
+
| elementwise | sub | `(8,)` | TensorStudio | 0.0027 | 0.0027 | 0.0026 | 0.0029 | 0.0001 | 0.2700 | n/a | n/a | 4.4292 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
49
|
+
| elementwise | sub | `(8,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0007 | 0.0000 | 0.2700 | n/a | n/a | 4.4292 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
50
|
+
| elementwise | sub | `(8,)` | JAX CPU dispatch | 0.0119 | 0.0120 | 0.0117 | 0.0125 | 0.0003 | 0.2700 | n/a | n/a | 4.4292 | no | n/a | n/a | yes | NumPy | reference |
|
|
51
|
+
| elementwise | mul | `(8,)` | TensorStudio | 0.0025 | 0.0027 | 0.0025 | 0.0031 | 0.0002 | 0.2880 | n/a | n/a | 4.7936 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
52
|
+
| elementwise | mul | `(8,)` | NumPy | 0.0007 | 0.0008 | 0.0007 | 0.0008 | 0.0001 | 0.2880 | n/a | n/a | 4.7936 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
53
|
+
| elementwise | mul | `(8,)` | JAX CPU dispatch | 0.0122 | 0.0122 | 0.0119 | 0.0125 | 0.0002 | 0.2880 | n/a | n/a | 4.7936 | no | n/a | n/a | yes | NumPy | reference |
|
|
54
|
+
| elementwise | div | `(8,)` | TensorStudio | 0.0027 | 0.0028 | 0.0026 | 0.0031 | 0.0002 | 0.2629 | n/a | n/a | 3.3506 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
55
|
+
| elementwise | div | `(8,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0007 | 0.0000 | 0.2629 | n/a | n/a | 3.3506 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
56
|
+
| elementwise | div | `(8,)` | JAX CPU dispatch | 0.0091 | 0.0092 | 0.0089 | 0.0097 | 0.0003 | 0.2629 | n/a | n/a | 3.3506 | no | n/a | n/a | yes | NumPy | reference |
|
|
57
|
+
| elementwise | chain_relu((x*2+1)/3) | `(8,)` | TensorStudio | 0.0100 | 0.0100 | 0.0098 | 0.0102 | 0.0002 | 0.5536 | n/a | n/a | 9.2234 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
58
|
+
| elementwise | chain_relu((x*2+1)/3) | `(8,)` | NumPy | 0.0055 | 0.0056 | 0.0053 | 0.0061 | 0.0003 | 0.5536 | n/a | n/a | 9.2234 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
59
|
+
| elementwise | chain_relu((x*2+1)/3) | `(8,)` | JAX CPU dispatch | 0.0923 | 0.0926 | 0.0898 | 0.0956 | 0.0024 | 0.5536 | n/a | n/a | 9.2234 | no | n/a | n/a | yes | NumPy | reference |
|
|
60
|
+
| elementwise | add | `(32,)` | TensorStudio | 0.0026 | 0.0027 | 0.0025 | 0.0029 | 0.0002 | 0.2563 | n/a | n/a | 4.5519 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
61
|
+
| elementwise | add | `(32,)` | NumPy | 0.0007 | 0.0007 | 0.0006 | 0.0008 | 0.0001 | 0.2563 | n/a | n/a | 4.5519 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
62
|
+
| elementwise | add | `(32,)` | JAX CPU dispatch | 0.0120 | 0.0125 | 0.0115 | 0.0147 | 0.0011 | 0.2563 | n/a | n/a | 4.5519 | no | n/a | n/a | yes | NumPy | reference |
|
|
63
|
+
| elementwise | sub | `(32,)` | TensorStudio | 0.0026 | 0.0027 | 0.0026 | 0.0031 | 0.0002 | 0.2707 | n/a | n/a | 4.7729 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
64
|
+
| elementwise | sub | `(32,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0007 | 0.0000 | 0.2707 | n/a | n/a | 4.7729 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
65
|
+
| elementwise | sub | `(32,)` | JAX CPU dispatch | 0.0126 | 0.0127 | 0.0118 | 0.0144 | 0.0009 | 0.2707 | n/a | n/a | 4.7729 | no | n/a | n/a | yes | NumPy | reference |
|
|
66
|
+
| elementwise | mul | `(32,)` | TensorStudio | 0.0034 | 0.0036 | 0.0028 | 0.0045 | 0.0007 | 0.2260 | n/a | n/a | 3.5742 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
67
|
+
| elementwise | mul | `(32,)` | NumPy | 0.0008 | 0.0009 | 0.0008 | 0.0013 | 0.0002 | 0.2260 | n/a | n/a | 3.5742 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
68
|
+
| elementwise | mul | `(32,)` | JAX CPU dispatch | 0.0122 | 0.0124 | 0.0121 | 0.0129 | 0.0004 | 0.2260 | n/a | n/a | 3.5742 | no | n/a | n/a | yes | NumPy | reference |
|
|
69
|
+
| elementwise | div | `(32,)` | TensorStudio | 0.0026 | 0.0027 | 0.0026 | 0.0029 | 0.0001 | 0.2954 | n/a | n/a | 3.6594 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
70
|
+
| elementwise | div | `(32,)` | NumPy | 0.0008 | 0.0008 | 0.0007 | 0.0008 | 0.0000 | 0.2954 | n/a | n/a | 3.6594 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
71
|
+
| elementwise | div | `(32,)` | JAX CPU dispatch | 0.0096 | 0.0095 | 0.0089 | 0.0101 | 0.0004 | 0.2954 | n/a | n/a | 3.6594 | no | n/a | n/a | yes | NumPy | reference |
|
|
72
|
+
| elementwise | chain_relu((x*2+1)/3) | `(32,)` | TensorStudio | 0.0102 | 0.0102 | 0.0101 | 0.0104 | 0.0001 | 0.5655 | n/a | n/a | 9.0853 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
73
|
+
| elementwise | chain_relu((x*2+1)/3) | `(32,)` | NumPy | 0.0058 | 0.0066 | 0.0054 | 0.0101 | 0.0018 | 0.5655 | n/a | n/a | 9.0853 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
74
|
+
| elementwise | chain_relu((x*2+1)/3) | `(32,)` | JAX CPU dispatch | 0.0926 | 0.0925 | 0.0908 | 0.0947 | 0.0014 | 0.5655 | n/a | n/a | 9.0853 | no | n/a | n/a | yes | NumPy | reference |
|
|
75
|
+
| elementwise | add | `(128,)` | TensorStudio | 0.0027 | 0.0027 | 0.0026 | 0.0030 | 0.0001 | 0.2460 | n/a | n/a | 4.9523 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
76
|
+
| elementwise | add | `(128,)` | NumPy | 0.0007 | 0.0008 | 0.0007 | 0.0012 | 0.0002 | 0.2460 | n/a | n/a | 4.9523 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
77
|
+
| elementwise | add | `(128,)` | JAX CPU dispatch | 0.0131 | 0.0129 | 0.0117 | 0.0138 | 0.0007 | 0.2460 | n/a | n/a | 4.9523 | no | n/a | n/a | yes | NumPy | reference |
|
|
78
|
+
| elementwise | sub | `(128,)` | TensorStudio | 0.0029 | 0.0029 | 0.0027 | 0.0030 | 0.0002 | 0.2338 | n/a | n/a | 4.2683 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
79
|
+
| elementwise | sub | `(128,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0007 | 0.0000 | 0.2338 | n/a | n/a | 4.2683 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
80
|
+
| elementwise | sub | `(128,)` | JAX CPU dispatch | 0.0122 | 0.0122 | 0.0118 | 0.0125 | 0.0002 | 0.2338 | n/a | n/a | 4.2683 | no | n/a | n/a | yes | NumPy | reference |
|
|
81
|
+
| elementwise | mul | `(128,)` | TensorStudio | 0.0027 | 0.0027 | 0.0026 | 0.0028 | 0.0001 | 0.2585 | n/a | n/a | 4.4932 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
82
|
+
| elementwise | mul | `(128,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0008 | 0.0000 | 0.2585 | n/a | n/a | 4.4932 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
83
|
+
| elementwise | mul | `(128,)` | JAX CPU dispatch | 0.0122 | 0.0124 | 0.0120 | 0.0131 | 0.0004 | 0.2585 | n/a | n/a | 4.4932 | no | n/a | n/a | yes | NumPy | reference |
|
|
84
|
+
| elementwise | div | `(128,)` | TensorStudio | 0.0029 | 0.0029 | 0.0027 | 0.0033 | 0.0002 | 0.2493 | n/a | n/a | 3.5060 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
85
|
+
| elementwise | div | `(128,)` | NumPy | 0.0007 | 0.0007 | 0.0007 | 0.0007 | 0.0000 | 0.2493 | n/a | n/a | 3.5060 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
86
|
+
| elementwise | div | `(128,)` | JAX CPU dispatch | 0.0102 | 0.0101 | 0.0097 | 0.0104 | 0.0003 | 0.2493 | n/a | n/a | 3.5060 | no | n/a | n/a | yes | NumPy | reference |
|
|
87
|
+
| elementwise | chain_relu((x*2+1)/3) | `(128,)` | TensorStudio | 0.0105 | 0.0106 | 0.0102 | 0.0109 | 0.0003 | 0.5285 | n/a | n/a | 8.5947 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
88
|
+
| elementwise | chain_relu((x*2+1)/3) | `(128,)` | NumPy | 0.0056 | 0.0055 | 0.0054 | 0.0057 | 0.0001 | 0.5285 | n/a | n/a | 8.5947 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
89
|
+
| elementwise | chain_relu((x*2+1)/3) | `(128,)` | JAX CPU dispatch | 0.0904 | 0.0979 | 0.0895 | 0.1220 | 0.0124 | 0.5285 | n/a | n/a | 8.5947 | no | n/a | n/a | yes | NumPy | reference |
|
|
90
|
+
| elementwise | add | `(1024,)` | TensorStudio | 0.0033 | 0.0033 | 0.0033 | 0.0034 | 0.0000 | 0.2885 | n/a | n/a | 4.6777 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
91
|
+
| elementwise | add | `(1024,)` | NumPy | 0.0010 | 0.0010 | 0.0009 | 0.0011 | 0.0001 | 0.2885 | n/a | n/a | 4.6777 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
92
|
+
| elementwise | add | `(1024,)` | JAX CPU dispatch | 0.0156 | 0.0157 | 0.0133 | 0.0183 | 0.0019 | 0.2885 | n/a | n/a | 4.6777 | no | n/a | n/a | yes | NumPy | reference |
|
|
93
|
+
| elementwise | sub | `(1024,)` | TensorStudio | 0.0037 | 0.0036 | 0.0033 | 0.0039 | 0.0003 | 0.2782 | n/a | n/a | 4.0743 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
94
|
+
| elementwise | sub | `(1024,)` | NumPy | 0.0010 | 0.0010 | 0.0010 | 0.0011 | 0.0000 | 0.2782 | n/a | n/a | 4.0743 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
95
|
+
| elementwise | sub | `(1024,)` | JAX CPU dispatch | 0.0150 | 0.0152 | 0.0132 | 0.0174 | 0.0014 | 0.2782 | n/a | n/a | 4.0743 | no | n/a | n/a | yes | NumPy | reference |
|
|
96
|
+
| elementwise | mul | `(1024,)` | TensorStudio | 0.0030 | 0.0032 | 0.0030 | 0.0034 | 0.0002 | 0.3393 | n/a | n/a | 4.6246 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
97
|
+
| elementwise | mul | `(1024,)` | NumPy | 0.0010 | 0.0010 | 0.0010 | 0.0010 | 0.0000 | 0.3393 | n/a | n/a | 4.6246 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
98
|
+
| elementwise | mul | `(1024,)` | JAX CPU dispatch | 0.0141 | 0.0142 | 0.0131 | 0.0159 | 0.0010 | 0.3393 | n/a | n/a | 4.6246 | no | n/a | n/a | yes | NumPy | reference |
|
|
99
|
+
| elementwise | div | `(1024,)` | TensorStudio | 0.0037 | 0.0035 | 0.0033 | 0.0038 | 0.0002 | 0.2937 | n/a | n/a | 3.2657 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
100
|
+
| elementwise | div | `(1024,)` | NumPy | 0.0011 | 0.0011 | 0.0011 | 0.0011 | 0.0000 | 0.2937 | n/a | n/a | 3.2657 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
101
|
+
| elementwise | div | `(1024,)` | JAX CPU dispatch | 0.0121 | 0.0123 | 0.0112 | 0.0133 | 0.0008 | 0.2937 | n/a | n/a | 3.2657 | no | n/a | n/a | yes | NumPy | reference |
|
|
102
|
+
| elementwise | chain_relu((x*2+1)/3) | `(1024,)` | TensorStudio | 0.0122 | 0.0122 | 0.0118 | 0.0126 | 0.0003 | 0.6247 | n/a | n/a | 10.3590 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
103
|
+
| elementwise | chain_relu((x*2+1)/3) | `(1024,)` | NumPy | 0.0076 | 0.0076 | 0.0071 | 0.0082 | 0.0004 | 0.6247 | n/a | n/a | 10.3590 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
104
|
+
| elementwise | chain_relu((x*2+1)/3) | `(1024,)` | JAX CPU dispatch | 0.1262 | 0.1265 | 0.1172 | 0.1372 | 0.0069 | 0.6247 | n/a | n/a | 10.3590 | no | n/a | n/a | yes | NumPy | reference |
|
|
105
|
+
| elementwise | add | `(4096,)` | TensorStudio | 0.0050 | 0.0053 | 0.0048 | 0.0065 | 0.0007 | 0.2966 | n/a | n/a | 3.0274 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
106
|
+
| elementwise | add | `(4096,)` | NumPy | 0.0015 | 0.0015 | 0.0015 | 0.0015 | 0.0000 | 0.2966 | n/a | n/a | 3.0274 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
107
|
+
| elementwise | add | `(4096,)` | JAX CPU dispatch | 0.0150 | 0.0147 | 0.0127 | 0.0156 | 0.0010 | 0.2966 | n/a | n/a | 3.0274 | no | n/a | n/a | yes | NumPy | reference |
|
|
108
|
+
| elementwise | sub | `(4096,)` | TensorStudio | 0.0052 | 0.0052 | 0.0049 | 0.0054 | 0.0002 | 0.2734 | n/a | n/a | 2.8184 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
109
|
+
| elementwise | sub | `(4096,)` | NumPy | 0.0014 | 0.0015 | 0.0014 | 0.0017 | 0.0001 | 0.2734 | n/a | n/a | 2.8184 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
110
|
+
| elementwise | sub | `(4096,)` | JAX CPU dispatch | 0.0147 | 0.0146 | 0.0127 | 0.0168 | 0.0013 | 0.2734 | n/a | n/a | 2.8184 | no | n/a | n/a | yes | NumPy | reference |
|
|
111
|
+
| elementwise | mul | `(4096,)` | TensorStudio | 0.0050 | 0.0054 | 0.0047 | 0.0069 | 0.0008 | 0.3211 | n/a | n/a | 2.7789 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
112
|
+
| elementwise | mul | `(4096,)` | NumPy | 0.0016 | 0.0016 | 0.0016 | 0.0017 | 0.0000 | 0.3211 | n/a | n/a | 2.7789 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
113
|
+
| elementwise | mul | `(4096,)` | JAX CPU dispatch | 0.0140 | 0.0141 | 0.0130 | 0.0152 | 0.0009 | 0.3211 | n/a | n/a | 2.7789 | no | n/a | n/a | yes | NumPy | reference |
|
|
114
|
+
| elementwise | div | `(4096,)` | TensorStudio | 0.0058 | 0.0059 | 0.0056 | 0.0067 | 0.0004 | 0.3021 | n/a | n/a | 1.9096 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
115
|
+
| elementwise | div | `(4096,)` | NumPy | 0.0017 | 0.0017 | 0.0016 | 0.0018 | 0.0001 | 0.3021 | n/a | n/a | 1.9096 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
116
|
+
| elementwise | div | `(4096,)` | JAX CPU dispatch | 0.0110 | 0.0111 | 0.0100 | 0.0124 | 0.0008 | 0.3021 | n/a | n/a | 1.9096 | no | n/a | n/a | yes | NumPy | reference |
|
|
117
|
+
| elementwise | chain_relu((x*2+1)/3) | `(4096,)` | TensorStudio | 0.0202 | 0.0209 | 0.0197 | 0.0225 | 0.0012 | 0.7050 | n/a | n/a | 6.5396 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
118
|
+
| elementwise | chain_relu((x*2+1)/3) | `(4096,)` | NumPy | 0.0143 | 0.0148 | 0.0103 | 0.0183 | 0.0030 | 0.7050 | n/a | n/a | 6.5396 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
119
|
+
| elementwise | chain_relu((x*2+1)/3) | `(4096,)` | JAX CPU dispatch | 0.1323 | 0.1330 | 0.1211 | 0.1522 | 0.0116 | 0.7050 | n/a | n/a | 6.5396 | no | n/a | n/a | yes | NumPy | reference |
|
|
120
|
+
| elementwise | add | `(16384,)` | TensorStudio | 0.0114 | 0.0121 | 0.0113 | 0.0141 | 0.0011 | 0.3349 | n/a | n/a | 1.8802 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
121
|
+
| elementwise | add | `(16384,)` | NumPy | 0.0038 | 0.0038 | 0.0036 | 0.0041 | 0.0002 | 0.3349 | n/a | n/a | 1.8802 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
122
|
+
| elementwise | add | `(16384,)` | JAX CPU dispatch | 0.0215 | 0.0204 | 0.0150 | 0.0233 | 0.0031 | 0.3349 | n/a | n/a | 1.8802 | no | n/a | n/a | yes | NumPy | reference |
|
|
123
|
+
| elementwise | sub | `(16384,)` | TensorStudio | 0.0102 | 0.0102 | 0.0101 | 0.0103 | 0.0001 | 0.3818 | n/a | n/a | 1.2742 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
124
|
+
| elementwise | sub | `(16384,)` | NumPy | 0.0039 | 0.0039 | 0.0038 | 0.0042 | 0.0001 | 0.3818 | n/a | n/a | 1.2742 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
125
|
+
| elementwise | sub | `(16384,)` | JAX CPU dispatch | 0.0130 | 0.0177 | 0.0127 | 0.0309 | 0.0070 | 0.3818 | n/a | n/a | 1.2742 | no | n/a | n/a | yes | NumPy | reference |
|
|
126
|
+
| elementwise | mul | `(16384,)` | TensorStudio | 0.0099 | 0.0100 | 0.0093 | 0.0110 | 0.0006 | 0.5403 | n/a | n/a | 1.6402 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
127
|
+
| elementwise | mul | `(16384,)` | NumPy | 0.0054 | 0.0054 | 0.0043 | 0.0073 | 0.0011 | 0.5403 | n/a | n/a | 1.6402 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
128
|
+
| elementwise | mul | `(16384,)` | JAX CPU dispatch | 0.0163 | 0.0167 | 0.0125 | 0.0232 | 0.0036 | 0.5403 | n/a | n/a | 1.6402 | no | n/a | n/a | yes | NumPy | reference |
|
|
129
|
+
| elementwise | div | `(16384,)` | TensorStudio | 0.0134 | 0.0135 | 0.0132 | 0.0143 | 0.0004 | 0.3177 | n/a | n/a | 1.2731 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
130
|
+
| elementwise | div | `(16384,)` | NumPy | 0.0043 | 0.0043 | 0.0042 | 0.0046 | 0.0002 | 0.3177 | n/a | n/a | 1.2731 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
131
|
+
| elementwise | div | `(16384,)` | JAX CPU dispatch | 0.0171 | 0.0173 | 0.0170 | 0.0180 | 0.0004 | 0.3177 | n/a | n/a | 1.2731 | no | n/a | n/a | yes | NumPy | reference |
|
|
132
|
+
| elementwise | chain_relu((x*2+1)/3) | `(16384,)` | TensorStudio | 0.0456 | 0.0467 | 0.0445 | 0.0507 | 0.0023 | 0.4591 | n/a | n/a | 3.6702 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
133
|
+
| elementwise | chain_relu((x*2+1)/3) | `(16384,)` | NumPy | 0.0209 | 0.0211 | 0.0208 | 0.0216 | 0.0003 | 0.4591 | n/a | n/a | 3.6702 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
134
|
+
| elementwise | chain_relu((x*2+1)/3) | `(16384,)` | JAX CPU dispatch | 0.1674 | 0.1661 | 0.1535 | 0.1778 | 0.0088 | 0.4591 | n/a | n/a | 3.6702 | no | n/a | n/a | yes | NumPy | reference |
|
|
135
|
+
| activations | relu | `(1,)` | TensorStudio | 0.0021 | 0.0024 | 0.0020 | 0.0029 | 0.0004 | 0.9530 | n/a | n/a | 22.9541 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
136
|
+
| activations | relu | `(1,)` | NumPy | 0.0020 | 0.0020 | 0.0018 | 0.0023 | 0.0002 | 0.9530 | n/a | n/a | 22.9541 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
137
|
+
| activations | relu | `(1,)` | JAX CPU dispatch | 0.0475 | 0.0519 | 0.0439 | 0.0742 | 0.0113 | 0.9530 | n/a | n/a | 22.9541 | no | n/a | n/a | yes | NumPy | reference |
|
|
138
|
+
| activations | sigmoid | `(1,)` | TensorStudio | 0.0022 | 0.0022 | 0.0021 | 0.0023 | 0.0001 | 2.7308 | n/a | n/a | 35.5319 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
139
|
+
| activations | sigmoid | `(1,)` | NumPy | 0.0059 | 0.0061 | 0.0046 | 0.0080 | 0.0011 | 2.7308 | n/a | n/a | 35.5319 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
140
|
+
| activations | sigmoid | `(1,)` | JAX CPU dispatch | 0.0768 | 0.0763 | 0.0719 | 0.0791 | 0.0026 | 2.7308 | n/a | n/a | 35.5319 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
141
|
+
| activations | tanh | `(1,)` | TensorStudio | 0.0018 | 0.0019 | 0.0018 | 0.0020 | 0.0001 | 0.6640 | n/a | n/a | 16.4363 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
142
|
+
| activations | tanh | `(1,)` | NumPy | 0.0012 | 0.0013 | 0.0012 | 0.0016 | 0.0002 | 0.6640 | n/a | n/a | 16.4363 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
143
|
+
| activations | tanh | `(1,)` | JAX CPU dispatch | 0.0302 | 0.0301 | 0.0293 | 0.0309 | 0.0006 | 0.6640 | n/a | n/a | 16.4363 | no | n/a | n/a | yes | NumPy | reference |
|
|
144
|
+
| activations | exp | `(1,)` | TensorStudio | 0.0018 | 0.0019 | 0.0018 | 0.0021 | 0.0001 | 0.6797 | n/a | n/a | 18.1556 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
145
|
+
| activations | exp | `(1,)` | NumPy | 0.0012 | 0.0013 | 0.0012 | 0.0017 | 0.0002 | 0.6797 | n/a | n/a | 18.1556 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
146
|
+
| activations | exp | `(1,)` | JAX CPU dispatch | 0.0333 | 0.0360 | 0.0293 | 0.0517 | 0.0080 | 0.6797 | n/a | n/a | 18.1556 | no | n/a | n/a | yes | NumPy | reference |
|
|
147
|
+
| activations | log | `(1,)` | TensorStudio | 0.0029 | 0.0031 | 0.0026 | 0.0037 | 0.0004 | 0.8290 | n/a | n/a | 13.4052 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
148
|
+
| activations | log | `(1,)` | NumPy | 0.0024 | 0.0022 | 0.0015 | 0.0026 | 0.0005 | 0.8290 | n/a | n/a | 13.4052 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
149
|
+
| activations | log | `(1,)` | JAX CPU dispatch | 0.0393 | 0.0414 | 0.0327 | 0.0515 | 0.0068 | 0.8290 | n/a | n/a | 13.4052 | no | n/a | n/a | yes | NumPy | reference |
|
|
150
|
+
| activations | relu | `(8,)` | TensorStudio | 0.0024 | 0.0026 | 0.0021 | 0.0037 | 0.0005 | 0.9011 | n/a | n/a | 18.7401 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
151
|
+
| activations | relu | `(8,)` | NumPy | 0.0022 | 0.0024 | 0.0019 | 0.0031 | 0.0004 | 0.9011 | n/a | n/a | 18.7401 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
152
|
+
| activations | relu | `(8,)` | JAX CPU dispatch | 0.0449 | 0.0485 | 0.0447 | 0.0592 | 0.0056 | 0.9011 | n/a | n/a | 18.7401 | no | n/a | n/a | yes | NumPy | reference |
|
|
153
|
+
| activations | sigmoid | `(8,)` | TensorStudio | 0.0020 | 0.0020 | 0.0018 | 0.0021 | 0.0001 | 2.2891 | n/a | n/a | 37.0896 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
154
|
+
| activations | sigmoid | `(8,)` | NumPy | 0.0045 | 0.0046 | 0.0045 | 0.0047 | 0.0001 | 2.2891 | n/a | n/a | 37.0896 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
155
|
+
| activations | sigmoid | `(8,)` | JAX CPU dispatch | 0.0731 | 0.0731 | 0.0723 | 0.0741 | 0.0006 | 2.2891 | n/a | n/a | 37.0896 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
156
|
+
| activations | tanh | `(8,)` | TensorStudio | 0.0020 | 0.0020 | 0.0019 | 0.0023 | 0.0002 | 0.6112 | n/a | n/a | 14.6714 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
157
|
+
| activations | tanh | `(8,)` | NumPy | 0.0012 | 0.0013 | 0.0012 | 0.0016 | 0.0002 | 0.6112 | n/a | n/a | 14.6714 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
158
|
+
| activations | tanh | `(8,)` | JAX CPU dispatch | 0.0296 | 0.0298 | 0.0295 | 0.0305 | 0.0004 | 0.6112 | n/a | n/a | 14.6714 | no | n/a | n/a | yes | NumPy | reference |
|
|
159
|
+
| activations | exp | `(8,)` | TensorStudio | 0.0020 | 0.0020 | 0.0019 | 0.0021 | 0.0001 | 0.6296 | n/a | n/a | 15.0804 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
160
|
+
| activations | exp | `(8,)` | NumPy | 0.0012 | 0.0013 | 0.0012 | 0.0013 | 0.0001 | 0.6296 | n/a | n/a | 15.0804 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
161
|
+
| activations | exp | `(8,)` | JAX CPU dispatch | 0.0296 | 0.0296 | 0.0295 | 0.0298 | 0.0001 | 0.6296 | n/a | n/a | 15.0804 | no | n/a | n/a | yes | NumPy | reference |
|
|
162
|
+
| activations | log | `(8,)` | TensorStudio | 0.0019 | 0.0020 | 0.0019 | 0.0021 | 0.0001 | 0.7185 | n/a | n/a | 16.1285 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
163
|
+
| activations | log | `(8,)` | NumPy | 0.0014 | 0.0014 | 0.0013 | 0.0017 | 0.0002 | 0.7185 | n/a | n/a | 16.1285 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
164
|
+
| activations | log | `(8,)` | JAX CPU dispatch | 0.0304 | 0.0305 | 0.0298 | 0.0313 | 0.0005 | 0.7185 | n/a | n/a | 16.1285 | no | n/a | n/a | yes | NumPy | reference |
|
|
165
|
+
| activations | relu | `(32,)` | TensorStudio | 0.0018 | 0.0019 | 0.0018 | 0.0022 | 0.0002 | 0.9837 | n/a | n/a | 25.0611 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
166
|
+
| activations | relu | `(32,)` | NumPy | 0.0017 | 0.0018 | 0.0017 | 0.0020 | 0.0001 | 0.9837 | n/a | n/a | 25.0611 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
167
|
+
| activations | relu | `(32,)` | JAX CPU dispatch | 0.0444 | 0.0443 | 0.0437 | 0.0447 | 0.0004 | 0.9837 | n/a | n/a | 25.0611 | no | n/a | n/a | yes | NumPy | reference |
|
|
168
|
+
| activations | sigmoid | `(32,)` | TensorStudio | 0.0021 | 0.0021 | 0.0020 | 0.0022 | 0.0001 | 2.1943 | n/a | n/a | 35.7060 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
169
|
+
| activations | sigmoid | `(32,)` | NumPy | 0.0045 | 0.0046 | 0.0044 | 0.0052 | 0.0003 | 2.1943 | n/a | n/a | 35.7060 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
170
|
+
| activations | sigmoid | `(32,)` | JAX CPU dispatch | 0.0732 | 0.0740 | 0.0723 | 0.0769 | 0.0016 | 2.1943 | n/a | n/a | 35.7060 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
171
|
+
| activations | tanh | `(32,)` | TensorStudio | 0.0021 | 0.0022 | 0.0021 | 0.0024 | 0.0001 | 0.6255 | n/a | n/a | 14.3488 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
172
|
+
| activations | tanh | `(32,)` | NumPy | 0.0013 | 0.0014 | 0.0013 | 0.0017 | 0.0002 | 0.6255 | n/a | n/a | 14.3488 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
173
|
+
| activations | tanh | `(32,)` | JAX CPU dispatch | 0.0303 | 0.0308 | 0.0301 | 0.0322 | 0.0008 | 0.6255 | n/a | n/a | 14.3488 | no | n/a | n/a | yes | NumPy | reference |
|
|
174
|
+
| activations | exp | `(32,)` | TensorStudio | 0.0022 | 0.0022 | 0.0021 | 0.0023 | 0.0001 | 0.6117 | n/a | n/a | 17.3060 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
175
|
+
| activations | exp | `(32,)` | NumPy | 0.0013 | 0.0014 | 0.0012 | 0.0017 | 0.0002 | 0.6117 | n/a | n/a | 17.3060 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
176
|
+
| activations | exp | `(32,)` | JAX CPU dispatch | 0.0374 | 0.0402 | 0.0304 | 0.0571 | 0.0094 | 0.6117 | n/a | n/a | 17.3060 | no | n/a | n/a | yes | NumPy | reference |
|
|
177
|
+
| activations | log | `(32,)` | TensorStudio | 0.0023 | 0.0022 | 0.0021 | 0.0024 | 0.0001 | 0.7273 | n/a | n/a | 20.6170 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
178
|
+
| activations | log | `(32,)` | NumPy | 0.0017 | 0.0020 | 0.0015 | 0.0034 | 0.0007 | 0.7273 | n/a | n/a | 20.6170 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
179
|
+
| activations | log | `(32,)` | JAX CPU dispatch | 0.0472 | 0.0559 | 0.0330 | 0.0850 | 0.0208 | 0.7273 | n/a | n/a | 20.6170 | no | n/a | n/a | yes | NumPy | reference |
|
|
180
|
+
| activations | relu | `(128,)` | TensorStudio | 0.0025 | 0.0026 | 0.0024 | 0.0032 | 0.0003 | 2.0332 | n/a | n/a | 22.2553 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
181
|
+
| activations | relu | `(128,)` | NumPy | 0.0050 | 0.0046 | 0.0025 | 0.0054 | 0.0011 | 2.0332 | n/a | n/a | 22.2553 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
182
|
+
| activations | relu | `(128,)` | JAX CPU dispatch | 0.0550 | 0.0621 | 0.0458 | 0.0990 | 0.0195 | 2.0332 | n/a | n/a | 22.2553 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
183
|
+
| activations | sigmoid | `(128,)` | TensorStudio | 0.0029 | 0.0030 | 0.0028 | 0.0033 | 0.0002 | 1.6310 | n/a | n/a | 26.3039 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
184
|
+
| activations | sigmoid | `(128,)` | NumPy | 0.0047 | 0.0049 | 0.0044 | 0.0055 | 0.0005 | 1.6310 | n/a | n/a | 26.3039 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
185
|
+
| activations | sigmoid | `(128,)` | JAX CPU dispatch | 0.0762 | 0.0794 | 0.0741 | 0.0907 | 0.0062 | 1.6310 | n/a | n/a | 26.3039 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
186
|
+
| activations | tanh | `(128,)` | TensorStudio | 0.0031 | 0.0032 | 0.0030 | 0.0034 | 0.0002 | 0.4949 | n/a | n/a | 9.7386 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
187
|
+
| activations | tanh | `(128,)` | NumPy | 0.0015 | 0.0016 | 0.0015 | 0.0020 | 0.0002 | 0.4949 | n/a | n/a | 9.7386 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
188
|
+
| activations | tanh | `(128,)` | JAX CPU dispatch | 0.0303 | 0.0304 | 0.0293 | 0.0323 | 0.0011 | 0.4949 | n/a | n/a | 9.7386 | no | n/a | n/a | yes | NumPy | reference |
|
|
189
|
+
| activations | exp | `(128,)` | TensorStudio | 0.0027 | 0.0028 | 0.0026 | 0.0031 | 0.0002 | 0.4925 | n/a | n/a | 11.4323 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
190
|
+
| activations | exp | `(128,)` | NumPy | 0.0013 | 0.0014 | 0.0013 | 0.0016 | 0.0001 | 0.4925 | n/a | n/a | 11.4323 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
191
|
+
| activations | exp | `(128,)` | JAX CPU dispatch | 0.0304 | 0.0303 | 0.0301 | 0.0306 | 0.0002 | 0.4925 | n/a | n/a | 11.4323 | no | n/a | n/a | yes | NumPy | reference |
|
|
192
|
+
| activations | log | `(128,)` | TensorStudio | 0.0029 | 0.0029 | 0.0028 | 0.0030 | 0.0001 | 0.4893 | n/a | n/a | 10.6297 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
193
|
+
| activations | log | `(128,)` | NumPy | 0.0014 | 0.0014 | 0.0014 | 0.0015 | 0.0001 | 0.4893 | n/a | n/a | 10.6297 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
194
|
+
| activations | log | `(128,)` | JAX CPU dispatch | 0.0306 | 0.0327 | 0.0301 | 0.0407 | 0.0041 | 0.4893 | n/a | n/a | 10.6297 | no | n/a | n/a | yes | NumPy | reference |
|
|
195
|
+
| activations | relu | `(1024,)` | TensorStudio | 0.0024 | 0.0025 | 0.0024 | 0.0025 | 0.0000 | 0.9334 | n/a | n/a | 25.9395 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
196
|
+
| activations | relu | `(1024,)` | NumPy | 0.0023 | 0.0023 | 0.0023 | 0.0023 | 0.0000 | 0.9334 | n/a | n/a | 25.9395 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
197
|
+
| activations | relu | `(1024,)` | JAX CPU dispatch | 0.0634 | 0.0638 | 0.0558 | 0.0713 | 0.0063 | 0.9334 | n/a | n/a | 25.9395 | no | n/a | n/a | yes | NumPy | reference |
|
|
198
|
+
| activations | sigmoid | `(1024,)` | TensorStudio | 0.0094 | 0.0094 | 0.0090 | 0.0102 | 0.0004 | 0.7371 | n/a | n/a | 11.2737 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
199
|
+
| activations | sigmoid | `(1024,)` | NumPy | 0.0069 | 0.0072 | 0.0067 | 0.0087 | 0.0008 | 0.7371 | n/a | n/a | 11.2737 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
200
|
+
| activations | sigmoid | `(1024,)` | JAX CPU dispatch | 0.1054 | 0.1156 | 0.0996 | 0.1563 | 0.0208 | 0.7371 | n/a | n/a | 11.2737 | no | n/a | n/a | yes | NumPy | reference |
|
|
201
|
+
| activations | tanh | `(1024,)` | TensorStudio | 0.0141 | 0.0140 | 0.0132 | 0.0144 | 0.0005 | 0.2871 | n/a | n/a | 2.1155 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
202
|
+
| activations | tanh | `(1024,)` | NumPy | 0.0041 | 0.0042 | 0.0036 | 0.0055 | 0.0007 | 0.2871 | n/a | n/a | 2.1155 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
203
|
+
| activations | tanh | `(1024,)` | JAX CPU dispatch | 0.0298 | 0.0298 | 0.0296 | 0.0301 | 0.0002 | 0.2871 | n/a | n/a | 2.1155 | no | n/a | n/a | yes | NumPy | reference |
|
|
204
|
+
| activations | exp | `(1024,)` | TensorStudio | 0.0085 | 0.0085 | 0.0081 | 0.0091 | 0.0004 | 0.2984 | n/a | n/a | 3.8005 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
205
|
+
| activations | exp | `(1024,)` | NumPy | 0.0025 | 0.0026 | 0.0025 | 0.0030 | 0.0002 | 0.2984 | n/a | n/a | 3.8005 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
206
|
+
| activations | exp | `(1024,)` | JAX CPU dispatch | 0.0324 | 0.0341 | 0.0304 | 0.0413 | 0.0038 | 0.2984 | n/a | n/a | 3.8005 | no | n/a | n/a | yes | NumPy | reference |
|
|
207
|
+
| activations | log | `(1024,)` | TensorStudio | 0.0105 | 0.0111 | 0.0098 | 0.0132 | 0.0014 | 0.2972 | n/a | n/a | 3.2837 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
208
|
+
| activations | log | `(1024,)` | NumPy | 0.0031 | 0.0034 | 0.0031 | 0.0042 | 0.0004 | 0.2972 | n/a | n/a | 3.2837 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
209
|
+
| activations | log | `(1024,)` | JAX CPU dispatch | 0.0344 | 0.0351 | 0.0330 | 0.0401 | 0.0026 | 0.2972 | n/a | n/a | 3.2837 | no | n/a | n/a | yes | NumPy | reference |
|
|
210
|
+
| activations | relu | `(4096,)` | TensorStudio | 0.0051 | 0.0058 | 0.0049 | 0.0080 | 0.0012 | 0.6973 | n/a | n/a | 12.5006 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
211
|
+
| activations | relu | `(4096,)` | NumPy | 0.0036 | 0.0038 | 0.0035 | 0.0045 | 0.0004 | 0.6973 | n/a | n/a | 12.5006 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
212
|
+
| activations | relu | `(4096,)` | JAX CPU dispatch | 0.0639 | 0.0694 | 0.0601 | 0.0925 | 0.0121 | 0.6973 | n/a | n/a | 12.5006 | no | n/a | n/a | yes | NumPy | reference |
|
|
213
|
+
| activations | sigmoid | `(4096,)` | TensorStudio | 0.0336 | 0.0335 | 0.0322 | 0.0349 | 0.0009 | 0.4139 | n/a | n/a | 3.1440 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
214
|
+
| activations | sigmoid | `(4096,)` | NumPy | 0.0139 | 0.0139 | 0.0121 | 0.0152 | 0.0011 | 0.4139 | n/a | n/a | 3.1440 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
215
|
+
| activations | sigmoid | `(4096,)` | JAX CPU dispatch | 0.1055 | 0.1040 | 0.0950 | 0.1129 | 0.0062 | 0.4139 | n/a | n/a | 3.1440 | no | n/a | n/a | yes | NumPy | reference |
|
|
216
|
+
| activations | tanh | `(4096,)` | TensorStudio | 0.0625 | 0.0636 | 0.0592 | 0.0713 | 0.0044 | 0.1645 | n/a | n/a | 0.5368 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
217
|
+
| activations | tanh | `(4096,)` | NumPy | 0.0103 | 0.0105 | 0.0101 | 0.0112 | 0.0004 | 0.1645 | n/a | n/a | 0.5368 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
218
|
+
| activations | tanh | `(4096,)` | JAX CPU dispatch | 0.0335 | 0.0345 | 0.0327 | 0.0396 | 0.0025 | 0.1645 | n/a | n/a | 0.5368 | no | n/a | n/a | no | NumPy | reference |
|
|
219
|
+
| activations | exp | `(4096,)` | TensorStudio | 0.0288 | 0.0292 | 0.0278 | 0.0308 | 0.0010 | 0.2008 | n/a | n/a | 1.1411 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
220
|
+
| activations | exp | `(4096,)` | NumPy | 0.0058 | 0.0060 | 0.0058 | 0.0063 | 0.0002 | 0.2008 | n/a | n/a | 1.1411 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
221
|
+
| activations | exp | `(4096,)` | JAX CPU dispatch | 0.0329 | 0.0331 | 0.0326 | 0.0338 | 0.0004 | 0.2008 | n/a | n/a | 1.1411 | no | n/a | n/a | yes | NumPy | reference |
|
|
222
|
+
| activations | log | `(4096,)` | TensorStudio | 0.0316 | 0.0314 | 0.0305 | 0.0327 | 0.0008 | 0.2465 | n/a | n/a | 1.1868 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
223
|
+
| activations | log | `(4096,)` | NumPy | 0.0078 | 0.0083 | 0.0073 | 0.0099 | 0.0011 | 0.2465 | n/a | n/a | 1.1868 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
224
|
+
| activations | log | `(4096,)` | JAX CPU dispatch | 0.0375 | 0.0379 | 0.0352 | 0.0432 | 0.0028 | 0.2465 | n/a | n/a | 1.1868 | no | n/a | n/a | yes | NumPy | reference |
|
|
225
|
+
| activations | relu | `(16384,)` | TensorStudio | 0.0139 | 0.0138 | 0.0133 | 0.0145 | 0.0005 | 0.7008 | n/a | n/a | 7.4512 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
226
|
+
| activations | relu | `(16384,)` | NumPy | 0.0097 | 0.0103 | 0.0089 | 0.0143 | 0.0020 | 0.7008 | n/a | n/a | 7.4512 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
227
|
+
| activations | relu | `(16384,)` | JAX CPU dispatch | 0.1034 | 0.0936 | 0.0659 | 0.1124 | 0.0193 | 0.7008 | n/a | n/a | 7.4512 | no | n/a | n/a | yes | NumPy | reference |
|
|
228
|
+
| activations | sigmoid | `(16384,)` | TensorStudio | 0.1247 | 0.1243 | 0.1203 | 0.1300 | 0.0035 | 0.2735 | n/a | n/a | 0.8775 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
229
|
+
| activations | sigmoid | `(16384,)` | NumPy | 0.0341 | 0.0340 | 0.0321 | 0.0360 | 0.0012 | 0.2735 | n/a | n/a | 0.8775 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
230
|
+
| activations | sigmoid | `(16384,)` | JAX CPU dispatch | 0.1094 | 0.1157 | 0.1046 | 0.1367 | 0.0116 | 0.2735 | n/a | n/a | 0.8775 | no | n/a | n/a | no | NumPy | reference |
|
|
231
|
+
| activations | tanh | `(16384,)` | TensorStudio | 0.2360 | 0.2388 | 0.2339 | 0.2530 | 0.0071 | 0.1587 | n/a | n/a | 0.1668 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
232
|
+
| activations | tanh | `(16384,)` | NumPy | 0.0374 | 0.0388 | 0.0373 | 0.0430 | 0.0022 | 0.1587 | n/a | n/a | 0.1668 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
233
|
+
| activations | tanh | `(16384,)` | JAX CPU dispatch | 0.0394 | 0.0397 | 0.0370 | 0.0430 | 0.0022 | 0.1587 | n/a | n/a | 0.1668 | no | n/a | n/a | no | NumPy | reference |
|
|
234
|
+
| activations | exp | `(16384,)` | TensorStudio | 0.1050 | 0.1053 | 0.1022 | 0.1098 | 0.0026 | 0.1792 | n/a | n/a | 0.3945 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
235
|
+
| activations | exp | `(16384,)` | NumPy | 0.0188 | 0.0189 | 0.0187 | 0.0193 | 0.0002 | 0.1792 | n/a | n/a | 0.3945 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
236
|
+
| activations | exp | `(16384,)` | JAX CPU dispatch | 0.0414 | 0.0416 | 0.0395 | 0.0435 | 0.0017 | 0.1792 | n/a | n/a | 0.3945 | no | n/a | n/a | no | NumPy | reference |
|
|
237
|
+
| activations | log | `(16384,)` | TensorStudio | 0.1163 | 0.1181 | 0.1136 | 0.1278 | 0.0052 | 0.2244 | n/a | n/a | 0.3724 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
238
|
+
| activations | log | `(16384,)` | NumPy | 0.0261 | 0.0262 | 0.0247 | 0.0283 | 0.0013 | 0.2244 | n/a | n/a | 0.3724 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
239
|
+
| activations | log | `(16384,)` | JAX CPU dispatch | 0.0433 | 0.0441 | 0.0428 | 0.0464 | 0.0013 | 0.2244 | n/a | n/a | 0.3724 | no | n/a | n/a | no | NumPy | reference |
|
|
240
|
+
| reductions | sum | `(1,)` | TensorStudio | 0.0022 | 0.0025 | 0.0022 | 0.0033 | 0.0004 | 1.0775 | n/a | n/a | 5.5767 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
241
|
+
| reductions | sum | `(1,)` | NumPy | 0.0024 | 0.0026 | 0.0022 | 0.0031 | 0.0003 | 1.0775 | n/a | n/a | 5.5767 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
242
|
+
| reductions | sum | `(1,)` | JAX CPU dispatch | 0.0125 | 0.0144 | 0.0119 | 0.0201 | 0.0031 | 1.0775 | n/a | n/a | 5.5767 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
243
|
+
| reductions | mean | `(1,)` | TensorStudio | 0.0023 | 0.0025 | 0.0021 | 0.0035 | 0.0005 | 3.6183 | n/a | n/a | 4.7284 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
244
|
+
| reductions | mean | `(1,)` | NumPy | 0.0085 | 0.0085 | 0.0084 | 0.0087 | 0.0002 | 3.6183 | n/a | n/a | 4.7284 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
245
|
+
| reductions | mean | `(1,)` | JAX CPU dispatch | 0.0111 | 0.0111 | 0.0108 | 0.0113 | 0.0002 | 3.6183 | n/a | n/a | 4.7284 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
246
|
+
| reductions | sum | `(8,)` | TensorStudio | 0.0024 | 0.0023 | 0.0022 | 0.0024 | 0.0001 | 0.9673 | n/a | n/a | 5.2066 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
247
|
+
| reductions | sum | `(8,)` | NumPy | 0.0023 | 0.0025 | 0.0023 | 0.0030 | 0.0003 | 0.9673 | n/a | n/a | 5.2066 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
248
|
+
| reductions | sum | `(8,)` | JAX CPU dispatch | 0.0123 | 0.0123 | 0.0121 | 0.0124 | 0.0002 | 0.9673 | n/a | n/a | 5.2066 | no | n/a | n/a | yes | NumPy | reference |
|
|
249
|
+
| reductions | mean | `(8,)` | TensorStudio | 0.0023 | 0.0023 | 0.0022 | 0.0024 | 0.0001 | 3.4917 | n/a | n/a | 5.2246 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
250
|
+
| reductions | mean | `(8,)` | NumPy | 0.0080 | 0.0080 | 0.0078 | 0.0081 | 0.0001 | 3.4917 | n/a | n/a | 5.2246 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
251
|
+
| reductions | mean | `(8,)` | JAX CPU dispatch | 0.0119 | 0.0120 | 0.0118 | 0.0125 | 0.0002 | 3.4917 | n/a | n/a | 5.2246 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
252
|
+
| reductions | sum | `(32,)` | TensorStudio | 0.0025 | 0.0025 | 0.0024 | 0.0030 | 0.0002 | 0.8970 | n/a | n/a | 5.5543 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
253
|
+
| reductions | sum | `(32,)` | NumPy | 0.0022 | 0.0023 | 0.0022 | 0.0025 | 0.0001 | 0.8970 | n/a | n/a | 5.5543 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
254
|
+
| reductions | sum | `(32,)` | JAX CPU dispatch | 0.0138 | 0.0140 | 0.0135 | 0.0147 | 0.0004 | 0.8970 | n/a | n/a | 5.5543 | no | n/a | n/a | yes | NumPy | reference |
|
|
255
|
+
| reductions | mean | `(32,)` | TensorStudio | 0.0024 | 0.0024 | 0.0023 | 0.0025 | 0.0001 | 3.5399 | n/a | n/a | 5.1625 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
256
|
+
| reductions | mean | `(32,)` | NumPy | 0.0085 | 0.0085 | 0.0081 | 0.0089 | 0.0003 | 3.5399 | n/a | n/a | 5.1625 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
257
|
+
| reductions | mean | `(32,)` | JAX CPU dispatch | 0.0124 | 0.0126 | 0.0119 | 0.0139 | 0.0007 | 3.5399 | n/a | n/a | 5.1625 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
258
|
+
| reductions | sum | `(128,)` | TensorStudio | 0.0031 | 0.0032 | 0.0030 | 0.0035 | 0.0002 | 0.7083 | n/a | n/a | 4.1105 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
259
|
+
| reductions | sum | `(128,)` | NumPy | 0.0022 | 0.0023 | 0.0022 | 0.0024 | 0.0001 | 0.7083 | n/a | n/a | 4.1105 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
260
|
+
| reductions | sum | `(128,)` | JAX CPU dispatch | 0.0128 | 0.0130 | 0.0128 | 0.0133 | 0.0002 | 0.7083 | n/a | n/a | 4.1105 | no | n/a | n/a | yes | NumPy | reference |
|
|
261
|
+
| reductions | mean | `(128,)` | TensorStudio | 0.0030 | 0.0030 | 0.0029 | 0.0031 | 0.0001 | 2.6626 | n/a | n/a | 4.3466 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
262
|
+
| reductions | mean | `(128,)` | NumPy | 0.0080 | 0.0080 | 0.0079 | 0.0081 | 0.0001 | 2.6626 | n/a | n/a | 4.3466 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
263
|
+
| reductions | mean | `(128,)` | JAX CPU dispatch | 0.0131 | 0.0128 | 0.0124 | 0.0133 | 0.0004 | 2.6626 | n/a | n/a | 4.3466 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
264
|
+
| reductions | sum | `(1024,)` | TensorStudio | 0.0087 | 0.0088 | 0.0084 | 0.0092 | 0.0004 | 0.3240 | n/a | n/a | 2.2722 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
265
|
+
| reductions | sum | `(1024,)` | NumPy | 0.0028 | 0.0029 | 0.0027 | 0.0032 | 0.0002 | 0.3240 | n/a | n/a | 2.2722 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
266
|
+
| reductions | sum | `(1024,)` | JAX CPU dispatch | 0.0197 | 0.0186 | 0.0138 | 0.0238 | 0.0035 | 0.3240 | n/a | n/a | 2.2722 | no | n/a | n/a | yes | NumPy | reference |
|
|
267
|
+
| reductions | mean | `(1024,)` | TensorStudio | 0.0088 | 0.0090 | 0.0084 | 0.0101 | 0.0006 | 0.9709 | n/a | n/a | 1.7352 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
268
|
+
| reductions | mean | `(1024,)` | NumPy | 0.0085 | 0.0089 | 0.0083 | 0.0097 | 0.0006 | 0.9709 | n/a | n/a | 1.7352 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
269
|
+
| reductions | mean | `(1024,)` | JAX CPU dispatch | 0.0153 | 0.0152 | 0.0140 | 0.0159 | 0.0006 | 0.9709 | n/a | n/a | 1.7352 | no | n/a | n/a | yes | NumPy | reference |
|
|
270
|
+
| reductions | sum | `(4096,)` | TensorStudio | 0.0282 | 0.0281 | 0.0276 | 0.0285 | 0.0004 | 0.1244 | n/a | n/a | 0.5552 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
271
|
+
| reductions | sum | `(4096,)` | NumPy | 0.0035 | 0.0038 | 0.0035 | 0.0049 | 0.0005 | 0.1244 | n/a | n/a | 0.5552 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
272
|
+
| reductions | sum | `(4096,)` | JAX CPU dispatch | 0.0156 | 0.0157 | 0.0147 | 0.0177 | 0.0011 | 0.1244 | n/a | n/a | 0.5552 | no | n/a | n/a | no | NumPy | reference |
|
|
273
|
+
| reductions | mean | `(4096,)` | TensorStudio | 0.0277 | 0.0277 | 0.0274 | 0.0280 | 0.0002 | 0.3573 | n/a | n/a | 0.5893 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
274
|
+
| reductions | mean | `(4096,)` | NumPy | 0.0099 | 0.0098 | 0.0091 | 0.0106 | 0.0005 | 0.3573 | n/a | n/a | 0.5893 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
275
|
+
| reductions | mean | `(4096,)` | JAX CPU dispatch | 0.0163 | 0.0164 | 0.0154 | 0.0184 | 0.0011 | 0.3573 | n/a | n/a | 0.5893 | no | n/a | n/a | no | NumPy | reference |
|
|
276
|
+
| reductions | sum | `(16384,)` | TensorStudio | 0.1039 | 0.1038 | 0.1022 | 0.1045 | 0.0008 | 0.0657 | n/a | n/a | 0.2813 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
277
|
+
| reductions | sum | `(16384,)` | NumPy | 0.0068 | 0.0068 | 0.0068 | 0.0068 | 0.0000 | 0.0657 | n/a | n/a | 0.2813 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
278
|
+
| reductions | sum | `(16384,)` | JAX CPU dispatch | 0.0292 | 0.0277 | 0.0214 | 0.0336 | 0.0042 | 0.0657 | n/a | n/a | 0.2813 | no | n/a | n/a | no | NumPy | reference |
|
|
279
|
+
| reductions | mean | `(16384,)` | TensorStudio | 0.1038 | 0.1047 | 0.1026 | 0.1080 | 0.0021 | 0.1233 | n/a | n/a | 0.1937 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
280
|
+
| reductions | mean | `(16384,)` | NumPy | 0.0128 | 0.0128 | 0.0128 | 0.0128 | 0.0000 | 0.1233 | n/a | n/a | 0.1937 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
281
|
+
| reductions | mean | `(16384,)` | JAX CPU dispatch | 0.0201 | 0.0241 | 0.0194 | 0.0405 | 0.0082 | 0.1233 | n/a | n/a | 0.1937 | no | n/a | n/a | no | NumPy | reference |
|
|
282
|
+
| reductions | sum_axis1 | `(16, 16)` | TensorStudio | 0.0029 | 0.0029 | 0.0027 | 0.0033 | 0.0002 | 0.9395 | n/a | n/a | 4.5506 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
283
|
+
| reductions | sum_axis1 | `(16, 16)` | NumPy | 0.0027 | 0.0027 | 0.0027 | 0.0027 | 0.0000 | 0.9395 | n/a | n/a | 4.5506 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
284
|
+
| reductions | sum_axis1 | `(16, 16)` | JAX CPU dispatch | 0.0132 | 0.0131 | 0.0129 | 0.0133 | 0.0002 | 0.9395 | n/a | n/a | 4.5506 | no | n/a | n/a | yes | NumPy | reference |
|
|
285
|
+
| reductions | mean_axis0 | `(16, 16)` | TensorStudio | 0.0026 | 0.0026 | 0.0026 | 0.0026 | 0.0000 | 4.1560 | n/a | n/a | 4.3614 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
286
|
+
| reductions | mean_axis0 | `(16, 16)` | NumPy | 0.0108 | 0.0106 | 0.0099 | 0.0112 | 0.0005 | 4.1560 | n/a | n/a | 4.3614 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
287
|
+
| reductions | mean_axis0 | `(16, 16)` | JAX CPU dispatch | 0.0114 | 0.0116 | 0.0111 | 0.0123 | 0.0005 | 4.1560 | n/a | n/a | 4.3614 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
288
|
+
| reductions | sum_axis1 | `(64, 64)` | TensorStudio | 0.0060 | 0.0061 | 0.0054 | 0.0068 | 0.0006 | 0.7029 | n/a | n/a | 2.5567 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
289
|
+
| reductions | sum_axis1 | `(64, 64)` | NumPy | 0.0042 | 0.0042 | 0.0040 | 0.0045 | 0.0002 | 0.7029 | n/a | n/a | 2.5567 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
290
|
+
| reductions | sum_axis1 | `(64, 64)` | JAX CPU dispatch | 0.0152 | 0.0152 | 0.0147 | 0.0156 | 0.0003 | 0.7029 | n/a | n/a | 2.5567 | no | n/a | n/a | yes | NumPy | reference |
|
|
291
|
+
| reductions | mean_axis0 | `(64, 64)` | TensorStudio | 0.0037 | 0.0039 | 0.0036 | 0.0045 | 0.0003 | 3.1997 | n/a | n/a | 4.1369 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
292
|
+
| reductions | mean_axis0 | `(64, 64)` | NumPy | 0.0119 | 0.0121 | 0.0115 | 0.0130 | 0.0006 | 3.1997 | n/a | n/a | 4.1369 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
293
|
+
| reductions | mean_axis0 | `(64, 64)` | JAX CPU dispatch | 0.0154 | 0.0155 | 0.0148 | 0.0165 | 0.0006 | 3.1997 | n/a | n/a | 4.1369 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
294
|
+
| reductions | sum_axis1 | `(128, 128)` | TensorStudio | 0.0165 | 0.0170 | 0.0160 | 0.0183 | 0.0009 | 0.4603 | n/a | n/a | 1.5143 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
295
|
+
| reductions | sum_axis1 | `(128, 128)` | NumPy | 0.0076 | 0.0076 | 0.0075 | 0.0076 | 0.0000 | 0.4603 | n/a | n/a | 1.5143 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
296
|
+
| reductions | sum_axis1 | `(128, 128)` | JAX CPU dispatch | 0.0250 | 0.0248 | 0.0173 | 0.0325 | 0.0061 | 0.4603 | n/a | n/a | 1.5143 | no | n/a | n/a | yes | NumPy | reference |
|
|
297
|
+
| reductions | mean_axis0 | `(128, 128)` | TensorStudio | 0.0080 | 0.0088 | 0.0066 | 0.0124 | 0.0021 | 1.8698 | n/a | n/a | 1.8454 | yes | n/a | n/a | yes | TensorStudio | win vs NumPy |
|
|
298
|
+
| reductions | mean_axis0 | `(128, 128)` | NumPy | 0.0150 | 0.0150 | 0.0146 | 0.0158 | 0.0004 | 1.8698 | n/a | n/a | 1.8454 | yes | n/a | n/a | yes | TensorStudio | NumPy baseline |
|
|
299
|
+
| reductions | mean_axis0 | `(128, 128)` | JAX CPU dispatch | 0.0148 | 0.0159 | 0.0138 | 0.0210 | 0.0026 | 1.8698 | n/a | n/a | 1.8454 | yes | n/a | n/a | yes | TensorStudio | reference |
|
|
300
|
+
| reductions | sum_axis1 | `(256, 256)` | TensorStudio | 0.0717 | 0.0717 | 0.0653 | 0.0794 | 0.0054 | 0.3053 | n/a | n/a | 1.2335 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
301
|
+
| reductions | sum_axis1 | `(256, 256)` | NumPy | 0.0219 | 0.0221 | 0.0217 | 0.0230 | 0.0005 | 0.3053 | n/a | n/a | 1.2335 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
302
|
+
| reductions | sum_axis1 | `(256, 256)` | JAX CPU dispatch | 0.0884 | 0.0807 | 0.0631 | 0.0962 | 0.0145 | 0.3053 | n/a | n/a | 1.2335 | no | n/a | n/a | yes | NumPy | reference |
|
|
303
|
+
| reductions | mean_axis0 | `(256, 256)` | TensorStudio | 0.0212 | 0.0243 | 0.0209 | 0.0325 | 0.0045 | 1.3010 | n/a | n/a | 0.7679 | yes | n/a | n/a | no | JAX CPU dispatch | win vs NumPy |
|
|
304
|
+
| reductions | mean_axis0 | `(256, 256)` | NumPy | 0.0276 | 0.0308 | 0.0231 | 0.0392 | 0.0069 | 1.3010 | n/a | n/a | 0.7679 | yes | n/a | n/a | no | JAX CPU dispatch | NumPy baseline |
|
|
305
|
+
| reductions | mean_axis0 | `(256, 256)` | JAX CPU dispatch | 0.0163 | 0.0209 | 0.0160 | 0.0354 | 0.0075 | 1.3010 | n/a | n/a | 0.7679 | yes | n/a | n/a | no | JAX CPU dispatch | reference |
|
|
306
|
+
| matmul | matmul | `(16, 16)` | TensorStudio | 0.0033 | 0.0033 | 0.0033 | 0.0033 | 0.0000 | 0.5759 | n/a | n/a | 2.9663 | no | n/a | n/a | yes | NumPy | loss vs NumPy |
|
|
307
|
+
| matmul | matmul | `(16, 16)` | NumPy | 0.0019 | 0.0019 | 0.0019 | 0.0019 | 0.0000 | 0.5759 | n/a | n/a | 2.9663 | no | n/a | n/a | yes | NumPy | NumPy baseline |
|
|
308
|
+
| matmul | matmul | `(16, 16)` | JAX CPU dispatch | 0.0098 | 0.0138 | 0.0090 | 0.0258 | 0.0064 | 0.5759 | n/a | n/a | 2.9663 | no | n/a | n/a | yes | NumPy | reference |
|
|
309
|
+
| matmul | matmul | `(64, 64)` | TensorStudio | 0.0349 | 0.0349 | 0.0348 | 0.0350 | 0.0001 | 0.2961 | n/a | n/a | 0.7494 | no | n/a | n/a | no | NumPy | loss vs NumPy |
|
|
310
|
+
| matmul | matmul | `(64, 64)` | NumPy | 0.0103 | 0.0104 | 0.0103 | 0.0105 | 0.0001 | 0.2961 | n/a | n/a | 0.7494 | no | n/a | n/a | no | NumPy | NumPy baseline |
|
|
311
|
+
| matmul | matmul | `(64, 64)` | JAX CPU dispatch | 0.0262 | 0.0369 | 0.0239 | 0.0793 | 0.0213 | 0.2961 | n/a | n/a | 0.7494 | no | n/a | n/a | no | NumPy | reference |
|
|
312
|
+
| matmul | matmul | `(128, 128)` | TensorStudio | 0.2944 | 0.3141 | 0.2664 | 0.3855 | 0.0487 | 1.1553 | n/a | n/a | 0.4765 | yes | n/a | n/a | no | JAX CPU dispatch | win vs NumPy |
|
|
313
|
+
| matmul | matmul | `(128, 128)` | NumPy | 0.3401 | 0.3412 | 0.3056 | 0.3733 | 0.0216 | 1.1553 | n/a | n/a | 0.4765 | yes | n/a | n/a | no | JAX CPU dispatch | NumPy baseline |
|
|
314
|
+
| matmul | matmul | `(128, 128)` | JAX CPU dispatch | 0.1403 | 0.1651 | 0.1070 | 0.3057 | 0.0721 | 1.1553 | n/a | n/a | 0.4765 | yes | n/a | n/a | no | JAX CPU dispatch | reference |
|
|
315
|
+
| matmul | matmul | `(256, 256)` | TensorStudio | 2.2976 | 2.5542 | 2.2122 | 3.0882 | 0.3872 | 0.1929 | n/a | n/a | 0.1273 | no | n/a | n/a | no | JAX CPU dispatch | loss vs NumPy |
|
|
316
|
+
| matmul | matmul | `(256, 256)` | NumPy | 0.4432 | 0.4457 | 0.4288 | 0.4707 | 0.0148 | 0.1929 | n/a | n/a | 0.1273 | no | n/a | n/a | no | JAX CPU dispatch | NumPy baseline |
|
|
317
|
+
| matmul | matmul | `(256, 256)` | JAX CPU dispatch | 0.2925 | 0.2981 | 0.2396 | 0.3809 | 0.0521 | 0.1929 | n/a | n/a | 0.1273 | no | n/a | n/a | no | JAX CPU dispatch | reference |
|
|
318
|
+
| conv2d | conv2d_3x3_padding1 | `(1, 1, 8, 8)` | TensorStudio | 0.1520 | 0.1549 | 0.1486 | 0.1640 | 0.0061 | 8.7030 | n/a | n/a | 0.7106 | yes | n/a | n/a | no | JAX CPU dispatch | win vs NumPy |
|
|
319
|
+
| conv2d | conv2d_3x3_padding1 | `(1, 1, 8, 8)` | NumPy | 1.3230 | 1.3311 | 1.2782 | 1.4238 | 0.0498 | 8.7030 | n/a | n/a | 0.7106 | yes | n/a | n/a | no | JAX CPU dispatch | NumPy baseline |
|
|
320
|
+
| conv2d | conv2d_3x3_padding1 | `(1, 1, 8, 8)` | JAX CPU dispatch | 0.1080 | 0.1078 | 0.0967 | 0.1200 | 0.0090 | 8.7030 | n/a | n/a | 0.7106 | yes | n/a | n/a | no | JAX CPU dispatch | reference |
|
|
321
|
+
| conv2d | conv2d_3x3_padding1 | `(4, 3, 16, 16)` | TensorStudio | 7.4741 | 7.4737 | 7.3557 | 7.6517 | 0.1014 | 8.7217 | n/a | n/a | 0.0425 | yes | n/a | n/a | no | JAX CPU dispatch | win vs NumPy |
|
|
322
|
+
| conv2d | conv2d_3x3_padding1 | `(4, 3, 16, 16)` | NumPy | 65.1864 | 63.8329 | 61.2489 | 65.7126 | 2.0227 | 8.7217 | n/a | n/a | 0.0425 | yes | n/a | n/a | no | JAX CPU dispatch | NumPy baseline |
|
|
323
|
+
| conv2d | conv2d_3x3_padding1 | `(4, 3, 16, 16)` | JAX CPU dispatch | 0.3179 | 0.3394 | 0.3108 | 0.4305 | 0.0459 | 8.7217 | n/a | n/a | 0.0425 | yes | n/a | n/a | no | JAX CPU dispatch | reference |
|
|
324
|
+
| pooling | max_pool2d_2x2 | `(1, 1, 16, 16)` | TensorStudio | 0.0141 | 0.0148 | 0.0141 | 0.0160 | 0.0009 | 11.7657 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | win vs NumPy |
|
|
325
|
+
| pooling | max_pool2d_2x2 | `(1, 1, 16, 16)` | NumPy | 0.1658 | 0.1659 | 0.1642 | 0.1674 | 0.0011 | 11.7657 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | NumPy baseline |
|
|
326
|
+
| pooling | avg_pool2d_2x2 | `(1, 1, 16, 16)` | TensorStudio | 0.0141 | 0.0166 | 0.0137 | 0.0212 | 0.0033 | 40.3752 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | win vs NumPy |
|
|
327
|
+
| pooling | avg_pool2d_2x2 | `(1, 1, 16, 16)` | NumPy | 0.5710 | 0.5741 | 0.5564 | 0.6005 | 0.0152 | 40.3752 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | NumPy baseline |
|
|
328
|
+
| pooling | max_pool2d_2x2 | `(4, 3, 32, 32)` | TensorStudio | 0.5639 | 0.5609 | 0.5538 | 0.5663 | 0.0051 | 13.9211 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | win vs NumPy |
|
|
329
|
+
| pooling | max_pool2d_2x2 | `(4, 3, 32, 32)` | NumPy | 7.8500 | 7.8556 | 7.7725 | 7.9230 | 0.0517 | 13.9211 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | NumPy baseline |
|
|
330
|
+
| pooling | avg_pool2d_2x2 | `(4, 3, 32, 32)` | TensorStudio | 0.5462 | 0.5453 | 0.5414 | 0.5477 | 0.0024 | 49.7668 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | win vs NumPy |
|
|
331
|
+
| pooling | avg_pool2d_2x2 | `(4, 3, 32, 32)` | NumPy | 27.1808 | 27.3334 | 26.8306 | 28.3429 | 0.5442 | 49.7668 | n/a | n/a | n/a | yes | n/a | n/a | n/a | TensorStudio | NumPy baseline |
|
|
332
|
+
| autograd | scalar_backward | `(1,)` | TensorStudio | 0.0150 | 0.0152 | 0.0149 | 0.0155 | 0.0003 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | TensorStudio | no NumPy reference |
|
|
333
|
+
| autograd | elementwise_backward | `(1,)` | TensorStudio | 0.0321 | 0.0324 | 0.0318 | 0.0332 | 0.0005 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | TensorStudio | no NumPy reference |
|
|
334
|
+
| autograd | scalar_backward | `(128,)` | TensorStudio | 0.1412 | 0.1417 | 0.1408 | 0.1441 | 0.0012 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | TensorStudio | no NumPy reference |
|
|
335
|
+
| autograd | elementwise_backward | `(128,)` | TensorStudio | 0.3310 | 0.3357 | 0.3259 | 0.3471 | 0.0083 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | TensorStudio | no NumPy reference |
|
|
336
|
+
| autograd | scalar_backward | `(1024,)` | TensorStudio | 1.0338 | 1.0598 | 1.0206 | 1.1743 | 0.0576 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | TensorStudio | no NumPy reference |
|
|
337
|
+
| autograd | elementwise_backward | `(1024,)` | TensorStudio | 2.4195 | 2.4112 | 2.3850 | 2.4388 | 0.0200 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | TensorStudio | no NumPy reference |
|
|
338
|
+
| training_loop | tiny_linear_regression_10_steps | `(32,)` | TensorStudio | 1.5992 | 1.6195 | 1.5795 | 1.7011 | 0.0439 | 0.1022 | n/a | n/a | n/a | no | n/a | n/a | n/a | NumPy | loss vs NumPy |
|
|
339
|
+
| training_loop | tiny_linear_regression_10_steps | `(32,)` | NumPy | 0.1635 | 0.1653 | 0.1526 | 0.1831 | 0.0101 | 0.1022 | n/a | n/a | n/a | no | n/a | n/a | n/a | NumPy | NumPy baseline |
|
|
340
|
+
|
|
341
|
+
Speedup columns are `competitor median / TensorStudio median`; values above 1.0 mean
|
|
342
|
+
TensorStudio was faster for that specific case.
|
|
343
|
+
Win columns say whether that same speedup is above 1.0 for the competitor.
|
|
@@ -40,7 +40,7 @@ Calling `backward()`:
|
|
|
40
40
|
|
|
41
41
|
## Supported Gradient Operations
|
|
42
42
|
|
|
43
|
-
`1.
|
|
43
|
+
`1.5.0` supports gradients for:
|
|
44
44
|
|
|
45
45
|
- `add`
|
|
46
46
|
- `sub`
|
|
@@ -71,6 +71,10 @@ Calling `backward()`:
|
|
|
71
71
|
- `reshape`
|
|
72
72
|
- `flatten`
|
|
73
73
|
- `transpose`
|
|
74
|
+
- `permute`
|
|
75
|
+
- `squeeze`
|
|
76
|
+
- `unsqueeze`
|
|
77
|
+
- basic integer and slice indexing views
|
|
74
78
|
|
|
75
79
|
## Broadcasting Gradients
|
|
76
80
|
|
|
@@ -113,5 +117,7 @@ Optimizers also expose `zero_grad()`.
|
|
|
113
117
|
- No in-place operation tracking beyond optimizer assignment helpers.
|
|
114
118
|
- No higher-order gradients.
|
|
115
119
|
- No gradient checkpointing.
|
|
116
|
-
-
|
|
120
|
+
- Basic integer and slice indexing gradients scatter back into the source
|
|
121
|
+
tensor. Advanced list, tensor, and boolean-mask indexing gradients are not
|
|
122
|
+
implemented.
|
|
117
123
|
- CPU tensors only.
|
|
@@ -69,6 +69,7 @@ The v1 release supports gradients for:
|
|
|
69
69
|
- `relu`, `sigmoid`, `tanh`
|
|
70
70
|
- `exp`, `log`, `sqrt`, `abs`
|
|
71
71
|
- `reshape`, `flatten`, `transpose`
|
|
72
|
+
- basic integer and slice indexing views
|
|
72
73
|
- broadcasted binary operations
|
|
73
74
|
|
|
74
75
|
`max` and `min` split the incoming gradient evenly across tied extrema.
|
|
@@ -105,6 +106,8 @@ copied = x.clone()
|
|
|
105
106
|
- No higher-order gradients.
|
|
106
107
|
- No graph compiler or tracing runtime.
|
|
107
108
|
- No checkpointing.
|
|
108
|
-
-
|
|
109
|
+
- Basic indexing and slicing views scatter gradients back into the source.
|
|
110
|
+
Advanced list, tensor, and boolean-mask indexing gradients are not
|
|
111
|
+
implemented.
|
|
109
112
|
- No in-place operation tracking beyond optimizer internals.
|
|
110
113
|
- CPU tensors only.
|
|
@@ -147,7 +147,17 @@ Views:
|
|
|
147
147
|
|
|
148
148
|
- `reshape(*shape)` or `reshape(shape)`
|
|
149
149
|
- `flatten()`
|
|
150
|
-
- `transpose()`
|
|
150
|
+
- `transpose()` to reverse axes
|
|
151
|
+
- `transpose(axis0, axis1)` to swap two axes
|
|
152
|
+
- `permute(*axes)` or `permute(axes)`
|
|
153
|
+
- `squeeze(axis=None)`
|
|
154
|
+
- `unsqueeze(axis)`
|
|
155
|
+
- `__getitem__(key)` through `x[key]`
|
|
156
|
+
|
|
157
|
+
Indexing keys may contain integers, slices, tuples, ellipsis, and `None` for
|
|
158
|
+
new axes. Integer indexing drops the indexed dimension. Slice indexing returns
|
|
159
|
+
strided views, including negative-step views. Advanced list, tensor, and
|
|
160
|
+
boolean-mask indexing are rejected.
|
|
151
161
|
|
|
152
162
|
Math:
|
|
153
163
|
|
|
@@ -218,6 +228,7 @@ branches, not through the boolean condition.
|
|
|
218
228
|
- `x <= y`
|
|
219
229
|
- `x > y`
|
|
220
230
|
- `x >= y`
|
|
231
|
+
- `x[key]`
|
|
221
232
|
|
|
222
233
|
`+=` is intentionally unsupported and raises a clear error.
|
|
223
234
|
|