|
1 | 1 | - heading: 2022
|
2 | 2 | pubs:
|
| 3 | + - title: Compilation of Dynamic Sparse Tensor Algebra |
| 4 | + authors: Stephen Chou and Saman Amarasinghe |
| 5 | + venue: OOPSLA 2022 |
| 6 | + is_thesis: false |
| 7 | + paper_link: files/chou-oopsla22-taco-dynamic.pdf |
| 8 | + slide_link: files/amarasinghe-oopsla22-slides.pdf |
| 9 | + abstract: > |
| 10 | + Many applications, from social network graph analytics to control flow analysis, compute on sparse data that evolves over the course of program execution. Such data can be represented as dynamic sparse tensors and efficiently stored in formats (data layouts) that utilize pointer-based data structures like block linked lists, binary search trees, B-trees, and C-trees among others. These specialized formats support fast in-place modification and are thus better suited than traditional, array-based data structures like CSR for storing dynamic sparse tensors. However, different dynamic sparse tensor formats have distinct benefits and drawbacks, and performing different computations on tensors that are stored in different formats can require vastly dissimilar code that are not straightforward to correctly implement and optimize. |
| 11 | + <br><br> |
| 12 | + This paper shows how a compiler can generate efficient code to compute tensor algebra operations on dynamic sparse tensors that may be stored in a wide range of disparate formats. We propose a language for precisely specifying recursive, pointer-based data structures, and we show how this language can express many different dynamic data structures, including all the ones named above as well as many more. We then describe how, given high-level specifications of such dynamic data structures, a compiler can emit code to efficiently access and compute on dynamic sparse tensors that are stored in the aforementioned data structures. |
| 13 | + <br><br> |
| 14 | + We evaluate our technique and find it generates efficient dynamic sparse tensor algebra kernels that have performance comparable to, if not better than, state-of-the-art libraries and frameworks such as PAM, Aspen, STINGER, and Terrace. At the same time, our technique supports a wider range of tensor algebra operations—such as those that simultaneously compute with static and dynamic sparse tensors—than Aspen, STINGER, and Terrace, while also achieving significantly better performance than PAM for those same operations. |
| 15 | + bibtex: > |
| 16 | + @article{chou:2022:dynamic, |
| 17 | + author = {Chou, Stephen and Amarasinghe, Saman}, |
| 18 | + title = {Compilation of Dynamic Sparse Tensor Algebra}, |
| 19 | + year = {2022}, |
| 20 | + issue_date = {October 2022}, |
| 21 | + publisher = {Association for Computing Machinery}, |
| 22 | + address = {New York, NY, USA}, |
| 23 | + volume = {6}, |
| 24 | + number = {OOPSLA2}, |
| 25 | + url = {https://doi.org/10.1145/3563338}, |
| 26 | + doi = {10.1145/3563338}, |
| 27 | + journal = {Proc. ACM Program. Lang.}, |
| 28 | + month = {oct}, |
| 29 | + articleno = {175}, |
| 30 | + numpages = {30}, |
| 31 | + keywords = {dynamic sparse tensors, sparse tensor algebra, sparse tensor formats, pointer-based data structures, sparse tensor algebra compilation, node schema language} |
| 32 | + } |
| 33 | + - title: Format Abstractions for the Compilation of Sparse Tensor Algebra |
| 34 | + authors: Stephen Chou |
| 35 | + venue: PhD Thesis |
| 36 | + is_thesis: true |
| 37 | + paper_link: files/chou-phd-thesis-taco-formats.pdf |
| 38 | + abstract: > |
| 39 | + Tensors are commonly used to represent data in many domains, including data analytics, machine learning, science, and engineering. Many highly-optimized libraries and compilers have been developed for efficiently computing on dense tensors. However, existing libraries and compilers are limited in their ability to support real-world applications that work with sparse tensors, which contain mostly zeros. In particular, there exist countless specialized formats for storing sparse tensors in memory, each suited to specific types of applications and data. Since different formats often use very different data structures to store nonzeros though, computing with sparse tensors that are stored in different formats can require vastly dissimilar code that are all difficult to implement by hand and non-trivial to generate automatically. Existing libraries and compilers must therefore limit the set of computations and formats that they directly support, sacrificing usability and performance as a result. |
| 40 | + <br><br> |
| 41 | + In this dissertation, I describe how to build a compiler that supports efficiently computing on sparse tensors that may be stored in a wide variety of formats. I first show how many commonly-used sparse tensor formats---from array-based formats like CSR, COO, and DIA to formats that store nonzeros using pointer-based data structures like linked lists, BSTs, and C-trees---can all be expressed as compositions of per-dimension formats. I further show how such per-dimension formats can be precisely defined by implementing a common set of abstractions that capture how their underlying data structures store nonzeros in memory and that capture how these data structures can be efficiently accessed or constructed. I then demonstrate how, with such specifications of per-dimension formats at hand, a compiler can generate code to efficiently compute on tensors that are stored in any of the aforementioned---and countless other---formats. We have implemented our technique in the TACO sparse tensor algebra compiler, which is the first compiler to generate code that computes any basic tensor algebra expression with sparse tensors that may be stored in arbitrary formats. Our technique generates code that has performance competitive with, if not better than, equivalent code in hand-optimized libraries and frameworks. |
| 42 | + bibtex: > |
| 43 | + @PhDThesis{chou:2022:phd-thesis, |
| 44 | + title = "Format Abstractions for the Compilation of Sparse Tensor Algebra", |
| 45 | + author = "Stephen Chou", |
| 46 | + month = "Aug", |
| 47 | + year = "2022", |
| 48 | + url = "http://tensor-compiler.org/files/chou-phd-thesis-taco-formats.pdf", |
| 49 | + type = "Ph.D. Thesis", |
| 50 | + address = "Cambridge, MA", |
| 51 | + school = "Massachusetts Institute of Technology", |
| 52 | + } |
3 | 53 | - title: Autoscheduling for Sparse Tensor Algebra with an Asymptotic Cost Model
|
4 | 54 | authors: Peter Ahrens, Fredrik Kjolstad, and Saman Amarasinghe
|
5 | 55 | venue: PLDI 2022
|
|
71 | 121 | }
|
72 | 122 | - heading: 2021
|
73 | 123 | pubs:
|
74 |
| - - title: Dynamic Sparse Tensor Algebra Compilation |
75 |
| - authors: Stephen Chou and Saman Amarasinghe |
76 |
| - venue: arXiv Preprint |
77 |
| - is_thesis: false |
78 |
| - paper_link: files/chou-arxiv-taco-dynamic.pdf |
79 |
| - abstract: > |
80 |
| - This paper shows how to generate efficient tensor algebra code that compute on dynamic sparse tensors, which have sparsity structures that evolve over time. We propose a language for precisely specifying recursive, pointer-based data structures, and we show how this language can express a wide range of dynamic data structures that support efficient modification, such as linked lists, binary search trees, and B-trees. We then describe how, given high-level specifications of such data structures, a compiler can generate code to efficiently iterate over and compute with dynamic sparse tensors that are stored in the aforementioned data structures. Furthermore, we define an abstract interface that captures how nonzeros can be inserted into dynamic data structures, and we show how this abstraction guides a compiler to emit efficient code that store the results of sparse tensor algebra computations in dynamic data structures. |
81 |
| - <br><br> |
82 |
| - We evaluate our technique and find that it generates efficient dynamic sparse tensor algebra kernels. Code that our technique emits to compute the main kernel of the PageRank algorithm is 1.05× as fast as Aspen, a state-of-the-art dynamic graph processing framework. Furthermore, our technique outperforms PAM, a parallel ordered (key-value) maps library, by 7.40× when used to implement element-wise addition of a dynamic sparse matrix to a static sparse matrix. |
83 |
| - bibtex: > |
84 |
| - @article{chou:2021:dynamic, |
85 |
| - author = {Chou, Stephen and Amarasinghe, Saman}, |
86 |
| - title = {Dynamic Sparse Tensor Algebra Compilation}, |
87 |
| - journal = {CoRR}, |
88 |
| - volume = {abs/2112.01394}, |
89 |
| - year = {2021}, |
90 |
| - url = {https://arxiv.org/abs/2112.01394}, |
91 |
| - eprinttype = {arXiv}, |
92 |
| - eprint = {2112.01394}, |
93 |
| - } |
94 | 124 | - title: Compilation of Sparse Array Programming Models
|
95 | 125 | authors: Rawn Henry*, Olivia Hsu*, Rohan Yadav, Stephen Chou, Kunle Olukotun, Saman Amarasinghe, and Fredrik Kjolstad
|
96 | 126 | venue: OOPSLA 2021
|
|
0 commit comments