Skip to content

Migrate load_and_normalize onto the streaming executor #40

Description

@fishidaho

load_and_normalize (src/vsparse/_rapid_load.py) is the one entry point real callers actually use today, and it's the one place the current
fully-materializing behavior is directly user-visible. Building a streaming executor (#39 ) doesn't help anyone until this function, or a
clearly-documented streaming replacement for it ,actually uses it.

Proposed scope

  • Reimplement load_and_normalize's filter/normalize pipeline on top of Implement a streaming executor with prefetch and a memory budget #39 's streaming executor, preserving its existing numerical contract
    (validated to 0.0 absolute error against recomputation).
  • Decide on the migration story. In other words, does load_and_normalize change behavior in place (same signature, now streaming under the hood, with a memory-budget kwarg), or does it stay as the "decode everything" fast path for callers who know their data fits, with a new streaming-first entry point alongside it?

Acceptance criteria

  • The full parafac2-style pipeline (filter, normalize, feed to a matmul-consuming caller) runs under a defined memory ceiling on a dataset large enough that the current implementation would not.
  • Existing tests/test_rapid_load.py behavioral guarantees still hold.
  • README/docs are updated to point at whichever function is now the recommended atlas-scale entry point.

References

  • src/vsparse/_rapid_load.py, README.md (load_and_normalize section).

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions