You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-37Lines changed: 25 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,59 +25,47 @@ This project is now fully independent and does not aim to maintain backward comp
25
25
26
26
While the repository still resembles upstream in structure, major changes include:
27
27
28
-
### Modernized infrastructure
28
+
### Platform support
29
29
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
34
31
35
-
### Structural improvements
36
-
37
-
* Added `dataclasses.dataclass` structs:
32
+
### CI
38
33
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
43
36
44
-
### Removed components
37
+
### Structural improvements
45
38
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
47
42
48
-
* GUI / GGUI
49
-
* C-API
50
-
* AOT
51
-
* DX11 / DX12
52
-
* iOS / Android
53
-
* OpenGL / GLES
54
-
* argpack
55
-
* CLI
43
+
### Removed components
56
44
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.
58
46
59
-
#### Reduced launch latency
47
+
###Performance
60
48
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
63
54
64
-
#### Reduced warm-cache latency
55
+
###SIMT primitives
65
56
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
67
59
68
-
*`single_franka_envs.py` cache load time reduced from **7.2s → 0.3s**
60
+
### Autodiff
69
61
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
* Enables zero-copy memory sharing between PyTorch and Quadrants
74
-
* Avoids kernel-based accessors
75
-
* Significantly improves performance
76
65
77
-
### Compiler upgrades
66
+
### Debugging & development
78
67
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
0 commit comments