Skip to content

Add Top-KAST as a SparsityAlgorithm #12

Description

@DarshanFofadiya

Context

Top-KAST (Jayakumar et al., 2021) is a DST algorithm that maintains a dense "shadow" weight matrix and selects the top-K entries by magnitude as the active sparse set at each forward pass. Unlike SET/RigL which mutate every N steps, Top-KAST re-selects the active set every step.

This is a different mutation model from what SET/RigL use, and would test whether the SparsityAlgorithm base class is flexible enough to accommodate per-step topology changes (vs the current per-N-steps model).

Paper

Jayakumar et al. "Top-KAST: Top-K Always Sparse Training." NeurIPS 2021.
https://arxiv.org/abs/2106.04411

What needs to happen

  1. Subclass SparsityAlgorithm (not DynamicSparsityAlgorithm, since the mutation model is different).
  2. Implement per-step top-K selection in update().
  3. This may require maintaining a dense shadow weight alongside the Padded-CSR — design decision needed on where that lives.
  4. Tests + MNIST convergence comparison.

Files to read

  • sparselab/router.py — base classes and existing algorithms
  • tests/test_set.py, tests/test_rigl.py — test patterns

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is neededv0.2Planned for v0.2 release

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions