Skip to content

Blog: present both usage modes as first-class (typed non-AD core and opt-in full stack) #15

Description

@shinaoka

Summary

The flagship blog post (blog/introducing-tenferro-rs, live in EN/JA/ZH) frames tenferro as "a differentiable tensor stack" and leads with "linear algebra, PyTorch-style eager autodiff, JAX-style traced transforms, ...". Differentiability is the headline identity. The equally-valid usage — tenferro's typed, minimal-dependency, non-AD core, usable without buying into the AD stack — is absent from the outreach narrative. This issue tracks a blog update that presents both usage modes as first-class.

This is the outreach counterpart of the tenferro-rs positioning/docs work (see the tenferro-rs repo issue for README/docs). It broadens the perceived audience: people who want a typed Rust tensor layer without the AD/graph machinery.

Evidence (from tenferro-rs)

  • tenferro-tensor-core depends only on num-complex, smallvec, thiserror.
  • autodiff is a non-default feature; non-AD immediate linalg exists via the explicit backend, no autodiff, no traced graph. The backend is constructed once and reused (it owns a buffer pool + context), then reused across ops:
    let mut backend = CpuBackend::new();
    let outputs = backend.svd_read(TensorView::F64(a.as_view()))?;

Direction

  • Recommended: a new follow-up post, not a rewrite of the launch post (keep the launch record intact).
  • Axis: "choose your altitude" — (A) typed, minimal-dependency, non-AD core; (B) opt-in AD / traced / GPU / einsum / FFT on top. Both first-class.
  • Show concrete (A): the 3-dependency core, autodiff non-default, an explicit-backend non-AD immediate linalg example that constructs the backend once and reuses it (do not model per-call CpuBackend::new() — it discards the buffer pool).
  • Follow the established multi-language convention (EN/JA/ZH), matching the existing introducing-tenferro-rs set.
  • Fits the ongoing Schelling-point outreach cadence (SciRust monthly, Psi-k).

Mechanics

  • Jekyll repo tensor4all/tensor4all.github.io; a post lives at blog/<slug>/index.md (front matter: title only); push to main deploys.

Acceptance criteria

  • A new post under blog/<slug>/ presenting the two usage modes as co-equal, with a runnable (A) non-AD immediate example including linalg via the explicit backend.
  • Language variants consistent with the existing convention (EN plus JA/ZH as agreed).
  • Messaging consistent with the tenferro-rs README positioning update.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions