Skip to content

Clean up deprecated, fix licenses, docs and deps#132

Merged
farhadrgh merged 12 commits into
mainfrom
remove
Jun 15, 2026
Merged

Clean up deprecated, fix licenses, docs and deps#132
farhadrgh merged 12 commits into
mainfrom
remove

Conversation

@farhadrgh

Copy link
Copy Markdown
Collaborator

Summary

Environment setup

Create the conda environment (required to run tests):

bash setup_conda_env.sh
conda activate nvsubquadratic

Pre-commit

Run locally before pushing:

pre-commit install
pre-commit run --all-files

Test plan

Documentation checklist

For every new or modified public symbol in nvsubquadratic/ or experiments/:

  • Every new module has a module-level docstring explaining what it contains and why.
  • Every new public class has a class docstring covering purpose, math/motivation, and key attributes.
  • Every new public method / function has Args: and Returns: blocks with tensor shapes where applicable.
  • Math notation is consistent with the paper (or a comment explains any deviation).
  • Docstrings containing backslashes use r"""...""" (required by ruff D301).
  • If a new file was added, a row has been added to docs-tracker.md with status [x].

See CONVENTIONS.md for the full style guide.

farhadrgh and others added 4 commits June 15, 2026 07:33
Deletes examples/imagenet_diffusion, examples/mnist_diffusion, the
HuggingFace diffusers wrapper, the diffusion Lightning wrapper, the
imagenet diffusion benchmark, and related tests and slurm scripts.
Drops DiffusionConfig / DiffusionExperimentConfig from default_cfg.py
and the HF-adapters section from docs/api_reference/networks.rst.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Deletes nvsubquadratic/networks/jit.py and jit_utils.py (port of
LTH14/JiT under MIT), scripts/data/generate_jit_fid_stats.py, and
LICENSE/third_party.txt (which existed solely to attribute the JiT
code). Removes the JiT sections from docs/api_reference/networks.rst
and drops third_party.txt from the pyproject.toml license-files list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Deletes nvsubquadratic/ops/fftconv_fp16.py and circular_fftconv_fp16.py
along with their tests. Removes the use_fp16_fft parameter from
CKConvND (imports, FFT_FUNCTIONS_FP16 tables, validation blocks,
dispatch logic, extra_repr). Drops the use_fp16_fft=False call-site
keyword from all well/ example configs. Removes the fp16 sections from
docs/api_reference/ops.rst and cleans up the fftconv.py module
docstring.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Deletes nvsubquadratic/ops/fftconv_multihead.py,
nvsubquadratic/modules/ckconv_multihead_nd.py,
tests/test_multihead_lowrank.py, and the two multihead vit5_imagenet
example configs. Removes the CKConvMultiheadND entry from
docs/api_reference/modules.rst and the multi-head FFT section from
docs/api_reference/ops.rst.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@farhadrgh farhadrgh requested a review from saeepaliwal as a code owner June 15, 2026 15:09
@farhadrgh farhadrgh requested a review from dwromero June 15, 2026 15:10
farhadrgh and others added 5 commits June 15, 2026 08:13
Removes the DiffusionExperimentConfig, DiffusionConfig, and
DiffusionWrapper autosummary entries that were missed in the diffusion
removal commit, causing a docs build failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tions

Follow-up to the fp16/JiT/diffusion/multihead removals. Deletes the now
orphaned docs/ops/FP16_FFTCONV_DERIVATION.md and
benchmarks/ops/FP16_FFTCONV_RESULTS.md (the fp16 FFT-conv ops they
describe are gone), and prunes the dangling fp16/multihead references
left behind in docs/ops/README.md, docs/architecture.md,
docs/benchmarks.md, docs/api_reference/ops.rst, benchmarks/ops/README.md,
and docs-tracker.md (also clears the stale JiT/diffusion tracker rows).

Converts the mixed-BC tracker (MIXED_BC_PLAN.md) into proper feature
documentation (mixed_boundary_conditions.md): the per-axis BC feature is
fully shipped (fp32 mixed_fftconv ops + CKConvND wiring), so the
plan/branch/owner/changelog framing and the deferred fp16/multihead
sections (now deleted code) are dropped in favor of motivation, the
fft_padding API, the per-axis algorithm, and current limitations. Inbound
code comments updated to the new filename.

Docs build green under -W --keep-going.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
These task examples are not part of the paper's experiments. Deletes
examples/{mnist,smnist,ucf101}_classification and their doc references
in docs/examples/index.md (Classification/Diffusion sections) and the
docs/repository_overview.md tree. Also clears the already-broken
mnist_diffusion/imagenet_diffusion links left in those two docs by the
earlier diffusion removal.

