Spatially Sparse Convolutions — Overview

Created: 2026-05-03 12:45:00 PST Edited: 2026-05-03 12:45:00 PST

Spatially sparse convolution material is split across three pages. This page is a map — pick the one that matches what you want to do.

Which page should I read?

If you want to… Read
Understand what "spatially sparse" means; see the math; watch animations of dense / sparse / stride=1 / generalized convolution Concepts
Pick a layer (SparseConv3d, group conv, depthwise, generative) and write code Variants & API
Understand the GEMM-level implementation, kernel maps, the AB / ABt / AtB ops, or pick a backend Internals

At a glance

                            ┌──────────────────────────┐
                            │  Concepts                │   math definition
new reader  ───────────────▶│  sparse_convolutions.md  │   + 4 animations
                            └──────────────────────────┘
                                       │
                  ┌────────────────────┴────────────────────┐
                  ▼                                         ▼
   ┌─────────────────────────────────────┐   ┌─────────────────────────────────────┐
   │ Variants & API                      │   │ Internals                           │
   │ sparse_convolutions_variants.md     │   │ sparse_convolutions_internals.md    │
   │                                     │   │                                     │
   │ standard / group / depthwise /      │   │ kernel map, AB / ABt / AtB GEMMs,   │
   │ generative; usage examples          │   │ algorithm taxonomy, source files    │
   └─────────────────────────────────────┘   └─────────────────────────────────────┘
       (API user)                                 (contributor / perf engineer)

What WarpConvNet implements

WarpConvNet implements spatially sparse convolutions on integer-grid voxel coordinates: convolutions where only the occupied coordinates of a sparse 3D tensor carry features, and work scales with occupied neighbor pairs instead of dense grid volume.

The generalized form (one equation, four pages of consequences):

\[ \mathbf{y}_{\mathbf{u}} \;=\; \sum_{\mathbf{i} \in \mathcal{N}(\mathbf{u},\,\mathcal{K},\,\mathcal{C}^{\text{in}})} \mathbf{W}_{\mathbf{i}}\, \mathbf{x}_{\mathbf{u} + \mathbf{i}} \qquad \mathbf{u} \in \mathcal{C}^{\text{out}}. \]

For full definitions of \(\mathcal{C}^{\text{in}}\), \(\mathcal{C}^{\text{out}}\), \(\mathcal{K}\), \(\mathcal{N}\) and the visual intuition for each regime, start with Concepts.