{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,22]],"date-time":"2026-10-22T04:38:51Z","timestamp":1792643931195,"version":"4.5.0"},"reference-count":68,"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":"http:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"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-13T11:15:45Z","timestamp":1507893345000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":323,"title":["The tensor algebra compiler"],"prefix":"10.1145","volume":"1","author":[{"given":"Fredrik","family":"Kjolstad","sequence":"first","affiliation":[{"name":"Massachusetts Institute of Technology, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Shoaib","family":"Kamil","sequence":"additional","affiliation":[{"name":"Adobe, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Stephen","family":"Chou","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"David","family":"Lugato","sequence":"additional","affiliation":[{"name":"CEA, France"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Saman","family":"Amarasinghe","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"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"},{"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.","journal-title":"J. Mach. Learn. Res. 15, Article 1"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","unstructured":"E. Anderson Z. Bai C. Bischof S. Blackford J. Demmel J. Dongarra J. Du Croz A. Greenbaum S. Hammarling A. McKenney and D. Sorensen. 1999. LAPACK Users\u2019 Guide (third ed.). Society for Industrial and Applied Mathematics Philadelphia PA. 10.1137\/1.9780898719604","DOI":"10.1137\/1.9780898719604"},{"key":"e_1_2_2_4_1","unstructured":"Gilad Arnold. 2011. Data-Parallel Language for Correct and Efficient Sparse Matrix Codes. Ph.D. Dissertation. University of California Berkeley."},{"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."},{"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."},{"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, 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)."},{"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."},{"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_16_1","unstructured":"Jong-Ho Byun Richard Lin Katherine A Yelick and James Demmel. 2012. Autotuning sparse matrix-vector multiplication for multicore. EECS UC Berkeley Tech. Rep (2012)."},{"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."},{"key":"e_1_2_2_22_1","unstructured":"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 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_25_1","unstructured":"Intel. 2012. Intel math kernel library reference manual. Technical Report. 630813-051US 2012. http:\/\/software.intel.com\/ sites\/products\/documentation\/hpc\/mkl\/mklman\/mklman.pdf ."},{"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","doi-asserted-by":"publisher","DOI":"10.1145\/1283920.1283929"},{"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.","journal-title":"Unixenguaedu 7"},{"key":"e_1_2_2_31_1","unstructured":"Vladimir Kotlyar. 1999. Relational Algebraic Techniques for the Synthesis of Sparse Matrix Programs. Ph.D. Dissertation. Cornell."},{"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."},{"key":"e_1_2_2_36_1","unstructured":"Devin Matthews. 2017. High-Performance Tensor Contraction without Transposition. Technical Report."},{"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_41_1","unstructured":"L. M. R. Mullin. 1988. A Mathematics of Arrays. Ph.D. Dissertation. Syracuse University."},{"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"},{"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)."},{"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."},{"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\/"},{"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)."},{"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)."},{"key":"e_1_2_2_55_1","unstructured":"Paul Stodghill. 1997. A Relational Approach to the Automatic Generation of Sequential Sparse Matrix Codes. Ph.D. Dissertation. Cornell."},{"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)."},{"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."},{"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)."},{"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"},{"key":"e_1_2_2_64_1","doi-asserted-by":"publisher","unstructured":"R. Clint Whaley and Jack Dongarra. 1998. Automatically Tuned Linear Algebra Software. In SuperComputing 1998: High Performance Networking and Computing. 10.1109\/SC.1998.10004","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"},{"key":"e_1_2_2_67_1","unstructured":"Michael Joseph Wolfe. 1982. Optimizing Supercompilers for Supercomputers. Ph.D. Dissertation. University of Illinois at Urbana-Champaign Champaign IL USA. AAI8303027."},{"key":"e_1_2_2_68_1","unstructured":"Huasha Zhao. 2014. High Performance Machine Learning through Codesign and Rooflining. Ph.D. Dissertation. EECS Department University of California Berkeley."}],"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":[[2026,9,10]],"date-time":"2026-09-10T16:11:45Z","timestamp":1789056705000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133901"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,10,12]]},"references-count":68,"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":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}