The mnist config was the only code consumer (tests/modules/
test_torch_compile.py imported it). That config is now inlined verbatim
into the test as a local fixture, so the torch.compile-compatibility
test is self-contained and no longer depends on examples/. Verified on
GPU (RTX A6000): 3 passed, 2 xpassed.

MNISTDataModule is retained — it is still used by spatial_recall_dataset
and tests/test_pixel_scaling. run.py's --config help example repointed
to a kept config. Docs build green under -W --keep-going.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Drop diffusers>=0.25.0 from pyproject.toml dependencies: its only
  consumer (nvsubquadratic/networks/huggingface_diffusers.py) was
  removed with the diffusion code, and no diffusers imports remain.
- Delete experiments/datamodules/ucf101.py (UCF101DataModule): the
  ucf101_classification example was its only consumer and was removed;
  nothing imports it now. Drop its docs/api_reference/experiments.rst
  autosummary entry and docs-tracker row.

Docs build green under -W --keep-going.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FID evaluation existed only to score diffusion-model samples, which were
removed. scripts/evaluation/eval_cfid.py ("generate samples from a
trained diffusion model and compute CleanFID") hard-requires
config.diffusion and so raised unconditionally after DiffusionConfig was
deleted; it was the sole consumer of nvsubquadratic/metrics/cleanfid.py,
whose sole external dep was clean-fid. All three are removed.

Also clears the references they left behind: the Metrics section +
intro mention in docs/api_reference/core.rst, the metrics/ and
scripts/evaluation tree rows + "FID stats" note in
docs/repository_overview.md, the metrics/ row in docs-tracker.md, the
stale cleanfid/diffusers/torch_fidelity entries in docs/conf.py's
autodoc_mock_imports, and the deleted-diffusion-test rows in
tests/README.md.

Docs build green under -W --keep-going.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@farhadrgh farhadrgh changed the title Clean up deprecated Clean up deprecated, fix licenses, docs and deps Jun 15, 2026
farhadrgh and others added 3 commits June 15, 2026 10:37
nvsubquadratic/networks/baselines/unet_convnext.py is a line-for-line
port of the_well.benchmark.models.unet_convnext (PolymathicAI/the_well,
BSD-3-Clause) — verified against upstream: identical module docstring,
class set (LayerNorm/Block/Stage/Upsample/Downsample/UNetConvNext), and
the reproduced skips[0] decoder bug. The Well's file is itself an
adaptation of facebookresearch/ConvNeXt (MIT). unet_convnext_v2.py
builds on it. Both shipped with only the NVIDIA Apache-2.0 header and no
third-party attribution.

Reinstates LICENSE/third_party.txt (it had been removed with the JiT
port) with verbatim BSD-3-Clause (The Well, (c) 2024 Polymathic AI) and
MIT (ConvNeXt, (c) Meta Platforms) texts; adds a second
SPDX-FileCopyrightText (Polymathic AI) + a "Portions ported from..."
notice to both files; re-adds third_party.txt to pyproject.toml
license-files. license-check hook passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The implicit-long-convs/ccnn_v2 repo is private/404, so the "Adapted
from https://github.com/implicit-long-convs/ccnn_v2" provenance lines
(11 header comments + 9 docstring lines across 12 core library /
experiments files) were dead links on the public site. ccnn_v2 is the
authors' own prior CCNN-v2 codebase (David Romero, now at NVIDIA), so
this is self-attribution with no external license obligation; the
underlying methods remain cited via the CKConv/CCNN papers in the
relevant module docstrings. Also drops 3 stale "# TODO: Add licence
header" placeholder comments (files already carry the SPDX header).

license-check hook passes; docs build green under -W --keep-going.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The make-repo-public portal's "Check status" requires a LICENSE file at
the repo root and rejects the LICENSE/ directory layout. Since a file
named LICENSE and a directory LICENSE/ cannot coexist, restructure:

  LICENSE/License.txt   -> LICENSE                  (Apache-2.0)
  LICENSE/third_party.txt -> THIRD_PARTY_NOTICES.txt (The Well BSD-3 + ConvNeXt MIT)

Updates pyproject.toml license-files to ["LICENSE", "THIRD_PARTY_NOTICES.txt"]
and the per-file notices in unet_convnext.py / unet_convnext_v2.py to point
at THIRD_PARTY_NOTICES.txt. Content is unchanged (git tracks both as renames);
license-check hook passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@farhadrgh farhadrgh merged commit 5db8dac into main Jun 15, 2026
4 checks passed
@farhadrgh farhadrgh deleted the remove branch June 15, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant