# taichi
**Repository Path**: lduml/taichi
## Basic Information
- **Project Name**: taichi
- **Description**: https://github.com/taichi-dev/taichi
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-02-13
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
| **Documentations** | **Chat** | taichi-nightly | taichi-nightly-cuda-10-0 | taichi-nightly-cuda-10-1 |
|:-----|:-----|:----|:----|:----|
| [](http://taichi.readthedocs.io/en/latest/?badge=latest) | [](https://gitter.im/taichi-dev/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | [](https://pepy.tech/project/taichi-nightly/month)| [](https://pepy.tech/project/taichi-nightly-cuda-10-0/month) | [](https://pepy.tech/project/taichi-nightly-cuda-10-1/month) |
```bash
# Python 3.6/3.7 needed
# CPU only. No GPU/CUDA needed. (Linux, OS X and Windows)
python3 -m pip install taichi-nightly
# With GPU (CUDA 10.0) support (Linux only)
python3 -m pip install taichi-nightly-cuda-10-0
# With GPU (CUDA 10.1) support (Linux only)
python3 -m pip install taichi-nightly-cuda-10-1
```
|| **Linux (CUDA)** | **OS X (10.14+)** | **Windows** |
|:------|:-----|:-----|:-----|
|**Build**|[](http://f11.csail.mit.edu:8080/job/taichi/)| [](https://travis-ci.com/taichi-dev/taichi) | [](https://ci.appveyor.com/project/yuanming-hu/taichi/branch/master)|
|**PyPI**|[](https://travis-ci.com/yuanming-hu/taichi-wheels-test)|[](https://travis-ci.com/yuanming-hu/taichi-wheels-test)|[](https://ci.appveyor.com/project/IteratorAdvance/taichi-wheels-test)|
## [Contribution Guidelines](https://taichi.readthedocs.io/en/latest/contributor_guide.html)
## Related papers
- [**(SIGGRAPH Asia 2019) High-Performance Computation on Sparse Data Structures**](http://taichi.graphics/wp-content/uploads/2019/09/taichi_lang.pdf) [[Video]](https://youtu.be/wKw8LMF3Djo) [[BibTex]](https://raw.githubusercontent.com/yuanming-hu/taichi/master/misc/taichi_bibtex.txt)
- by *Yuanming Hu, Tzu-Mao Li, Luke Anderson, Jonathan Ragan-Kelley, and Frédo Durand*
- [**(ICLR 2020) Differentiable Programming for Physical Simulation**](https://arxiv.org/abs/1910.00935) [[Video]](https://www.youtube.com/watch?v=Z1xvAZve9aE) [[BibTex]](https://raw.githubusercontent.com/yuanming-hu/taichi/master/misc/difftaichi_bibtex.txt) [[Code]](https://github.com/yuanming-hu/difftaichi)
- by *Yuanming Hu, Luke Anderson, Tzu-Mao Li, Qi Sun, Nathan Carr, Jonathan Ragan-Kelley, and Frédo Durand*
## Short-term goals
- (Done) Fully implement the LLVM backend to replace the legacy source-to-source C++/CUDA backends (By Dec 2019)
- The only missing features compared to the old source-to-source backends:
- Vectorization on CPUs. Given most users who want performance are using GPUs (CUDA), this is given low priority.
- Automatic shared memory utilization. Postponed until Feb/March 2020.
- (Done) Redesign & reimplement (GPU) memory allocator (by the end of Jan 2020)
- (WIP) Tune the performance of the LLVM backend to match that of the legacy source-to-source backends (Hopefully by mid Feb, 2020. Current progress: setting up/tuning for final benchmarks)
## Updates
- (Feb 6, 2020) v0.4.5 released.
- **`ti.init(arch=..., print_ir=..., default_fp=..., default_ip=...)`** now supported. `ti.cfg.xxx` is deprecated
- **Immediate data layout specification** supported after `ti.init`. No need to wrap data layout definition with `@ti.layout` anymore (unless you intend to do so)
- `ti.is_active`, `ti.deactivate`, `SNode.deactivate_all` supported in the new LLVM x64/CUDA backend. [Example](https://github.com/taichi-dev/taichi/blob/8b575a8ec2d8c7112191eef2a8316b793ba2452d/examples/taichi_sparse.py)
- Experimental [Windows non-UTF-8 path](https://github.com/taichi-dev/taichi/issues/428) fix (by **Yubin Peng [archibate]**)
- `ti.global_var` (which duplicates `ti.var`) is removed
- `ti.Matrix.rotation2d(angle)` added
- (Feb 5, 2020) v0.4.4 released.
- For developers: [ffi-navigator](https://github.com/tqchen/ffi-navigator) support [[doc](https://taichi.readthedocs.io/en/latest/contributor_guide.html#efficient-code-navigation-across-python-c)]. (by **masahi**)
- Fixed `f64` precision support of `sin` and `cos` on CUDA backends (by **Kenneth Lozes [KLozes]**)
- Make Profiler print the arch name in its title (by **Ye Kuang [k-ye]**)
- Tons of invisible contributions by **Ye Kuang [k-ye]**, for the WIP Metal backend
- `Profiler` working on CPU devices. To enable, `ti.cfg.enable_profiler = True`. Call `ti.profiler_print()` to print kernel running times
- General performance improvements
- (Feb 3, 2020) v0.4.3 released.
- `GUI.circles` 2.4x faster
- General performance improvements
- (Feb 2, 2020) v0.4.2 released.
- GUI framerates are now more stable
- Optimized OffloadedRangeFor with const bounds. Light computation programs such as `mpm88.py` is 30% faster on CUDA due to reduced kernel launches
- Optimized CPU parallel range for performance
- (Jan 31, 2020) v0.4.1 released.
- **Fixed an autodiff bug introduced in v0.3.24. Please update if you are using Taichi differentiable programming.**
- Updated `Dockerfile` (by **Shenghang Tsai [jackalcooper]**)
- `pbf2d.py` visualization performance boosted (by **Ye Kuang [k-ye]**)
- Fixed `GlobalTemporaryStmt` codegen
- (Jan 30, 2020) v0.4.0 released.
- Memory allocator redesigned
- Struct-fors with pure dense data structures will be demoted into a range-for, which is faster since no element list generation is needed
- Python 3.5 support is dropped. Please use Python 3.6(pip)/3.7(pip)/3.8(Windows: pip; OS X & Linux: build from source) (by **Chujie Zeng [Psycho7]**)
- `ti.deactivate` now supported on sparse data structures
- `GUI.circles` (batched circle drawing) performance improved by 30x
- Minor bug fixes (by **Yubin Peng [archibate], Ye Kuang [k-ye]**)
- Doc updated
- [Full changelog](changelog.md)