tensoracle 1.0.0__tar.gz → 1.0.1__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.
- {tensoracle-1.0.0 → tensoracle-1.0.1}/PKG-INFO +4 -4
- {tensoracle-1.0.0 → tensoracle-1.0.1}/README.md +2 -2
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/api/index.md +2 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/optimization.md +1 -1
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/README.md +1 -1
- {tensoracle-1.0.0 → tensoracle-1.0.1}/pyproject.toml +1 -1
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/_version.py +2 -2
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_distribution.py +1 -1
- {tensoracle-1.0.0 → tensoracle-1.0.1}/.gitignore +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/LICENSE +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/build_backend.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/cpp/CMakeLists.txt +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/cpp/cmake/TensoracleCubinPlugin.cmake +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/cpp/include/tensoracle/cubin_plugin.hpp +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/cpp/src/cubin_plugin.cpp +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/cpp/tests/core.cpp +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/api/bundle.md +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/api/producer.md +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/cpp-python-repositories.md +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/index.md +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/precision.md +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/docs/tensorrt-sdk.md +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/CMakeLists.txt +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/bundle.cpp +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/bundle.json +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm120/bias.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm120/dot.specialized.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm120/dot.tf32-control.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm120/dot.unspecialized.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm120/scale.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm86/bias.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm86/dot.specialized.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm86/dot.tf32-control.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm86/dot.unspecialized.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm86/scale.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm89/bias.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm89/dot.specialized.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm89/dot.tf32-control.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm89/dot.unspecialized.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm89/scale.cubin +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/example_cubin_plugin/__init__.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/example_cubin_plugin/weights.safetensors +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/kernels.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/plugin.cpp +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/pyproject.toml +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/mkdocs.yml +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/__init__.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/_build.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/_cache.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/_comparison.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/_execution.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/_memory.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/_plugins.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/bundle.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/convert.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/src/tensoracle/producer.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/build_memory_runtime.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/cubin_io/check.cpp +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/cubin_io/kernels.cu +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/cubin_io/plugin.cpp +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/example_runtime.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/native/CMakeLists.txt +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/native/export.h +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/native_build.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/plugin_io_runtime.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/precision_runtime.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_build.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_build_memory.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_bundle.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_cache.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_cmake_plugin.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_comparison.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_convert.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_cpp_core.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_engine_io.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_example_plugin.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_execution.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_gpu_cache.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_plugin_io.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_plugins.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_precision.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_producer.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_shape_tensor_outputs.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/tests/test_weight_hash.py +0 -0
- {tensoracle-1.0.0 → tensoracle-1.0.1}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tensoracle
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: Build, save, reuse, and execute TensorRT engines from safetensors weights
|
|
5
5
|
Project-URL: documentation, https://sync-dev-org.github.io/tensoracle/
|
|
6
6
|
Project-URL: repository, https://github.com/sync-dev-org/tensoracle
|
|
@@ -8,7 +8,7 @@ Project-URL: issues, https://github.com/sync-dev-org/tensoracle/issues
|
|
|
8
8
|
Author-email: minamik <mia@sync.dev>
|
|
9
9
|
License-Expression: MIT
|
|
10
10
|
License-File: LICENSE
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Environment :: GPU :: NVIDIA CUDA :: 13
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
14
14
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -142,7 +142,7 @@ handle = open_engine(
|
|
|
142
142
|
engine = handle.engine # Keep handle.runtime alive while using the engine.
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
-
Saved files live in the `tensoracle` directory under `XDG_CACHE_HOME`, or under the home directory's `.cache` when that variable is unset. The same rule applies on every OS; on Windows the home directory is `%USERPROFILE%`, so the default is `%USERPROFILE%\.cache\tensoracle`. The cache identity includes the contents of all declared safetensors weight files and optional `plugins` files, the engine name, graph version, input shapes, builder settings, GPU
|
|
145
|
+
Saved files live in the `tensoracle` directory under `XDG_CACHE_HOME`, or under the home directory's `.cache` when that variable is unset. The same rule applies on every OS; on Windows the home directory is `%USERPROFILE%`, so the default is `%USERPROFILE%\.cache\tensoracle`. The cache identity includes the contents of all declared safetensors weight files and optional `plugins` files, the engine name, graph version, input shapes, builder settings, the GPU's compatibility properties, OS, CPU architecture, and TensorRT version. The GPU is the device of the current CUDA context, or device 0 when no context is current. Its properties are the product name, compute capability, memory bus width, L2 cache size, shared memory limits, texture alignment, multiprocessor count, whether the GPU is integrated, ECC mode, and total memory; another device with the same properties reuses the saved engine. Raise `graph_version` when graph code changes; without a version change, the previous engine is reused. Use a different `name` or `graph_version` for engines with different tensor types, such as fp32 and fp16. Include in `graph_version` any other caller value that changes the engine contents but is not part of the cache identity, such as a plugin manifest or a build recipe. Pass `force_rebuild=True` to replace a cached engine even when it is intact. tensoracle closes a saved engine file after reading it, so another process using an opened engine does not block replacement. On Windows, a process that keeps the saved file itself open prevents replacement or removal with `PermissionError`; after that process closes the file, a file left empty by the failed rebuild is rejected as `CorruptEngineError` and can be rebuilt with `force_rebuild=True`.
|
|
146
146
|
|
|
147
147
|
`plugins` names native TensorRT plugin libraries. Both `open_engine` and `build_serialized_engine` accept it. Each function checks that every library exports `getCreators`, loads it through TensorRT's registry, and retains it for the process before building the graph or deserializing an engine. Repeating the same library does not register it twice. `open_engine` also hashes the loaded library bytes into the engine identity; a changed library selects a different saved engine in a new process. A missing, unreadable, or incompatible library, or a library changed after loading in the same process, raises `PluginLibraryError` before a cached plan is opened. Keep the library and its cubin bundle together in the caller's wheel.
|
|
148
148
|
|
|
@@ -302,7 +302,7 @@ Use `PluginBase(name, plugin_namespace, std::move(fields), residual_io())` in th
|
|
|
302
302
|
|
|
303
303
|
For configurations the declaration cannot express, such as multiple outputs or computed output shapes, developers can override the virtual V3 methods in a derived class or ask tensoracle's maintainers to extend the declaration.
|
|
304
304
|
|
|
305
|
-
`tensoracle.bundle.inspect_bundle(bundle_directory, plugin=library_path)` checks the manifest, each cubin's SHA-256 and actual ELF SM, the supported hidden arguments and zero scratch sizes, and the cubin bytes embedded in the library. `inspect_wheel(wheel_path, plugin="path/inside/wheel.so")` performs the same checks on a wheel without installing it. Their distinct exceptions identify a missing cubin, corrupt cubin, false SM claim, or plugin and bundle mismatch. The manifest records Triton
|
|
305
|
+
`tensoracle.bundle.inspect_bundle(bundle_directory, plugin=library_path)` checks the manifest, each cubin's SHA-256 and actual ELF SM, the supported hidden arguments and zero scratch sizes, and the cubin bytes embedded in the library. `inspect_wheel(wheel_path, plugin="path/inside/wheel.so")` performs the same checks on a wheel without installing it. Their distinct exceptions identify a missing cubin, corrupt cubin, false SM claim, or plugin and bundle mismatch. The manifest records the Triton and ptxas versions and each kernel's source SHA-256, without a producer host or OS path. The TensorRT versions tested with the included example are listed below.
|
|
306
306
|
|
|
307
307
|
## Tested environments
|
|
308
308
|
|
|
@@ -111,7 +111,7 @@ handle = open_engine(
|
|
|
111
111
|
engine = handle.engine # Keep handle.runtime alive while using the engine.
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
Saved files live in the `tensoracle` directory under `XDG_CACHE_HOME`, or under the home directory's `.cache` when that variable is unset. The same rule applies on every OS; on Windows the home directory is `%USERPROFILE%`, so the default is `%USERPROFILE%\.cache\tensoracle`. The cache identity includes the contents of all declared safetensors weight files and optional `plugins` files, the engine name, graph version, input shapes, builder settings, GPU
|
|
114
|
+
Saved files live in the `tensoracle` directory under `XDG_CACHE_HOME`, or under the home directory's `.cache` when that variable is unset. The same rule applies on every OS; on Windows the home directory is `%USERPROFILE%`, so the default is `%USERPROFILE%\.cache\tensoracle`. The cache identity includes the contents of all declared safetensors weight files and optional `plugins` files, the engine name, graph version, input shapes, builder settings, the GPU's compatibility properties, OS, CPU architecture, and TensorRT version. The GPU is the device of the current CUDA context, or device 0 when no context is current. Its properties are the product name, compute capability, memory bus width, L2 cache size, shared memory limits, texture alignment, multiprocessor count, whether the GPU is integrated, ECC mode, and total memory; another device with the same properties reuses the saved engine. Raise `graph_version` when graph code changes; without a version change, the previous engine is reused. Use a different `name` or `graph_version` for engines with different tensor types, such as fp32 and fp16. Include in `graph_version` any other caller value that changes the engine contents but is not part of the cache identity, such as a plugin manifest or a build recipe. Pass `force_rebuild=True` to replace a cached engine even when it is intact. tensoracle closes a saved engine file after reading it, so another process using an opened engine does not block replacement. On Windows, a process that keeps the saved file itself open prevents replacement or removal with `PermissionError`; after that process closes the file, a file left empty by the failed rebuild is rejected as `CorruptEngineError` and can be rebuilt with `force_rebuild=True`.
|
|
115
115
|
|
|
116
116
|
`plugins` names native TensorRT plugin libraries. Both `open_engine` and `build_serialized_engine` accept it. Each function checks that every library exports `getCreators`, loads it through TensorRT's registry, and retains it for the process before building the graph or deserializing an engine. Repeating the same library does not register it twice. `open_engine` also hashes the loaded library bytes into the engine identity; a changed library selects a different saved engine in a new process. A missing, unreadable, or incompatible library, or a library changed after loading in the same process, raises `PluginLibraryError` before a cached plan is opened. Keep the library and its cubin bundle together in the caller's wheel.
|
|
117
117
|
|
|
@@ -271,7 +271,7 @@ Use `PluginBase(name, plugin_namespace, std::move(fields), residual_io())` in th
|
|
|
271
271
|
|
|
272
272
|
For configurations the declaration cannot express, such as multiple outputs or computed output shapes, developers can override the virtual V3 methods in a derived class or ask tensoracle's maintainers to extend the declaration.
|
|
273
273
|
|
|
274
|
-
`tensoracle.bundle.inspect_bundle(bundle_directory, plugin=library_path)` checks the manifest, each cubin's SHA-256 and actual ELF SM, the supported hidden arguments and zero scratch sizes, and the cubin bytes embedded in the library. `inspect_wheel(wheel_path, plugin="path/inside/wheel.so")` performs the same checks on a wheel without installing it. Their distinct exceptions identify a missing cubin, corrupt cubin, false SM claim, or plugin and bundle mismatch. The manifest records Triton
|
|
274
|
+
`tensoracle.bundle.inspect_bundle(bundle_directory, plugin=library_path)` checks the manifest, each cubin's SHA-256 and actual ELF SM, the supported hidden arguments and zero scratch sizes, and the cubin bytes embedded in the library. `inspect_wheel(wheel_path, plugin="path/inside/wheel.so")` performs the same checks on a wheel without installing it. Their distinct exceptions identify a missing cubin, corrupt cubin, false SM claim, or plugin and bundle mismatch. The manifest records the Triton and ptxas versions and each kernel's source SHA-256, without a producer host or OS path. The TensorRT versions tested with the included example are listed below.
|
|
275
275
|
|
|
276
276
|
## Tested environments
|
|
277
277
|
|
|
@@ -20,7 +20,7 @@ First check whether a combination of standard TensorRT layers can preserve the o
|
|
|
20
20
|
|
|
21
21
|
- **tensoracle tools:** `tensoracle.producer.compile_bundle` generates cubins and a manifest for supported GPU generations. The shared C++ plugin helpers support a caller-built native plugin with declared tensor types, formats, and an input whose shape the output copies; `tensoracle.bundle.inspect_bundle` or `inspect_wheel` checks the cubins and their match with the plugin. Pass the plugin library through `plugins=` to `build_serialized_engine` or `open_engine`. Follow [Build a cubin plugin](index.md#build-a-cubin-plugin) for the `PluginIO` declaration, including fp16 / HWC8 and two-input examples, and the [cubin plugin example](https://github.com/sync-dev-org/tensoracle/blob/main/examples/cubin_plugin/README.md) for the generation, build, and inspection operations.
|
|
22
22
|
- **You provide:** Identify the bottleneck, write the kernel and model-specific plugin behavior, choose its supported shapes and types, build and package its native library, and run the resulting engines. An fp32 kernel must not use TF32.
|
|
23
|
-
- **Gate:** For a custom cubin plugin, the bundle and plugin inspections must pass. Reapply stage 1 to the replacement's fp32 engine against the same fixed PyTorch reference. If using
|
|
23
|
+
- **Gate:** For a custom cubin plugin, the bundle and plugin inspections must pass. Reapply stage 1 to the replacement's fp32 engine against the same fixed PyTorch reference. If using a lower precision engine, reapply stage 2 against an accepted fp32 engine with the same limits and model-specific measurements. Advance only when the replacement meets those quality gates; otherwise retain the accepted implementation.
|
|
24
24
|
|
|
25
25
|
## 4. Measure speed under isolated load
|
|
26
26
|
|
|
@@ -30,7 +30,7 @@ Follow [Prepare a TensorRT SDK](../../docs/tensorrt-sdk.md) to obtain and verify
|
|
|
30
30
|
CMAKE_ARGS="-DTENSORRT_ROOT=$TENSORRT_ROOT" uv build examples/cubin_plugin --wheel
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
The example's build backend and CUDA tooling belong to this project, not to tensoracle's runtime dependencies. Before installation, inspect the wheel with `tensoracle.bundle.inspect_wheel(wheel, plugin="example_cubin_plugin/libtensoracle_example_plugin.so")`. This compares the library's embedded digest and cubin bytes with the manifest and cubin files.
|
|
33
|
+
The example's build backend and CUDA tooling belong to this project, not to tensoracle's runtime dependencies. Before installation, inspect the wheel with `tensoracle.bundle.inspect_wheel(wheel, plugin="example_cubin_plugin/libtensoracle_example_plugin.so")`. For a wheel built on Windows, pass `plugin="example_cubin_plugin/tensoracle_example_plugin.dll"`. This compares the library's embedded digest and cubin bytes with the manifest and cubin files.
|
|
34
34
|
|
|
35
35
|
Install the tensoracle wheel and this example wheel into a runtime Python environment with TensorRT 11 and `cuda-python`, but without Triton, torch, or the TensorRT SDK. `open_engine` registers the library before calling `graph` or opening a saved engine. The tests use two separate processes and an `XDG_CACHE_HOME` directory to verify that the second process reuses the saved engine without building a graph.
|
|
36
36
|
|
|
@@ -7,7 +7,7 @@ readme = "README.md"
|
|
|
7
7
|
license = "MIT"
|
|
8
8
|
license-files = ["LICENSE"]
|
|
9
9
|
classifiers = [
|
|
10
|
-
"Development Status ::
|
|
10
|
+
"Development Status :: 5 - Production/Stable",
|
|
11
11
|
"Environment :: GPU :: NVIDIA CUDA :: 13",
|
|
12
12
|
"Intended Audience :: Developers",
|
|
13
13
|
"License :: OSI Approved :: MIT License",
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0,
|
|
21
|
+
__version__ = version = '1.0.1'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 1)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -410,7 +410,7 @@ def test_wheel_metadata_describes_the_public_package(distributions):
|
|
|
410
410
|
assert metadata.get_all("License-File") == ["LICENSE"]
|
|
411
411
|
assert metadata["Requires-Python"] == "<3.14,>=3.12"
|
|
412
412
|
assert set(metadata.get_all("Classifier", [])) == {
|
|
413
|
-
"Development Status ::
|
|
413
|
+
"Development Status :: 5 - Production/Stable",
|
|
414
414
|
"Environment :: GPU :: NVIDIA CUDA :: 13",
|
|
415
415
|
"Intended Audience :: Developers",
|
|
416
416
|
"License :: OSI Approved :: MIT License",
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm86/dot.specialized.cubin
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/bundle/cubins/sm89/dot.specialized.cubin
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/example_cubin_plugin/__init__.py
RENAMED
|
File without changes
|
{tensoracle-1.0.0 → tensoracle-1.0.1}/examples/cubin_plugin/example_cubin_plugin/weights.safetensors
RENAMED
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|