Skip to main content

LinearTile: Transformers → Ψ(N) — O(N) linear attention with mathematical Psi guarantee

Project description

LinearTile ⚡

Transformers → Ψ(N)

LinearTile is a lightweight, pure PyTorch implementation of linear attention that reduces transformer complexity from O(N²) to O(N) — with a mathematical guarantee of pipeline stability via Psi Notation (Ψ(N)).

PyTorch License Python 3.8+


🚀 Quick Start

import torch
from lineartile import LinearTileAttention

# Create model
model = LinearTileAttention(d_model=512, num_heads=8)

# Forward pass — O(N) complexity!
x = torch.randn(2, 4096, 512)
out = model(x)

print(out.shape)  # torch.Size([2, 4096, 512])

✨ Features

Feature

1 O(N) Complexity — Linear attention, not quadratic 2 Causal Masking — Without O(N²) memory 3 Multi-GPU & Distributed — Easy sharding 4 Variable Sequence Length — No padding waste 5 Mixed Precision — FP16/BF16/FP8 support 6 KV Cache Reuse — Faster inference 7 Gradient Checkpointing — Memory efficient training 8 Sliding Window Attention — Local context 9 Grouped Query Attention (GQA) — Llama 3 ready 10 Automatic Autotune — No manual tuning 11 Flash Decoding — 10x faster generation 12 Quantization Aware Training (QAT) — INT8 ready 13 Sparse Attention (Top-k) — Focus on important tokens 14 Memory-Efficient Checkpointing — Train on 8GB GPU 15 Custom Kernel Plugins — Replace φ kernel freely 16 Psi Guarantee (Ψ(N)) — Mathematical stability proof


📐 The Psi Guarantee (Ψ(N))

LinearTile doesn't just claim O(N) — it proves it.

For a 3-layer pipeline (Preprocessing → Attention → Postprocessing):

(F₁, F₂, F₃) ∈ Ψ(N)

This guarantees:

· F₁(N) ≤ F₂(N) ≤ F₃(N) for all N ≥ N₀ · No asymptotic bottlenecks between layers · Stable, predictable performance at scale


📦 Installation

From Source

git clone https://github.com/Natarizki/lineartile.git
cd lineartile
pip install -e .

🧪 Run Tests

python -m lineartile.tests.test_forward
python -m lineartile.tests.test_backward
python -m lineartile.tests.test_psi
python -m lineartile.tests.test_rope

📊 Performance

Sequence Length LinearTile (O(N)) Standard Attention (O(N²))
1,024 ~8 ms ~12 ms
4,096 ~36 ms ~190 ms
16,384 ~160 ms ~3.2 s
65,536 ~650 ms OOM

Measured on PyTorch 2.11.0, CPU backend


🔬 How It Works

Standard Attention (O(N²)):

O = softmax(QKᵀ) · V

LinearTile (O(N)):

O = φ(Q) · (φ(K)ᵀ · V)

where φ(x) = ELU(x) + 1

The key insight: swap multiplication order — compute (Kᵀ · V) first.


🗂️ Project Structure

lineartile/
├── core/
│   ├── kernels/
│   │   ├── forward.py
│   │   ├── backward.py
│   │   ├── kv_cache.py
│   │   ├── masking.py
│   │   └── legacy.py
│   ├── config.py
│   ├── constants.py
│   ├── dtypes.py
│   └── mixed_precision.py
├── api/
│   ├── attention.py
│   ├── functional.py
│   └── module.py
├── utils/
│   ├── benchmark.py
│   ├── psi_guarantee.py
│   ├── rope.py
│   └── test_helpers.py
├── tests/
│   ├── test_forward.py
│   ├── test_backward.py
│   ├── test_psi.py
│   └── test_rope.py
├── __init__.py
├── version.py
├── setup.py
├── pyproject.toml
├── LICENSE
└── README.md

30 files — small, focused, powerful.


📚 Why LinearTile?

Aspect Flash Attention LinearTile
Complexity O(N²) compute O(N) compute
Memory O(N) O(N)
Files 500+ 30
Triton required ✅ Yes ❌ No
Runs on Android ❌ Hard ✅ Yes
Mathematical guarantee ❌ No ✅ Ψ(N)
Pure PyTorch ❌ No ✅ Yes

📖 Reference

· Psi Notation: github.com/Natarizki/psi-notation · Linear Attention: Transformers are RNNs (Katharopoulos et al., 2020) · Flash Attention: Fast and Memory-Efficient Exact Attention (Dao et al., 2022)


📄 License

Copyright © 2026 Natarizki

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


🌟 Star the Project

If you found this useful, please ⭐ star the repository on GitHub!


LinearTile: Transformers → Ψ(N). Small. Fast. Proven.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lineartile-1.0.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lineartile-1.0.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file lineartile-1.0.0.tar.gz.

File metadata

  • Download URL: lineartile-1.0.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for lineartile-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3f99085daed01d312134679000d790ce8abb97dc6a33cefb8aee1b0e0e06b01d
MD5 24494ddfac46e709bbdf9c750976339f
BLAKE2b-256 4b75371fc66774116596467412d275170957c604768136e4fc984584e960f121

See more details on using hashes here.

File details

Details for the file lineartile-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: lineartile-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for lineartile-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d8c76230dc4bcef2dbf520f5665ca1e3a8241a9da62761469f8239c3ce4a0939
MD5 f06ab0b137acd08acbb0206c1a45c3e6
BLAKE2b-256 5a2f672a28b91b1a5ebda3dc3981b9a0f5dba4b95d019bd9abb9f8d2cfb939db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page