The Taichi Programming Language: A Hands-on Tutorial

Abstract

The slow down of Moore’s law and the need for high performance in graphics applications have put huge engineering pressure on researchers and developers. We introduce Taichi, a new programming language designed for performance-aware computer graphics developers. Taichi was designed with productivity and portability in mind: Taichi programmers code in a Python-like syntax, and then the Taichi compiler emits high-performance executable kernels on CPUs (e.g., x64, ARM64) and GPUs (e.g., CUDA, Apple Metal, and OpenGL).This course serves as a hands-on tutorial on this new language, systematically covering Taichi concepts such as its basic syntax, defining data structures, writing high-performance Taichi kernels, differentiable programming, and debugging. We also talk about programming tools to improve the reusability of Taichi programs. We hope Taichi and this one-hour course can reduce the engineering burden on graphics beginners, as well as experienced high-performance graphics practitioners.

Type
Publication
SIGGRAPH 2020 Courses
Yuanming Hu
Yuanming Hu

MIT CSAIL Ph.D. student in computer graphics. BDFL of Taichi.