“Playing with Your Data: A High-performance Programming Guide with the Taichi Programming Language” by Liu – ACM SIGGRAPH HISTORY ARCHIVES

“Playing with Your Data: A High-performance Programming Guide with the Taichi Programming Language” by Liu

  • ©

Conference:


Type(s):


Title:

    Playing with Your Data: A High-performance Programming Guide with the Taichi Programming Language

Presenter(s)/Author(s):


Moderator(s):



Abstract:


    The developments in parallel computing architectures have provided more and more computing powers for computer graphics tasks. The increasing computing budgets enable many high-resolution or real-time applications in recent graphics researches. However, producing those high-performance applications is never an easy job. To achieve this, programmers need to parallelize their computational logic to fully utilize the computation power, and have to carefully design their data structures to better exploit the benefit of multi-level cache systems. The Taichi programming language is a domain-specific language for parallel computing. It was designed with productivity and portability in mind: Taichi programmers code in a Python-like syntax, and the Taichi compiler will emit high-performance executable kernels on both CPU (e.g., x64, ARM64) and GPU (e.g., CUDA, Apple Metal, and Vulkan) backends. The previous SIGGRAPH Course covers the basic concepts of Taichi and some of its high-level features, such as differentiable programming and sparse programming, serving as an entry-level tutorial to program parallel applications with concise code. This course provides an advanced programming guide to organizing data for high-performance applications using Taichi. Throughout this 105-minute course, we dig into the structural node (SNode) system in Taichi and exercise different memory layouts for both dense and sparse data structures. We also cover the optimization hints to keep wanted data attributes in shared memory for both structured grids and unstructured meshes. Moreover, we walk through the quantized data types in Taichi, which supports high-resolution simulations with limited memory consumption. Along with the course, we demonstrate various algorithms such as stable fluids, MLS-MPM, and Projective Dynamics implemented in Taichi and play with their underlying data structures. We hope this course will emphasize the importance of data in high-performance computer graphics tasks and reduce the engineering burden of testing different data types and memory layouts from programmers.


ACM Digital Library Publication:



Overview Page:



Submit a story:

If you would like to submit a story about this presentation, please contact us: historyarchives@siggraph.org