Taichi: A Language for High-Performance Computation on Spatially Sparse Data Structures
, MIT CSAIL
Date: Monday, December 07, 2020
Time: 2:00 PM to 3:00 PM Note: all times are in the Eastern Time Zone
Location: https://mit.zoom.us/meeting/register/tJUrdOqopj8uHdO4gUyVMnfglOFEqIye_Je0 (Registration required, if you haven't registered for this series before)
Event Type: Seminar
Host: Julian Shun, MIT CSAIL
Contact: Julian Shun, firstname.lastname@example.org, email@example.com
Relevant URL: http://fast-code.csail.mit.edu/
Speaker URL: https://yuanming.taichi.graphics
firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com
TALK: Taichi: A Language for High-Performance Computation on Spatially Sparse Data Structures
Abstract: 3D visual computing data are often spatially sparse. To exploit such sparsity, people have developed hierarchical sparse data structures, such as multilevel sparse voxel grids, particles, and 3D hash tables. However, developing and using these high-performance sparse data structures is challenging, due to their intrinsic complexity and overhead. We propose Taichi, a new data-oriented programming language for efficiently authoring, accessing, and maintaining such data structures. The language offers a high-level, data structure-agnostic interface for writing computation code. The user independently specifies the data structure. We provide several elementary components with different sparsity properties that can be arbitrarily composed to create a wide range of multi-level sparse data structures. This decoupling of data structures from computation makes it easy to experiment with different data structures without changing computation code, and allows users to write computation as if they are working with a dense array. Our compiler then uses the semantics of the data structure and index analysis to automatically optimize for locality, remove redundant operations for coherent accesses, maintain sparsity and memory allocations, and generate efficient parallel and vectorized instructions for CPUs and GPUs. Our approach yields competitive performance on common computational kernels such as stencil applications, neighbor lookups, and particle scattering. We demonstrate our language by implementing simulation, rendering, and vision tasks including a material point method simulation, finite element analysis, a multigrid Poisson solver for pressure projection, volumetric path tracing, and 3D convolution on sparse grids. Our computation-data structure decoupling allows us to quickly experiment with different data arrangements, and to develop high-performance data structures tailored for specific computational tasks. With 1/10th as many lines of code, we achieve 4.55x higher performance on average, compared to hand-optimized reference implementations.
We will also briefly cover recent developments on Taichi, including its differentiable programming support (DiffTaichi, ICLR 2020) and new frontend/backends.
Spatially sparse computation: https://yuanming.taichi.graphics/publication/2019-taichi/
Differentiable programming: https://yuanming.taichi.graphics/publication/2020-difftaichi/
Life of a Taichi kernel: https://yuanming.taichi.graphics/publication/2020-life-of-kernel/
Bio: Yuanming Hu (https://yuanming.taichi.graphics) is a 4th year Ph.D. student at MIT CSAIL with Fredo Durand and Bill Freeman. His research is focused on compilers and high-performance physical simulation, with applications in graphics and AI. He leads the design and implementation of the Taichi programming language.
IMPORTANT NOTE FOR ATTENDEES: If you have already registered for the Fast Code Seminars on Zoom since July 27, 2020, please use the Zoom link that you have received. This link will stay the same for subsequent Fast Code seminars this semester. Zoom does not recognize a second registration, and will not send out the link a second time. If you have any problems with registration, please contact firstname.lastname@example.org and email@example.com by 1:30pm on the day of the seminar, so that we can try to resolve it before the seminar begins.
AI & Machine Learning, Graphics & Vision, Programming Languages & Software
Created by Julian J. Shun at Monday, November 30, 2020 at 5:08 PM.