diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml
index 3da8e6242..ae0a1c276 100644
--- a/.github/workflows/frontend.yml
+++ b/.github/workflows/frontend.yml
@@ -21,7 +21,7 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
- path: 'triton_viz'
+ path: 'tilelens'
- name: Set up Node
uses: actions/setup-node@v4
@@ -30,6 +30,6 @@ jobs:
- name: Run frontend tests
run: |
- cd triton_viz
+ cd tilelens
npm ci
npm run test:frontend
diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml
index 88d8482cd..1919ccd17 100644
--- a/.github/workflows/python-app.yml
+++ b/.github/workflows/python-app.yml
@@ -25,7 +25,7 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
- path: 'triton_viz'
+ path: 'tilelens'
- name: Set up Python 3.12
uses: actions/setup-python@v3
@@ -39,46 +39,46 @@ jobs:
- name: Lint with pre-commit
run: |
- cd triton_viz
+ cd tilelens
pip install pre-commit
pre-commit run --all-files
- name: Install Dependencies
run: |
- cd triton_viz
+ cd tilelens
uv sync --extra test
- name: Upgrade Triton to latest from main
run: |
- cd triton_viz
+ cd tilelens
uv pip install --pre -U triton
uv pip install "git+https://github.com/triton-lang/triton.git#subdirectory=python/triton_kernels"
- name: Run frontend tests
run: |
- cd triton_viz
+ cd tilelens
npm install
npm run test:frontend
- name: Test with pytest
run: |
- cd triton_viz
+ cd tilelens
uv run pytest tests -n auto --ignore=tests/end_to_end/test_triton_kernels.py
- - name: Install Triton-Viz with NKI extras
+ - name: Install TileLens with NKI extras
run: |
- cd triton_viz
+ cd tilelens
uv sync --extra test --extra nki
- name: Upgrade Triton to latest from main (NKI)
run: |
- cd triton_viz
+ cd tilelens
uv pip install --pre -U triton
uv pip install "git+https://github.com/triton-lang/triton.git#subdirectory=python/triton_kernels"
- name: Run full (Triton + NKI) pytest suite
run: |
- cd triton_viz
+ cd tilelens
uv run pytest tests -m "" -n auto --ignore=tests/end_to_end/test_triton_kernels.py
test-pip-install:
@@ -93,7 +93,22 @@ jobs:
python-version: '3.12'
- name: Install with pip
- run: pip install -e ".[test]"
+ run: pip install ".[test]"
- name: Verify installation
- run: python -c "import triton_viz; print(triton_viz.__version__)"
+ working-directory: ${{ runner.temp }}
+ run: |
+ python - <<'PY'
+ import tilelens
+ import triton_viz
+ from tilelens.clients import Sanitizer
+ from triton_viz.clients import Sanitizer as LegacySanitizer
+ from tilelens.core.trace import launches
+ from triton_viz.core.trace import launches as legacy_launches
+
+ assert triton_viz.trace is tilelens.trace
+ assert triton_viz.config is tilelens.config
+ assert LegacySanitizer is Sanitizer
+ assert legacy_launches is launches
+ print(tilelens.__version__)
+ PY
diff --git a/.gitignore b/.gitignore
index 3688aff7c..7400c3382 100644
--- a/.gitignore
+++ b/.gitignore
@@ -169,6 +169,6 @@ uv.lock
benchmarks/*.json
# Auto-generated version file
-triton_viz/version.py
+tilelens/version.py
.subagents/
subagent*.txt
diff --git a/AGENTS.md b/AGENTS.md
index c6af6c4ab..dc61bac8f 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -2,7 +2,7 @@
## Project Structure & Module Organization
-Triton-Viz is a Python package with a TypeScript web UI. Core code lives in `triton_viz/`: `core/` handles tracing and client lifecycle, `core/frontend/` owns DSL operation adapters, runtime patching, and frontend-local AST rewrites, `core/simulation/` contains NKI simulation runtimes, `clients/` contains visualizer/profiler/sanitizer logic, and `visualizer/` covers visualizer APIs. Web UI source is in `frontend/`; built assets are copied into `triton_viz/static/` and `triton_viz/templates/`. Tests live in `tests/unit/`, `tests/end_to_end/`, `tests/frontend/`, and `tests/nki/`. Examples are in `examples/`; site docs are in `docs/`.
+TileLens is a Python package with a TypeScript web UI. Core code lives in `tilelens/`: `core/` handles tracing and client lifecycle, `core/frontend/` owns DSL operation adapters, runtime patching, and frontend-local AST rewrites, `core/simulation/` contains NKI simulation runtimes, `clients/` contains visualizer/profiler/sanitizer logic, and `visualizer/` covers visualizer APIs. Web UI source is in `frontend/`; built assets are copied into `tilelens/static/` and `tilelens/templates/`. Tests live in `tests/unit/`, `tests/end_to_end/`, `tests/frontend/`, and `tests/nki/`. Examples are in `examples/`; site docs are in `docs/`.
## Build, Test, and Development Commands
@@ -28,4 +28,4 @@ Recent commits use concise imperative summaries, often with prefixes such as `[F
## Security & Configuration Tips
-Do not commit local traces, credentials, or generated debug artifacts. Runtime behavior is controlled by environment variables such as `TRITON_VIZ_VERBOSE`, `TRITON_VIZ_PORT`, `ENABLE_SANITIZER`, `ENABLE_PROFILER`, and `SANITIZER_ENABLE_FAKE_TENSOR`; document any new variables in `README.md`.
+Do not commit local traces, credentials, or generated debug artifacts. Runtime behavior is controlled by environment variables such as `TILELENS_VERBOSE`, `TILELENS_PORT`, `ENABLE_SANITIZER`, `ENABLE_PROFILER`, and `SANITIZER_ENABLE_FAKE_TENSOR`; document any new variables in `README.md`.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7f1794039..74a6aad5c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,11 +1,11 @@
-# Contributing to Triton-Viz
+# Contributing to TileLens
## Quick Start
```bash
# Clone repo
-git clone https://github.com/Deep-Learning-Profiling-Tools/triton-viz.git
-cd triton-viz
+git clone https://github.com/Deep-Learning-Profiling-Tools/tilelens.git
+cd tilelens
# Setup dev environment and install dependencies
uv sync --extra test # append "--extra nki" if developing NKI functionality
@@ -23,9 +23,9 @@ npm run test:frontend # test the web UI (if working on the visualizer
```
frontend/ # TypeScript web UI source code
-examples/ # Entry points for new users to try out triton-viz functionality
-docs/ # triton-viz website
-triton_viz/
+examples/ # Entry points for new users to try out tilelens functionality
+docs/ # tilelens website
+tilelens/
core/frontend/ # DSL operation adapters and runtime patching
core/simulation/ # NKI simulation runtimes
clients/ # Visualizer, profiler, and sanitizer clients
diff --git a/README.md b/README.md
index 1cbb7ed0d..0efc0527e 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-# Triton-Viz: A Visualization Toolkit for programming with Triton
+# TileLens: A Visualization Toolkit for programming with Triton
pip install triton-viz
- pip install triton-viz[nki] --extra-index-url https://pip.repos.neuron.amazonaws.com
- pip install "tilelens[nki]" --extra-index-url https://pip.repos.neuron.amazonaws.com
+
Note: A browser with WebGL/OpenGL enabled is required (standard in modern browsers).
- See README.md for development installs, web UI builds, DSL frontend selection, and full documentation.
+ See README.md for development installs, web UI builds, DSL frontend selection, and full documentation.
import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("tracer")
+@tilelens.trace("tracer")
@triton.jit
def add_3d_slices_kernel(
input_ptr1,
@@ -689,7 +689,7 @@ Analysis Clients
BLOCK_SIZE_Y=BLOCK_SIZE_Y,
BLOCK_SIZE_Z=BLOCK_SIZE_Z,
)
- triton_viz.launch(share=False, port=5001)
+ tilelens.launch(share=False, port=5001)
@@ -713,14 +713,14 @@ import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
BLOCK = 1024
SHAPE = (2, 3, 4, 3, 4, 2, 4, 2, 3)
-@triton_viz.trace("tracer")
+@tilelens.trace("tracer")
@triton.jit
def copy_9d_kernel(x_ptr, y_ptr, n_elements, BLOCK: tl.constexpr):
pid = tl.program_id(0)
@@ -736,7 +736,7 @@ Analysis Clients
n_elements = x.numel()
grid = (triton.cdiv(n_elements, BLOCK),)
copy_9d_kernel[grid](x, y, n_elements, BLOCK=BLOCK)
- triton_viz.launch(share=False, port=5001)
+ tilelens.launch(share=False, port=5001)
@@ -760,10 +760,10 @@ import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("tracer")
+@tilelens.trace("tracer")
@triton.jit
def add_3d_slices_kernel(
input_ptr1,
@@ -812,7 +812,7 @@ Analysis Clients
BLOCK_SIZE_Y=BLOCK_SIZE_Y,
BLOCK_SIZE_Z=BLOCK_SIZE_Z,
)
- triton_viz.launch(share=False, port=5001)
+ tilelens.launch(share=False, port=5001)
@@ -836,10 +836,10 @@ import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("tracer")
+@tilelens.trace("tracer")
@triton.jit
def matmul_kernel(
a_ptr,
@@ -888,7 +888,7 @@ Analysis Clients
BLOCK_N=BLOCK_N,
BLOCK_K=BLOCK_K,
)
- triton_viz.launch(share=False, port=5001)
+ tilelens.launch(share=False, port=5001)
@@ -912,10 +912,10 @@ import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("tracer")
+@tilelens.trace("tracer")
@triton.jit
def matmul_kernel(
a_ptr,
@@ -964,7 +964,7 @@ Analysis Clients
BLOCK_N=BLOCK_N,
BLOCK_K=BLOCK_K,
)
- triton_viz.launch(share=False, port=5001)
+ tilelens.launch(share=False, port=5001)
@@ -988,10 +988,10 @@ import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("tracer")
+@tilelens.trace("tracer")
@triton.jit
def matmul_kernel(
a_ptr,
@@ -1040,7 +1040,7 @@ Analysis Clients
BLOCK_N=BLOCK_N,
BLOCK_K=BLOCK_K,
)
- triton_viz.launch(share=False, port=5001)
+ tilelens.launch(share=False, port=5001)
@@ -1066,10 +1066,10 @@ import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("profiler")
+@tilelens.trace("profiler")
@triton.jit
def simple_kernel(
x_ptr,
@@ -1164,10 +1164,10 @@ Analysis Clients
import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("sanitizer")
+@tilelens.trace("sanitizer")
@triton.jit
def gemm_kernel(
A, B, C, M: tl.constexpr, N: tl.constexpr, K: tl.constexpr, TILE_SIZE: tl.constexpr
@@ -1225,10 +1225,10 @@ Analysis Clients
import torch
import triton
import triton.language as tl
-import triton_viz
+import tilelens
-@triton_viz.trace("sanitizer")
+@tilelens.trace("sanitizer")
@triton.jit
def gemm_kernel(
A, B, C, M: tl.constexpr, N: tl.constexpr, K: tl.constexpr, TILE_SIZE: tl.constexpr
@@ -1274,7 +1274,7 @@ Analysis Clients
TERMINAL OUTPUT
🚨 ILLEGAL MEMORY ACCESS DETECTED 🚨
━━━ Code Context ━━━
-File: triton-viz/examples/sanitizer/gemm_oob.py
+File: tilelens/examples/sanitizer/gemm_oob.py
Function: gemm_kernel
Line 25:
22 │ for k_block in range(K // TILE_SIZE):
@@ -1385,27 +1385,27 @@ Analysis Clients
Sponsored by
- Special thanks to AMD for supporting Triton-Viz.
+ Special thanks to AMD for supporting TileLens.
Ready to visualize your kernels?
- Get started with Triton-Viz in minutes. No GPU required for development.
+ Get started with TileLens in minutes. No GPU required for development.
@@ -1456,12 +1456,12 @@ Ready to visualize your kernels?
}
return highlighted;
}
- function highlightTritonVizLines() {
+ function highlightTileLensLines() {
const patterns = [
- 'import triton_viz',
- 'from triton_viz',
- '@triton_viz.trace',
- 'triton_viz.launch',
+ 'import tilelens',
+ 'from tilelens',
+ '@tilelens.trace',
+ 'tilelens.launch',
];
document.querySelectorAll('pre code.language-python').forEach(code => {
const lines = code.textContent.split('\n');
@@ -1478,7 +1478,7 @@ Ready to visualize your kernels?
code.innerHTML = updated.join('\n');
});
}
- highlightTritonVizLines();
+ highlightTileLensLines();