{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,25]],"date-time":"2026-04-25T14:34:44Z","timestamp":1777127684115,"version":"3.51.4"},"reference-count":59,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2017,10,12]],"date-time":"2017-10-12T00:00:00Z","timestamp":1507766400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCF-1533753"],"award-info":[{"award-number":["CCF-1533753"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000015","name":"U.S. Department of Energy","doi-asserted-by":"publisher","award":["DE-SC008923,DE-SC014204"],"award-info":[{"award-number":["DE-SC008923,DE-SC014204"]}],"id":[{"id":"10.13039\/100000015","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2017,10,12]]},"abstract":"<jats:p>Tensor algebra is a powerful tool with applications in machine learning, data analytics, engineering and the physical sciences. Tensors are often sparse and compound operations must frequently be computed in a single kernel for performance and to save memory. Programmers are left to write kernels for every operation of interest, with different mixes of dense and sparse tensors in different formats. The combinations are infinite, which makes it impossible to manually implement and optimize them all. This paper introduces the first compiler technique to automatically generate kernels for any compound tensor algebra operation on dense and sparse tensors. The technique is implemented in a C++ library called taco. Its performance is competitive with best-in-class hand-optimized kernels in popular libraries, while supporting far more tensor operations.<\/jats:p>","DOI":"10.1145\/3133901","type":"journal-article","created":{"date-parts":[[2017,10,13]],"date-time":"2017-10-13T15:15:45Z","timestamp":1507907745000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":291,"title":["The tensor algebra compiler"],"prefix":"10.1145","volume":"1","author":[{"given":"Fredrik","family":"Kjolstad","sequence":"first","affiliation":[{"name":"Massachusetts Institute of Technology, USA"}]},{"given":"Shoaib","family":"Kamil","sequence":"additional","affiliation":[{"name":"Adobe, USA"}]},{"given":"Stephen","family":"Chou","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology, USA"}]},{"given":"David","family":"Lugato","sequence":"additional","affiliation":[{"name":"CEA, France"}]},{"given":"Saman","family":"Amarasinghe","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology, USA"}]}],"member":"320","published-online":{"date-parts":[[2017,10,12]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201916)","author":"Abadi Mart\u00edn","year":"2016","unstructured":"Mart\u00edn Abadi , Paul Barham , Jianmin Chen , Zhifeng Chen , Andy Davis , Jeffrey Dean , Matthieu Devin , Sanjay Ghemawat , Geoffrey Irving , Michael Isard , Manjunath Kudlur , Josh Levenberg , Rajat Monga , Sherry Moore , Derek G. Murray , Benoit Steiner , Paul Tucker , Vijay Vasudevan , Pete Warden , Martin Wicke , Yuan Yu , and Xiaoqiang Zheng . 2016 . TensorFlow: A System for Large-scale Machine Learning . In Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201916) . USENIX Association, Berkeley, CA, USA, 265\u2013283. http:\/\/dl.acm.org\/citation.cfm?id=3026877. 3026899 Mart\u00edn Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Geoffrey Irving, Michael Isard, Manjunath Kudlur, Josh Levenberg, Rajat Monga, Sherry Moore, Derek G. Murray, Benoit Steiner, Paul Tucker, Vijay Vasudevan, Pete Warden, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng. 2016. TensorFlow: A System for Large-scale Machine Learning. In Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (OSDI\u201916). USENIX Association, Berkeley, CA, USA, 265\u2013283. http:\/\/dl.acm.org\/citation.cfm?id=3026877. 3026899"},{"key":"e_1_2_2_2_1","article-title":"Tensor Decompositions for Learning Latent Variable Models","author":"Anandkumar Animashree","year":"2014","unstructured":"Animashree Anandkumar , Rong Ge , Daniel Hsu , Sham M. Kakade , and Matus Telgarsky . 2014 . Tensor Decompositions for Learning Latent Variable Models . J. Mach. Learn. Res. 15, Article 1 ( Jan. 2014), 60 pages. Animashree Anandkumar, Rong Ge, Daniel Hsu, Sham M. Kakade, and Matus Telgarsky. 2014. Tensor Decompositions for Learning Latent Variable Models. J. Mach. Learn. Res. 15, Article 1 (Jan. 2014), 60 pages.","journal-title":"J. Mach. Learn. Res. 15, Article 1"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1137\/1.9780898719604"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1080\/00268970500275780"},{"key":"e_1_2_2_6_1","volume-title":"Discussion Tracking in Enron Email Using PARAFAC","author":"Bader Brett W.","unstructured":"Brett W. Bader , Michael W. Berry , and Murray Browne . 2008. Discussion Tracking in Enron Email Using PARAFAC . Springer London , 147\u2013163. Brett W. Bader, Michael W. Berry, and Murray Browne. 2008. Discussion Tracking in Enron Email Using PARAFAC. Springer London, 147\u2013163."},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1137\/060676489"},{"key":"e_1_2_2_8_1","volume-title":"Lois Curfman McInnes, and Barry F Smith","author":"Balay Satish","year":"1997","unstructured":"Satish Balay , William D Gropp , Lois Curfman McInnes, and Barry F Smith . 1997 . Efficient management of parallelism in object-oriented numerical software libraries. In Modern software tools for scientific computing. Springer, Birkh\u00e4user Boston , 163\u2013202. Satish Balay, William D Gropp, Lois Curfman McInnes, and Barry F Smith. 1997. Efficient management of parallelism in object-oriented numerical software libraries. In Modern software tools for scientific computing. Springer, Birkh\u00e4user Boston, 163\u2013202."},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPEC.2012.6408676"},{"key":"e_1_2_2_10_1","volume-title":"Proceedings of KDD cup and workshop","volume":"2007","author":"Bennett James","year":"2007","unstructured":"James Bennett , Stan Lanning , 2007 . The netflix prize . In Proceedings of KDD cup and workshop , Vol. 2007 . ACM, New York, 35. James Bennett, Stan Lanning, et al. 2007. The netflix prize. In Proceedings of KDD cup and workshop, Vol. 2007. ACM, New York, 35."},{"key":"e_1_2_2_11_1","volume-title":"Julia: A Fast Dynamic Language for Technical Computing.","author":"Bezanson Jeff","year":"2012","unstructured":"Jeff Bezanson , Stefan Karpinski , Viral B. Shah , and Alan Edelman . 2012 . Julia: A Fast Dynamic Language for Technical Computing. (2012). Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman. 2012. Julia: A Fast Dynamic Language for Technical Computing. (2012)."},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/165939.166023"},{"key":"e_1_2_2_13_1","volume-title":"Languages and Compilers for Parallel Computing","author":"Bik Aart JC","unstructured":"Aart JC Bik and Harry AG Wijshoff . 1994. On automatic data structure selection and code generation for sparse computations . In Languages and Compilers for Parallel Computing . Springer , 57\u201375. Aart JC Bik and Harry AG Wijshoff. 1994. On automatic data structure selection and code generation for sparse computations. In Languages and Compilers for Parallel Computing. Springer, 57\u201375."},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2008.4536313"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1583991.1584053"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPEC.2015.7322458"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2049662.2049663"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1002\/andp.19163540702"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1002\/jcc.23377"},{"key":"e_1_2_2_21_1","volume-title":"Sands","author":"Feynman Richard","year":"1963","unstructured":"Richard Feynman , Robert B. Leighton , and Matthew L . Sands . 1963 . The Feynman Lectures on Physics. Vol. 3 . Addison-Wesley . Richard Feynman, Robert B. Leighton, and Matthew L. Sands. 1963. The Feynman Lectures on Physics. Vol. 3. Addison-Wesley."},{"key":"e_1_2_2_22_1","unstructured":"Google. 2017. TensorFlow Sparse Tensors. https:\/\/www.tensorflow.org\/api_guides\/python\/sparse_ops . (2017).  Google. 2017. TensorFlow Sparse Tensors. https:\/\/www.tensorflow.org\/api_guides\/python\/sparse_ops . (2017)."},{"key":"e_1_2_2_23_1","unstructured":"Ga\u00ebl Guennebaud Beno\u00eet Jacob etal 2010. Eigen v3. http:\/\/eigen.tuxfamily.org . (2010).  Ga\u00ebl Guennebaud Beno\u00eet Jacob et al. 2010. Eigen v3. http:\/\/eigen.tuxfamily.org . (2010)."},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/355791.355796"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1460833.1460872"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2807591.2807624"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2866569"},{"key":"e_1_2_2_29_1","volume-title":"The art of computer programming: sorting and searching","author":"Knuth Donald Ervin","unstructured":"Donald Ervin Knuth . 1973. The art of computer programming: sorting and searching . Vol. 3 . Pearson Education . Donald Ervin Knuth. 1973. The art of computer programming: sorting and searching. Vol. 3. Pearson Education."},{"key":"e_1_2_2_30_1","first-page":"29","article-title":"An Introduction to Tensors for Students of Physics and Engineering","author":"Kolecki Joseph C","year":"2002","unstructured":"Joseph C Kolecki . 2002 . An Introduction to Tensors for Students of Physics and Engineering . Unixenguaedu 7 , September (2002), 29 . Joseph C Kolecki. 2002. An Introduction to Tensors for Students of Physics and Engineering. Unixenguaedu 7, September (2002), 29.","journal-title":"Unixenguaedu 7"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0002751"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2807591.2807671"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/IA3.2016.010"},{"key":"e_1_2_2_35_1","volume-title":"version 8.3.0 (R2014a)","author":"MATLAB.","unstructured":"MATLAB. 2014. version 8.3.0 (R2014a) . The MathWorks Inc., Natick, Massachusetts . MATLAB. 2014. version 8.3.0 (R2014a). The MathWorks Inc., Natick, Massachusetts."},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2507157.2507163"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/233561.233564"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/362575.362584"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-04280-0_14"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2629698"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-48319-5_14"},{"key":"e_1_2_2_44_1","unstructured":"Yves Renard. 2017. Gmm++. (2017). http:\/\/download.gna.org\/getfem\/html\/homepage\/gmm\/first-step.html  Yves Renard. 2017. Gmm++. (2017). http:\/\/download.gna.org\/getfem\/html\/homepage\/gmm\/first-step.html"},{"key":"e_1_2_2_45_1","volume-title":"M\u00e9thodes de calcul diff\u00e9rentiel absolu et leurs applications. Math. Ann. 54","author":"Ricci-Curbastro Gregorio","year":"1901","unstructured":"Gregorio Ricci-Curbastro and Tullio Levi-Civita . 1901. M\u00e9thodes de calcul diff\u00e9rentiel absolu et leurs applications. Math. Ann. 54 ( 1901 ). Gregorio Ricci-Curbastro and Tullio Levi-Civita. 1901. M\u00e9thodes de calcul diff\u00e9rentiel absolu et leurs applications. Math. Ann. 54 (1901)."},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2967938.2967943"},{"key":"e_1_2_2_47_1","volume-title":"Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computationally Intensive Experiments. Technical Report. NICTA.","author":"Sanderson Conrad","year":"2010","unstructured":"Conrad Sanderson . 2010 . Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computationally Intensive Experiments. Technical Report. NICTA. Conrad Sanderson. 2010. Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computationally Intensive Experiments. Technical Report. NICTA."},{"key":"e_1_2_2_48_1","volume-title":"FROSTT: The Formidable Repository of Open Sparse Tensors and Tools.","author":"Smith Shaden","year":"2017","unstructured":"Shaden Smith , Jee W. Choi , Jiajia Li , Richard Vuduc , Jongsoo Park , Xing Liu , and George Karypis . 2017 . FROSTT: The Formidable Repository of Open Sparse Tensors and Tools. (2017). http:\/\/frostt.io\/ Shaden Smith, Jee W. Choi, Jiajia Li, Richard Vuduc, Jongsoo Park, Xing Liu, and George Karypis. 2017. FROSTT: The Formidable Repository of Open Sparse Tensors and Tools. (2017). http:\/\/frostt.io\/"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2833179.2833183"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2015.27"},{"key":"e_1_2_2_51_1","volume-title":"Sparse Tensor Algebra as a Parallel Programming Model. arXiv preprint arXiv:1512.00066","author":"Solomonik Edgar","year":"2015","unstructured":"Edgar Solomonik and Torsten Hoefler . 2015. Sparse Tensor Algebra as a Parallel Programming Model. arXiv preprint arXiv:1512.00066 ( 2015 ). Edgar Solomonik and Torsten Hoefler. 2015. Sparse Tensor Algebra as a Parallel Programming Model. arXiv preprint arXiv:1512.00066 (2015)."},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2014.06.002"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/2581122.2544155"},{"key":"e_1_2_2_54_1","volume-title":"Design of a high-performance GEMM-like Tensor-Tensor Multiplication. arXiv preprint arXiv:1607.00145","author":"Springer Paul","year":"2016","unstructured":"Paul Springer and Paolo Bientinesi . 2016. Design of a high-performance GEMM-like Tensor-Tensor Multiplication. arXiv preprint arXiv:1607.00145 ( 2016 ). Paul Springer and Paolo Bientinesi. 2016. Design of a high-performance GEMM-like Tensor-Tensor Multiplication. arXiv preprint arXiv:1607.00145 (2016)."},{"key":"e_1_2_2_56_1","unstructured":"Scott Thibault Lenore Mullin and Matt Insall. 1994. Generating Indexing Functions of Regularly Sparse Arrays for Array Compilers. (1994).  Scott Thibault Lenore Mullin and Matt Insall. 1994. Generating Indexing Functions of Regularly Sparse Arrays for Array Compilers. (1994)."},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1109\/PROC.1967.6011"},{"key":"e_1_2_2_58_1","volume-title":"The NumPy array: a structure for efficient numerical computation. Computing in Science &amp","author":"Der Walt Stefan Van","year":"2011","unstructured":"Stefan Van Der Walt , S Chris Colbert , and Gael Varoquaux . 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science &amp ; Engineering 13, 2 ( 2011 ), 22\u201330. Stefan Van Der Walt, S Chris Colbert, and Gael Varoquaux. 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science &amp; Engineering 13, 2 (2011), 22\u201330."},{"key":"e_1_2_2_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2738003"},{"key":"e_1_2_2_60_1","volume-title":"Hongbo Rong, Rajkishore Barik, Jongsoo Park, Michelle Mills Strout, and Mary Hall.","author":"Venkat Anand","year":"2016","unstructured":"Anand Venkat , Mahdi Soltan Mohammadi , Hongbo Rong, Rajkishore Barik, Jongsoo Park, Michelle Mills Strout, and Mary Hall. 2016 . Automating Wavefront Parallelization for Sparse Matrix Computations. In In Supercomputing (SC) . Anand Venkat, Mahdi Soltan Mohammadi, Hongbo Rong, Rajkishore Barik, Jongsoo Park, Michelle Mills Strout, and Mary Hall. 2016. Automating Wavefront Parallelization for Sparse Matrix Computations. In In Supercomputing (SC)."},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/1592665.1592675"},{"key":"e_1_2_2_62_1","doi-asserted-by":"publisher","DOI":"10.1088\/1742-6596\/16\/1\/071"},{"key":"e_1_2_2_63_1","unstructured":"Joerg Walter and Mathias Koch. 2007. uBLAS. (2007). http:\/\/www.boost.org\/libs\/numeric\/ublas\/doc\/index.htm  Joerg Walter and Mathias Koch. 2007. uBLAS. (2007). http:\/\/www.boost.org\/libs\/numeric\/ublas\/doc\/index.htm"},{"key":"e_1_2_2_64_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.1998.10004"},{"key":"e_1_2_2_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/1362622.1362674"},{"key":"e_1_2_2_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/113446.113449"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133901","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3133901","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3133901","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:13:25Z","timestamp":1750212805000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133901"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,10,12]]},"references-count":59,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2017,10,12]]}},"alternative-id":["10.1145\/3133901"],"URL":"https:\/\/doi.org\/10.1145\/3133901","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,10,12]]},"assertion":[{"value":"2017-10-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}