tensor contiguity
**Tensor contiguity** is the **property indicating whether tensor data occupies a compact, stride-consistent memory block** - contiguous tensors typically enable faster kernels and simpler memory access behavior.
**What Is Tensor contiguity?**
- **Definition**: A contiguous tensor has memory layout matching expected stride order without gaps from views or slicing.
- **Non-Contiguous Sources**: Transpose, advanced slicing, and strided views often create non-contiguous tensors.
- **Kernel Implication**: Many optimized kernels assume or prefer contiguous inputs for peak throughput.
- **Conversion Tool**: Explicit contiguous conversion creates packed copy at additional copy cost.
**Why Tensor contiguity Matters**
- **Performance**: Contiguous layout improves coalesced memory access and cache behavior.
- **Compatibility**: Some backend operators require contiguous tensors for correct or efficient execution.
- **Debugging**: Unexpected non-contiguity can explain sudden slowdown or fallback kernels.
- **Memory Planning**: Knowing when copies occur helps control hidden bandwidth and allocation overhead.
- **Optimization**: Contiguity awareness is essential when designing view-heavy tensor pipelines.
**How It Is Used in Practice**
- **Layout Inspection**: Check tensor strides in performance-critical paths before kernel calls.
- **Copy Budgeting**: Use contiguous conversion only where kernel benefit exceeds copy overhead.
- **Pipeline Design**: Minimize unnecessary transpose and slicing patterns that break contiguity.
Tensor contiguity is **a practical performance and correctness factor in tensor programs** - managing contiguous layout intentionally avoids hidden copies and unlocks faster operator paths.