Highlights:
- Automatic differentiation
- Refactor AutoDiff system and support for loops that carry mutable states (#1285) (by Yuanming Hu)
- Bug fixes
- Fix a bug causing gradients to be NaNs (#1284) (by xumingkuan)
- Command line interface
- Toggle torch import by env var: TI_ENABLE_TORCH (#1268) (by 彭于斌)
- CUDA backend
- Support "ti.cache_read_only" (#1276) (by Yuanming Hu)
- Examples
- Improve examples/odop_solar.py visual & comments (#1253) (by 彭于斌)
- GUI
- Fix "gui.set_image" not accept multi-channel scalar tensors (#1264) (by 彭于斌)
- Metal backend
- Add AD stack to support the local mutables when using AutoDiff (#1257) (by Ye Kuang)
- IR optimization passes
Full changelog:
- [bug] Fix stochastic failure of test_loop_grad on Windows (#1291) (by Yuanming Hu)
- [AutoDiff] Refactor AutoDiff system and support for loops that carry mutable states (#1285) (by Yuanming Hu)
- [Bug] [opt] Fix a bug causing gradients to be NaNs (#1284) (by xumingkuan)
- [opt] Fix CFGNode::store_to_load_forwarding data type (#1283) (by Yuanming Hu)
- [Opt] [ir] [refactor] Remove exceptions from demote_atomics pass (#1272) (by Xuanda Yang)
- [Example] Improve examples/odop_solar.py visual & comments (#1253) (by 彭于斌)
- [lang] [test] Improve code coverage in Matrix (#1275) (by 彭于斌)
- [opt] Do not consider each GlobalPtrStmt as a data source in store forwarding (#1279) (by xumingkuan)
- [CUDA] Support "ti.cache_read_only" (#1276) (by Yuanming Hu)
- [ir] Make pass names appear in correct positions when print_ir=True (#1277) (by xumingkuan)
- [cuda] [bug] Fix CUDA runtime crash (#1271) (by Yuanming Hu)
- [CLI] Toggle torch import by env var: TI_ENABLE_TORCH (#1268) (by 彭于斌)
- [Opt] Store-to-load forwarding with Control-flow graph (#1248) (by xumingkuan)
- [perf] [opt] Better weaken_access pass for sparse cases (#1270) (by Yuanming Hu)
- [Opt] [ir] [refactor] Remove exceptions from DIE pass (#1262) (by Xuanda Yang)
- [Metal] Add AD stack to support the local mutables when using AutoDiff (#1257) (by Ye Kuang)
- [GUI] [bug] Fix "gui.set_image" not accept multi-channel scalar tensors (#1264) (by 彭于斌)