📌 Highlights
- Upgrade to the latest version:
pip install taichi==1.1.3
- MeshTaichi, a compiler developed by Taichi researchers, accelerates mesh-based operations.
- Open up new possibilities with Taichi: Use Taichi to accelerate PyTorch and facilitate CFD simulation.
⚙️ Releases & development
Taichi v1.1.3 released
Last month, Taichi launched v1.1.0, which includes long-awaited new features like quantized data types and offline cache. Subsequently, batches of improvements have been made to fix bugs and create a smoother user experience. The latest version 1.1.3 was released not long ago with minor yet meaningful changes. For example, new texture interfaces were added to C-API (#5520), and the wrong typecasting in codegen of storing quant floats was fixed (#5818).
See the full changelog and upgrade to v1.1.3!
pip install -U taichi==1.1.3
MeshTaichi makes mesh-based operations more efficient - findings accepted by SIGGRAPH Asia 2022
Mesh-based operations are often slow due to unstructured memory access patterns. Taichi researchers propose a novel mesh compiler, MeshTaichi, which uses an intuitive programming model for handling relations on meshes. Thanks to low-level data access optimizations, MeshTaichi achieves 1.4x to 6x faster performance than the state-of-art compilers and data structures.
View this video to learn more about the features of MeshTaichi and sophisticated demos.
🌟 Featured repos & projects
High-performance SPH simulation implemented with Taichi Lang
erizmr is working on a high-performance SPH (smoothed-particle hydrodynamics) simulator implemented in Taichi. Keeping everything in Python, the creator presents two extraordinary solid-fluid coupling simulations supported by massive parallel GPU computing. Both demos run on Taichi's CUDA backend. More details are available in the project repo.
Armadillo Bath: ~1.74 M particles, ~80 FPS on RTX 3090 GPU, with timestep 4e-4 Dragon Bath: ~420 K particles, ~280 FPS on RTX 3090 GPU, with timestep 4e-4 A 3D blender demo based on Taichi's DEM solver
Taichi provides a minimal DEM (distinct element method) solver template, which leaves plenty of room for adaptation and upgrading. Starting from the template, Linus-Civil implements a blazing fast parallel neighbor search algorithm powered by GPUs and deals with complex geometries for boundary treatment.
Learn about the prerequisites and assumptions of the template and build your own awesome DEM solver!
A two-stream instability simulation implemented with Taichi Lang
Two-stream instability occurs when there are counter-streaming plasma flows consisting of particles with random velocities. JiaoLuhuai adopts the PIC (particle-in-cell) method to simulate this physical phenomenon and presents the results as below. Refer to the source code.
📝 Blogs
Accelerate PyTorch with Taichi
Having explained the major differences in the design philosophies and data containers between Taichi and PyTorch, Ailing Zhang takes a step further and illustrates how to get the best of both worlds with two real-life scenarios: data preprocessing and customization of high-performance ML operators. Zhang co-authored this blog with Haidong Lan, and they provide a detailed performance comparison before and after using Taichi. See the full text.
Can Taichi play a role in CFD?
The collection of CFD projects facilitated by Taichi is enlarging. However, many users still have no clue how a programming language designed for computer graphics can achieve high-performance computation and even write CFD programs directly. To demonstrate that Taichi can contribute to CFD simulations, Qian Bao explains what a typical CFD project entails and how Taichi meets the needs. To put it simply, Taichi helps in three respects:
- Taichi's data containers make it intuitive to describe a flow field.
- Taichi's automatic parallelization mechanism significantly saves compute time.
- Taichi's built-in GUI system offers a convenient visualization solution for tracking fluid dynamics with only a few lines of code.
🗓 Events
Taichi's Numerical Simulation SIG (Special Interest Group) open to external developers!
We have created this dedicated space for anyone interested in using Taichi for numerical simulation. Group members can communicate with each other, have their questions answered by internal engineers promptly, and forge something incredible of their own. You can visit our Computational Fluid Dynamics repo to check what Taichi is capable of.
To get a place in our SIG, join Taichi Community on Slack and then search for the channel #sig-numerical-simulation. We hold regular sharing sessions with group members. If you are interested in becoming a lecturer, join the SIG and contact the group administrator; you will be rewarded with a fulfilling experience and nice souvenirs!
🎉 Community contribution
- Hanke98: Support basic sparse matrix operations on GPU (#6082)
- lucifer1004: Change deprecated
make_camera()
toCamera()
(#6009)
🧑💻 Become a contributor!
Your contribution is indispensable to the prosperity of the Taichi community. Following are some useful references.
Information about what to contribute and how to contribute to Taichi.
Identify untaken, ongoing, closed, or fixed issues at a glance.
Our global forum for discussions about our features, bugs, roadmaps, and more.
A great way to start contributing to Taichi is to pick up an issue tagged with good first issue (easy to start with) or with welcome contribution (slightly more challenging).
A curated list of awesome Taichi applications and resources.
See you in October👋. Until then, stay in the loop!