taichi
taichi copied to clipboard
AOT for the LLVM backend
- [x] Make CPU backend work
- [x] Support arg-less kernels
- [x] Support scalar + Ndarray args
- [x] Split LlvmProgramImpl into compile-time & runtime parts to form Runtime API
- [x] Make CUDA backend work
- [x] Support arg-less kernels
- [x] Support scalar + Ndarray args
- [ ] Provide public interfaces
- [x] Interface with Compute Graph
- [ ] Interface with C-API
- [ ] Improvements & Demo
- [ ] Dense/Pointer SNodes Demo
- [ ] Support more flexible snode_id, snode_tree_id (determined at runtime)
- [ ] Implement SNodeTreeType: https://github.com/taichi-dev/taichi/blob/master/docs/rfcs/20220413-aot-for-all-snode.md
- [ ] Support memory deallocation for CPU backend. Merge
Device::allocate_memory_runtime()withDevice::allocate_memory() - [ ] Verify SNode GC works for Field AOT.
- [ ] Serialize/deserialize Ndarray/SNodeTree buffers: https://github.com/taichi-dev/taichi/issues/5428