tensorfs 0.9.1__tar.gz → 0.9.2__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.
- {tensorfs-0.9.1 → tensorfs-0.9.2}/Cargo.lock +3 -3
- {tensorfs-0.9.1 → tensorfs-0.9.2}/Cargo.toml +1 -1
- {tensorfs-0.9.1 → tensorfs-0.9.2}/PKG-INFO +1 -1
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/registry.rs +18 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/conform.rs +50 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/pyproject.toml +1 -1
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/Cargo.toml +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/build.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/filesystem_parent_death_gate.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/h3-swiglu-layout.md +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/mine-vectors.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/optional-cache-backfill.md +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/resident-conversion.md +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/resident_conversion_profile.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/asset_update.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/b64.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/ckpt.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/ensure.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/fetch.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/ingest.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/main.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/repo.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/snap.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/bin/tfs/watch.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/cache_roots.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/canon.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/capability.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/catalog/lock.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/catalog.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/cbor.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/checkpoint.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/checkpoint_root.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/corpus.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/adoption.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/channel.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/companion_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/estimate.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/graft_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/group_commit_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/history_cost_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/next_attempt_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/part_rows_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/progress.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/resume_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/retention.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived/roots.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/derived.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/descriptors.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/disk.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/dtype.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/durability.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ensure/admission.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ensure/flight.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ensure.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/err.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/fetch.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/filesystem_identity.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/fill.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/fit.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/gc.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/header.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/home.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ids.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/carrier.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/convert.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/custody.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/fingerprint.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/h3_lora.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/journal.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/mod.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/narrow.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/preflight.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/routes/anima.routes.json +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/routes/anima.spec.json +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/routes/sdxl.routes.json +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/routes/sdxl.spec.json +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/routes.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/sdxl_lora.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/source.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/stamp.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/ingest/transaction.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/jcs.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/keyed_roots.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/lib.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/limits.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/machine.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/manifest.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/meta.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/object_roots.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/origin.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/project.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/providers.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/read.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/receipt.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/reclaim.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/relation.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/repo_cache.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/repository.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/sha256.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/source_artifact.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/source_model.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/spec.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/stats.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/storage.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/store.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/api.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/credential.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/decisions.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/download.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/dpop.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/dpop_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/http.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/http_reuse_tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/hub.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/ledger.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/memory.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/mod.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/policy.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/publish.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/pull.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/push.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/sources.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/tests/tail.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/transport/tests.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/unsynced.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/src/vectors.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/additive_fields.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/anima_hf_profile.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/as_is.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/catalog_owner_probe.c +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/checkpoint_roots.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/civitai_anima.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/civitai_sdxl_profile.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/ensure.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fd_budget.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fd_headroom.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fetch_faults.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/filesystem_parent_death_gate.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fit.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/blobs.jsonl +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/expected_list.jsonl +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/expected_repository.json +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/expected_rows.jsonl +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/header.cbor +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/manifest.json +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/mutation.json +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/foreign_json.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/h3_lora.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/h3_swiglu.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/home.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/hub_tls.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/import_tree.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/instrument_profiles.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/keyed_roots.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/liveness.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/owned_store.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/qwen_image21_profile.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/read_plan.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/reclaim.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/reclaim_run.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/repo_cache.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/repo_store.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/resident_admission.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/routed_single_file.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/sdxl_lora.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/sharded_cas.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/source_artifacts.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/source_download.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/source_model.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/source_plan.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/source_prefixes.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/source_preflight.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/store_boundaries.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/tensor_schema.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/transfer_memory.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/trust_index.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/vectors.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/version.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/write_through.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/API.md +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/Cargo.toml +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/bin/g1_vmm.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/bin/g2_overlap.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/bin/gpu_bench/mod.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/cuda.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/cursor.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/device.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/faults.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/host.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/io.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/layout.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/lib.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/plane.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/src/window.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/tests/census.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/tests/common/mod.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/tests/gpu.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/tests/host_tier.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/tests/layout_identity.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/tests/sealed.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-plane/tests/window.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/Cargo.toml +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/docs.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/ensure.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/errors.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/ingest.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/lib.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/plane.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/readplan.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-py/src/store.rs +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/__init__.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/_derived_channel.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/_ext.pyi +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/_source_channel.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/_tensors.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/derived.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/errors.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/plane.py +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/plane.pyi +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/py.typed +0 -0
- {tensorfs-0.9.1 → tensorfs-0.9.2}/python/tensorfs/records.py +0 -0
|
@@ -559,7 +559,7 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
|
559
559
|
|
|
560
560
|
[[package]]
|
|
561
561
|
name = "tensorfs-core"
|
|
562
|
-
version = "0.9.
|
|
562
|
+
version = "0.9.2"
|
|
563
563
|
dependencies = [
|
|
564
564
|
"base64",
|
|
565
565
|
"fs2",
|
|
@@ -580,7 +580,7 @@ dependencies = [
|
|
|
580
580
|
|
|
581
581
|
[[package]]
|
|
582
582
|
name = "tensorfs-plane"
|
|
583
|
-
version = "0.9.
|
|
583
|
+
version = "0.9.2"
|
|
584
584
|
dependencies = [
|
|
585
585
|
"libc",
|
|
586
586
|
"libloading",
|
|
@@ -590,7 +590,7 @@ dependencies = [
|
|
|
590
590
|
|
|
591
591
|
[[package]]
|
|
592
592
|
name = "tensorfs-py"
|
|
593
|
-
version = "0.9.
|
|
593
|
+
version = "0.9.2"
|
|
594
594
|
dependencies = [
|
|
595
595
|
"pyo3",
|
|
596
596
|
"tensorfs-core",
|
|
@@ -120,6 +120,7 @@ fn mined(name: &str) -> EncodingVectors {
|
|
|
120
120
|
}
|
|
121
121
|
"nvfp4-w4a4" => include_bytes!("../../../vectors/mined/nvfp4-w4a4.json"),
|
|
122
122
|
"mxfp8" => include_bytes!("../../../vectors/mined/mxfp8.json"),
|
|
123
|
+
"int8-convrot256" => include_bytes!("../../../vectors/mined/int8-convrot256.json"),
|
|
123
124
|
other => panic!("no mined vector set {other:?}"),
|
|
124
125
|
};
|
|
125
126
|
EncodingVectors::parse_fixture(bytes).expect("mined vectors are frozen canonical data")
|
|
@@ -266,6 +267,23 @@ pub fn seeds() -> Vec<Seed> {
|
|
|
266
267
|
],
|
|
267
268
|
Some(mined("mxfp8")),
|
|
268
269
|
),
|
|
270
|
+
// int8 W8A8 with ComfyUI's ConvRot: each row is rotated by the orthonormal regular
|
|
271
|
+
// Hadamard H4(x)H4(x)H4(x)H4 per 256 input channels, then quantized per output row.
|
|
272
|
+
// value[i,j] = scale[i] * (data[i] . H)[j] / 16, the integer Hadamard sum times the
|
|
273
|
+
// f32 scale in f32, then the logical cast. Mined from cozy-runtime's own producer.
|
|
274
|
+
seed(
|
|
275
|
+
"int8-convrot256/1",
|
|
276
|
+
float.clone(),
|
|
277
|
+
Some(2),
|
|
278
|
+
vec![
|
|
279
|
+
("data", role(set(&[Dtype::I8]), Relation::Same)),
|
|
280
|
+
(
|
|
281
|
+
"scale",
|
|
282
|
+
role(set(&[Dtype::F32]), dims(vec![Dim::Axis { axis: 0 }])),
|
|
283
|
+
),
|
|
284
|
+
],
|
|
285
|
+
Some(mined("int8-convrot256")),
|
|
286
|
+
),
|
|
269
287
|
Seed {
|
|
270
288
|
alias: "svdq-microscale/1",
|
|
271
289
|
vectors: None,
|
|
@@ -311,6 +311,51 @@ fn nvfp4_inner(c: &Case, swap: bool, skip_global: bool) -> Option<Vec<u8>> {
|
|
|
311
311
|
Some(out)
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
+
/// int8-convrot256: value[i,j] = f32(sum_k data[i,k] * H[k,j]) * scale[i] / 16 over each
|
|
315
|
+
/// 256-group, H = H4(x)H4(x)H4(x)H4 with H4's -1 where the two base-4 digits sum to 3.
|
|
316
|
+
fn int8_convrot256(c: &Case) -> Option<Vec<u8>> {
|
|
317
|
+
int8_convrot_inner(c, false, false)
|
|
318
|
+
}
|
|
319
|
+
fn int8_convrot_unrotated(c: &Case) -> Option<Vec<u8>> {
|
|
320
|
+
int8_convrot_inner(c, true, false)
|
|
321
|
+
}
|
|
322
|
+
fn int8_convrot_scale_by_column(c: &Case) -> Option<Vec<u8>> {
|
|
323
|
+
int8_convrot_inner(c, false, true)
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
fn hadamard_sign(k: usize, j: usize) -> i32 {
|
|
327
|
+
let mut sign = 1;
|
|
328
|
+
for digit in 0..4 {
|
|
329
|
+
if (k >> (2 * digit)) % 4 + (j >> (2 * digit)) % 4 == 3 {
|
|
330
|
+
sign = -sign;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
sign
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
fn int8_convrot_inner(c: &Case, unrotated: bool, wrong_axis: bool) -> Option<Vec<u8>> {
|
|
337
|
+
let d = role(c, "data")?;
|
|
338
|
+
let s = role(c, "scale")?;
|
|
339
|
+
let rows = *c.logical_shape.first()? as usize;
|
|
340
|
+
let cols = *c.logical_shape.get(1)? as usize;
|
|
341
|
+
let mut out = Vec::new();
|
|
342
|
+
for i in 0..rows {
|
|
343
|
+
for j in 0..cols {
|
|
344
|
+
let group = j - j % 256;
|
|
345
|
+
let q = |k: usize| d.bits[i * cols + group + k] as i8 as i32;
|
|
346
|
+
let sum = if unrotated {
|
|
347
|
+
q(j % 256) * 16
|
|
348
|
+
} else {
|
|
349
|
+
(0..256).map(|k| q(k) * hadamard_sign(k, j % 256)).sum()
|
|
350
|
+
};
|
|
351
|
+
let o = if wrong_axis { (j % rows) * 4 } else { i * 4 };
|
|
352
|
+
let sc = f32::from_le_bytes(s.bits[o..o + 4].try_into().ok()?);
|
|
353
|
+
put_logical(c.logical_dtype, sum as f32 * sc * 0.0625, &mut out);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
Some(out)
|
|
357
|
+
}
|
|
358
|
+
|
|
314
359
|
fn candidates(alias: &str) -> Vec<Candidate> {
|
|
315
360
|
let mk = |name, wrong, decode| Candidate {
|
|
316
361
|
name,
|
|
@@ -342,6 +387,11 @@ fn candidates(alias: &str) -> Vec<Candidate> {
|
|
|
342
387
|
mk("fp8-scaled-scalar:scale-ignored", true, fp8_scaled_no_scale),
|
|
343
388
|
mk("fp8-scaled-scalar:f32-math", true, fp8_scaled_f32_math),
|
|
344
389
|
],
|
|
390
|
+
"int8-convrot256/1" => vec![
|
|
391
|
+
mk("int8-convrot256", false, int8_convrot256),
|
|
392
|
+
mk("int8-convrot256:unrotated", true, int8_convrot_unrotated),
|
|
393
|
+
mk("int8-convrot256:scale-by-column", true, int8_convrot_scale_by_column),
|
|
394
|
+
],
|
|
345
395
|
"mxfp8/1" => vec![
|
|
346
396
|
mk("mxfp8", false, mxfp8),
|
|
347
397
|
mk("mxfp8:block-16", true, mxfp8_wrong_block),
|
|
File without changes
|
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/filesystem_parent_death_gate.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/examples/resident_conversion_profile.rs
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
|
|
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
|
|
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
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/filesystem_parent_death_gate.py
RENAMED
|
File without changes
|
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/blobs.jsonl
RENAMED
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/expected_list.jsonl
RENAMED
|
File without changes
|
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/expected_rows.jsonl
RENAMED
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/header.cbor
RENAMED
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/manifest.json
RENAMED
|
File without changes
|
{tensorfs-0.9.1 → tensorfs-0.9.2}/crates/tensorfs-core/tests/fixtures/repo_apply/mutation.json
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
|
|
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
|