Skip to content

Commit 95520fe

Browse files
[Doc] Update README (#617)
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent b5fb5db commit 95520fe

1 file changed

Lines changed: 25 additions & 37 deletions

File tree

README.md

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -25,59 +25,47 @@ This project is now fully independent and does not aim to maintain backward comp
2525

2626
While the repository still resembles upstream in structure, major changes include:
2727

28-
### Modernized infrastructure
28+
### Platform support
2929

30-
* Revamped CI
31-
* Support for Python 3.10–3.13
32-
* Support for macOS up to 15
33-
* Significantly improved reliability (≥90% CI success on correct code)
30+
* LLVM 22, ARM (aarch64) support
3431

35-
### Structural improvements
36-
37-
* Added `dataclasses.dataclass` structs:
32+
### CI
3833

39-
* Work with both ndarrays and fields
40-
* Can be passed into child `ti.func` functions
41-
* Can be nested
42-
* No kernel runtime overhead (kernels see only underlying arrays)
34+
* Kernel-level [code coverage](https://genesis-embodied-ai.github.io/quadrants/user_guide/kernel_coverage.html) — device-side branch coverage in standard `coverage.py` format, integrated with pytest-cov
35+
* AI-driven checks for line wrapping, deleted comments, test coverage, and feature factorization
4336

44-
### Removed components
37+
### Structural improvements
4538

46-
To focus the compiler and reduce maintenance burden, we removed:
39+
* `dataclasses.dataclass` structs — work with ndarrays and fields, nestable, passable to `qd.func`, zero kernel-runtime overhead
40+
* [`qd.Tensor`](https://genesis-embodied-ai.github.io/quadrants/user_guide/tensor.html) — unified API over fields and ndarrays with per-tensor layout control, pickle support, and a `backend=` switch
41+
* [`BufferView`](https://genesis-embodied-ai.github.io/quadrants/user_guide/buffer_view.html) — safe sub-range ndarray access with bounds checking in debug mode
4742

48-
* GUI / GGUI
49-
* C-API
50-
* AOT
51-
* DX11 / DX12
52-
* iOS / Android
53-
* OpenGL / GLES
54-
* argpack
55-
* CLI
43+
### Removed components
5644

57-
### Performance improvements
45+
To focus the compiler and reduce maintenance burden, we removed: GUI/GGUI, C-API, AOT, DX11/DX12, iOS/Android, OpenGL/GLES, argpack, CLI.
5846

59-
#### Reduced launch latency
47+
### Performance
6048

61-
* Release 4.0.0 improved non-batched ndarray CPU performance by **4.5×** in Genesis benchmarks.
62-
* Release 3.2.0 improved ndarray performance from **11× slower than fields** to **1.8× slower** (on a 5090 GPU, Genesis benchmark).
49+
* **Reduced launch latency** — ndarray CPU performance improved **4.5×**; ndarray GPU performance went from 11× slower than fields to ~30% slower (5090 GPU, Genesis benchmark)
50+
* **[Fastcache](https://genesis-embodied-ai.github.io/quadrants/user_guide/fastcache.html)** — opt-in source-level cache (`@qd.kernel(fastcache=True)`) that bypasses front-end AST parsing; reduces warm-cache kernel load from **7.2 s → 0.3 s** on Genesis benchmarks
51+
* **[GPU Graphs](https://genesis-embodied-ai.github.io/quadrants/user_guide/graph.html)**`@qd.kernel(graph=True)` captures kernel sequences into a graph; `qd.graph_do_while` runs GPU-side iteration loops (hardware conditional nodes on CUDA SM 9.0+)
52+
* **[perf_dispatch](https://genesis-embodied-ai.github.io/quadrants/user_guide/perf_dispatch.html)** — auto-benchmarks multiple kernel implementations and selects the fastest at runtime
53+
* **[Zero-copy interop](https://genesis-embodied-ai.github.io/quadrants/user_guide/interop.html)**`to_torch(copy=False)` / `to_numpy(copy=False)` via DLPack on CUDA, CPU, AMDGPU, and Metal; direct torch tensor pass-through into kernels
6354

64-
#### Reduced warm-cache latency
55+
### SIMT primitives
6556

66-
On Genesis simulator (Linux + NVIDIA 5090):
57+
* **[Tile16x16](https://genesis-embodied-ai.github.io/quadrants/user_guide/tile16.html)** — register-resident 16×16 matrix tiles with Cholesky, triangular solve, and rank-1 updates; 5× faster than shared-memory baselines on blocked linear algebra
58+
* **[Subgroup ops](https://genesis-embodied-ai.github.io/quadrants/user_guide/subgroup.html)** — cross-platform `shuffle`, `shuffle_down`, `reduce_add`, `reduce_all_add` across CUDA, AMDGPU, Metal and Vulkan
6759

68-
* `single_franka_envs.py` cache load time reduced from **7.2s → 0.3s**
60+
### Autodiff
6961

70-
#### Zero-copy Torch interop
62+
* [**Autodiff with dynamic loops**](https://genesis-embodied-ai.github.io/quadrants/user_guide/autodiff.html#autodiff-with-dynamic-loops) — computes the gradient of any kernel transparently using reverse-mode differentiation and runtime-based memory allocation
63+
* Forward-mode AD, custom gradients (`@qd.ad.grad_replaced`), `qd.ad.Tape`
7164

72-
* Added `to_dlpack`
73-
* Enables zero-copy memory sharing between PyTorch and Quadrants
74-
* Avoids kernel-based accessors
75-
* Significantly improves performance
7665

77-
### Compiler upgrades
66+
### Debugging & development
7867

79-
* Upgraded to LLVM 22
80-
* Enabled ARM support
68+
* **[Python backend](https://genesis-embodied-ai.github.io/quadrants/user_guide/python_backend.html)**`qd.init(qd.python)` interprets kernels as plain Python so they can be stepped through in a standard Python debugger
8169

8270
---
8371

0 commit comments

Comments
 (0)