Highlights:
- Bug fixes
- GUI
- Support "ti.GUI(fast_gui=True)" for zero-copy while gui.set_image(img) (#1922) (by 彭于斌)
- Metal backend
- Support ti.block_dim() and ti.cfg.saturating_grid_dim (#1947) (by Ye Kuang)
- Performance improvements
- Support thread local storage for reduction in struct-fors (#1941) (by Yuanming Hu)
Full changelog:
- [Bug] [lang] Fix error when subscripting a dict (#1950) (by 彭于斌)
- [refactor] Add format_error_message() method (#1955) (by Ye Kuang)
- [async] Use llvm::SmallVector/llvm:SmallSet for latest state readers (#1951) (by Ye Kuang)
- [metal] Support TLS for struct-for tasks (#1949) (by Ye Kuang)
- [Metal] Support ti.block_dim() and ti.cfg.saturating_grid_dim (#1947) (by Ye Kuang)
- [type] Add basic implementations of VectorType and PointerType (#1948) (by Yuanming Hu)
- [refactor] Move OffloadedStmt::TaskType to a separate file (#1946) (by xumingkuan)
- [Bug] [lang] "ext_arr.shape" should return "ti.Expr" instead of "ti.core.Expr" (#1939) (by 彭于斌)
- [Perf] Support thread local storage for reduction in struct-fors (#1941) (by Yuanming Hu)
- [async] Do not keep latest state readers in SFG (#1945) (by xumingkuan)
- [refactor] VectorType -> LegacyVectorType (#1943) (by Taichi Gardener)
- [refactor] Remove obsolete AsyncEngine::fuse() (#1944) (by Taichi Gardener)
- [type] Initial TypeFactory class (#1942) (by Yuanming Hu)
- [GUI] [linux] Support "ti.GUI(fast_gui=True)" for zero-copy while gui.set_image(img) (#1922) (by 彭于斌)
- [misc] Add misc/fetch_active_contributor.py (#1938) (by Yuanming Hu)