Celsia's picture
Upload folder using huggingface_hub
ecc81b3 verified
Raw
History Blame Contribute Delete
8.15 kB
torch-dimensions
Copyright © 2026 Celsia Juilyn Fan
This product includes software developed by the torch-dimensions authors,
licensed under the Apache License, Version 2.0 (see LICENSE).
================================================================================
Third-party attributions
================================================================================
Each entry below states its relationship to the upstream project exactly:
**redistribution** (their files, shipped verbatim in this package),
**derivation** (our files, written from their code), or **ideas** (no code
relationship at all). The audit behind this list is in dossier/README.md.
--------------------------------------------------------------------------------
state-spaces/s4 — Apache License 2.0
Copyright the state-spaces authors (Gu, Goel, Ré, et al.)
https://github.com/state-spaces/s4
1. REDISTRIBUTION. src/torch_dimensions/_vendor/s4/src/ contains the
pipeline subtree that upstream's train.py runs: the S4Block layer
(`src/models/sequence/modules/s4block.py`), the S4ND layer (`s4nd.py`),
the kernel modules (`fftconv.py`, `ssm.py`, `dplr.py`, `kernel.py`), the
HiPPO construction, the functional kernels (`cauchy.py`, `vandermonde.py`,
`krylov.py`, `toeplitz.py`), the `nn` components, and the `utils`
config/registry/train modules — 23 files, byte-identical to the upstream
commit recorded in _vendor/MANIFEST.json, with their directory structure
intact so the code's own `src.*` imports run unchanged. Statement of
changes (Apache-2.0 §4(b)): exactly two files are modified.
`src/utils/train.py` guards its training-only imports
(pytorch_lightning, rich, omegaconf). `src/models/sequence/kernels/ssm.py`
adds a Nyquist-pole guard in `_omega`: the bilinear transform divides by
(1 + omega), which is zero when a backend's power op lands exactly on
omega = -1 (MPS does at some lengths); the guard nudges only an exact hit
and is inert on CPU/CUDA, where outputs are verified bit-for-bit
unchanged. Every changed line is tagged "torch-dimensions patch", pristine
copies ship as `.orig` beside both files, and tests/test_vendored.py fails
if any untagged difference exists anywhere. The upstream LICENSE ships in
the same directory.
2. DERIVATION. src/torch_dimensions/mixers/ssm.py derives the S4D and S4
(DPLR) kernel mathematics from `models/s4/s4d.py` and the structured-kernel
modules. Modified: the fused CUDA/Triton kernels, the pytorch_lightning and
hub imports, and the transposed-layout plumbing are not carried over, and a
Nyquist-pole guard was added that upstream does not have. That file's
module docstring states this in full.
Upstream ships no NOTICE file, so there is none to propagate.
--------------------------------------------------------------------------------
state-spaces/mamba — Apache License 2.0
Copyright (c) 2023, Tri Dao, Albert Gu.
https://github.com/state-spaces/mamba
1. REDISTRIBUTION. src/torch_dimensions/_vendor/mamba/ contains the authors'
`modules/mamba_simple.py`, `modules/mamba2.py`, `modules/mamba3.py`,
`modules/ssd_minimal.py`, `ops/selective_scan_interface.py`,
`ops/triton/layernorm_gated.py`, and `utils/torch.py`, byte-identical to
the upstream commit recorded in _vendor/MANIFEST.json, except for
import-path patches, optional-Triton guards, and dispatch patches that
choose an implementation per call: on CUDA the authors' fused kernels, and
otherwise, for Mamba-1 and Mamba-2, the authors' *own* reference
implementations — `selective_scan_fn` -> their `selective_scan_ref`,
`mamba_chunk_scan_combined` -> their `ssd_minimal_discrete`, and gated
`RMSNorm.forward` -> their `rms_norm_ref`. The adapters presenting the
fused kernels' calling convention on top of those references are our own
code and live outside this directory, in
src/torch_dimensions/mixers/mamba2_compat.py.
Statement of changes (§4(b)): every modified line is tagged
"torch-dimensions patch"; `.orig` copies and the upstream LICENSE ship
beside the files; tests/test_vendored.py enforces that no other
modification exists.
2. DERIVATION. src/torch_dimensions/mixers/ssm.py derives the selective-scan
recurrence from `modules/mamba_simple.py`. Modified: the scan is a portable
sequential loop rather than the fused kernel.
3. DERIVATION — MAMBA-3'S SCAN, WHICH IS THE ONE PLACE OUR OWN ARITHMETIC
STANDS IN FOR THEIRS. Unlike Mamba-1 and Mamba-2, Mamba-3 ships no
pure-torch reference: its recurrence exists upstream only as Triton
kernels (`ops/triton/mamba3/*`), which require CUDA. Off GPU, the vendored
`modules/mamba3.py` therefore calls
src/torch_dimensions/mixers/mamba3_compat.py, which is **our
transcription** of the recurrence those kernels implement — written from
`mamba3_siso_step.py` and `angle_dt.py`, sharing no expression with them.
It computes in float32 with exact trigonometric functions where the
kernels use bfloat16 and PTX approximations, so it does not reproduce
their numbers bit for bit and does not claim to. On CUDA the authors'
kernels are called and the numbers are entirely theirs. No code from
`ops/triton/mamba3/` is copied or redistributed.
Upstream ships no NOTICE file.
--------------------------------------------------------------------------------
BaratiLab/CaFA — MIT License
Copyright (c) 2024 BaratiLab
https://github.com/BaratiLab/CaFA
No code is copied. Two design ideas in
src/torch_dimensions/compose/attention.py come from their `LowRankKernel`:
query/key RMS normalization (`qk_norm=`), and a learnable `gamma * I` added to
the kernel before the gate (`kernel_residual=`). Both are independently
implemented here and both default to off. Their rotary position embedding and
spherical quadrature weights are deliberately not adopted.
--------------------------------------------------------------------------------
jacklishufan/Mamba-ND — NO LICENSE
https://github.com/jacklishufan/Mamba-ND
**The upstream repository states no license**, as of 2026-08-02 and at the
commit cloned on 2026-06-21 — no LICENSE, no NOTICE, no COPYING, at any depth.
Under default copyright that means no grant to copy, modify, or redistribute.
Note also that eight files in that repository carry `Copyright (c) OpenMMLab`
headers. OpenMMLab's projects are Apache-2.0, which asks a redistributor to
include the license and retain notices. That is a matter between those
projects and Mamba-ND's authors, not something this project takes a position
on; it is recorded because it is a second, independent reason to keep that
repository at arm's length.
Accordingly: no code from it is present in this project, and none is
redistributed. `dossier/verify_mamba_nd.py` imports their code from a user's
own local clone purely to compare behaviour; nothing in the published package
depends on it.
`ScanPlan.paired()` produces the schedule the paper specifies. Figure 2 of
arXiv:2402.05892 states it in words — "a chain of 1D Mamba layers that process
the sequence in alternating orderings. In 3D space, we use the order H+ H- W+
W- T+ T-" — and our per-layer (axis, direction) sequence was additionally
verified against their reference implementation, layer for layer, on
2026-08-02. What that establishes, and what it does not, stated exactly:
- The two implementations share no expression. Ours builds `Step` tuples in
a three-line list comprehension; theirs advances an index (`z = i // 2`)
over einops rearrange strings. Anyone can compare the two files.
- `paired()` has been in this repository since its Phase 2 commit
(0fba849), which predates any contact with their code here.
- We make **no claim** about which sources informed that original
implementation. The schedule is published in the paper's Figure 2;
identical behaviour between two expressions of a published algorithm is
expected and is not evidence of copying in either direction.
Anyone intending to build on Mamba-ND beyond private study should resolve the
license question with its authors first.