Skip to content

Tracking Issue: Tensor Extension Types #6865

Description

@connortsui20

This issue tracks tensor extension types in vortex-tensor. These types support ML, AI, and scientific data, including images, video, sensor data, time-series data, embeddings, and matrices. Parent Epic: Extension Types #7683.

Design

Tensor support uses Vortex extension types with canonical storage dtypes. Tensor metadata and scalar functions live in vortex-tensor.

The tracked tensor types are:

  • FixedShapeTensor: A tensor with a fixed physical shape and dimension count.
  • VariableShapeTensor: A tensor whose shape can change while its dimension count stays fixed.
  • Matrix: A two-dimensional tensor.
  • Vector: A one-dimensional tensor.

Normalization is an explicit compute operation, not a logical refinement or physical encoding:

  • L2Norm(v) returns the magnitude of each tensor or vector.
  • L2Normalize(v) returns a struct with the normalized value and the same norm.

The scalar functions compute from decoded coordinates. They do not use encoding-specific arithmetic shortcuts.

Design references:

Steps

  • Establish the extension-type support that tensor work requires.
  • Add the initial fixed-shape tensor extension type in vortex-tensor.
  • Reorganize vortex-tensor for multiple tensor-related types.
  • Add the initial Vector extension type and L2Norm expression.
  • Define explicit L2 normalization semantics without a refinement dtype or physical encoding.
  • Add logical shape casts for fixed-shape tensors.
  • Add Arrow export support.
  • Add NumPy export support.
  • Add PyTorch export support.
  • Add variable-shape tensor support.
  • Documentation.
  • Public API stabilization.

Unresolved questions

  • Define the intended stable public API for tensor extension types.
  • Decide the relationship between FixedShapeTensor, VariableShapeTensor, Matrix, and Vector.
  • Decide what validation belongs in tensor extension metadata versus storage-array validation.
  • Define export semantics for Arrow, NumPy, and PyTorch.
  • Decide whether tensor slicing and indexing produce lazy tensor views, materialized arrays, or both.

Implementation history

  • Extension Types RFC established the extension-type design used by tensor work.
  • Fixed-shape Tensor RFC described the first tensor extension design.
  • #6812 added the experimental fixed-shape tensor extension and CosineSimilarity.
  • #6857 reorganized vortex-tensor for more tensor-related types.
  • #6964 added Vector, L2Norm, and AnyTensor.
  • #9767 replaces the Normalized encoding with explicit L2Normalize semantics.
  • #9768 moves L2Norm to RowFn.
  • #9769 moves inner product and cosine similarity to RowFn.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

tracking-issueShared implementation context for work likely to span multiple PRs.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions