Assistant Professor
Department of Computer Science
Stanford University
Office: Gates 486 kjolstad@cs.stanford.edu
CV

I aim to make it easy to program sparse computing applications that can run everywhere with end-to-end performance that matches or exceeds the best hand-optimized codes. A sparse application computes on a system where most parts do not interact—they are sparsely interconnected. Examples include sparse matrices, meshes, and graphical arrangements used to simulate the dynamics of robots, optimize the flow of traffic, compute the rank of web pages, estimate the similarity of genome loci, or train sparse deep neural networks. Sparse computing is ubiquitous and will become increasingly important with the growth of robotic and autonomous vehicle applications, data analytics, and machine learning.

I have developed the taco compiler for computing sparse tensor expressions and the Simit programming language for computing on sparse systems. My broad research interests include compilers, programming models and languages, parallel computing, software engineering, and performance engineering.

My thesis on Sparse Tensor Algebra Compilation is the best place to start reading about the ideas behind the tensor algebra compiler (taco) and sparse iteration theory.

PhD Students

Publications

Compiler Support for Sparse Tensor Computations in MLIR
Aarti J.C Bik, Penporn Koanantakool, Tatiana Shpeisman, Nicolas Vasilache, Bixia Zheng, and Fredrik Kjolstad
ACM Transactions on Architecture and Code Optimization (TACO), June 2022
DISTAL: The Distributed Tensor Algebra Compiler
Rohan Yadav, Alex Aiken, and Fredrik Kjolstad
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2022
pdf
Autoscheduling for Sparse Tensor Algebra with an Asymptotic Cost Model
Peter Ahrens, Fredrik Kjolstad, and Saman Amarasinghe
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2022
pdf
Copy-and-Patch Compilation
Haoran Xu and Fredrik Kjolstad
Proceedings of the ACM on Programming Languages, Volume 5, Issue OOPSLA, November 2021
Distinguished Paper Award
pdf youtube
Compilation of Sparse Array Programming Models
Rawn Henry, Olivia Hsu, Rohan Yadav, Stephen Chou, Kunle Olukotun, Saman Amarasinghe, and Fredrik Kjolstad
Proceedings of the ACM on Programming Languages, Volume 5, Issue OOPSLA, November 2021
pdf youtube
A Sparse Iteration Space Transformation Framework for Sparse Tensor Algebra
Ryan Senanayake, Changwan Hong, Ziheng Wang, Amalee Wilson, Stephen Chou, Shoaib Kamil, Saman Amarasinghe, and Fredrik Kjolstad
Proceedings of the ACM on Programming Languages, Volume 4, Issue OOPSLA, November 2020
pdf youtube
Creating an Agile Hardware Design Flow
Rick Bahr, Clark Barrett, Nikhil Bhagdikar, Alex Carsello, Ross Daly, Caleb Donovick, David Durst, Kayvon Fatahalian, Kathleen Feng, Pat Hanrahan, Teguh Hofstee, Mark Horowitz, Dillon Huff, Fredrik Kjolstad, Taeyoung Kong, Qiaoyi Liu, Makai Mann, Jackson Melchert, Ankita Nayak, Aina Niemetz, Gedeon Nyengele, Priyanka Raina, Stephen Richardson, Raj Setaluri, Jeff Setter, Kavya Sreedhar, Maxwell Strange, James Thomas, Christopher Torng, Leonard Truong, Nestan Tsiskaridze, and Keyi Zhang
Design Automation Conference (DAC), July 2020
pdf
Sparse Tensor Transpositions
Suzanne Mueller, Peter Ahrens, Stephen Chou, Fredrik Kjolstad, and Saman Amarasinghe
ACM Symposium on Parallelism in Algorithms and Architectures (SPAA brief announcement), July 2020
pdf
Automatic Generation of Efficient Sparse Tensor Format Conversion Routines
Stephen Chou, Fredrik Kjolstad, and Saman Amarasinghe
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2020
pdf youtube
Tensor Algebra Compilation with Workspaces
Fredrik Kjolstad, Peter Ahrens, Shoaib Kamil, and Saman Amarasinghe
International Symposium on Code Generation and Optimization (CGO), February 2019
pdf
Format Abstraction for Sparse Tensor Algebra Compilers
Stephen Chou, Fredrik Kjolstad, and Saman Amarasinghe
Proceedings of the ACM on Programming Languages, Volume 2, Issue OOPSLA, October 2018
pdf youtube
Taco: compilation et génération de code d’expressions tensorielles
David Lugato, Fredrik Kjolstad, Stephen Chou, Saman Amarasinghe, and Shoaib Kamil
AVANCÉES, Volume 12, 2018
pdf
taco: A Tool to Generate Tensor Algebra Kernels
Fredrik Kjolstad, Stephen Chou, David Lugato, Shoaib Kamil, and Saman Amarasinghe
32th IEEE/ACM International Conference on Automated Software Engineering (ASE tools paper), November 2017
pdf youtube
The Tensor Algebra Compiler
Fredrik Kjolstad, Shoaib Kamil, Stephen Chou, David Lugato, and Saman Amarasinghe
Proceedings of the ACM on Programming Languages, Volume 1, Issue OOPSLA, October 2017
Distinguished Paper Award
pdf youtube
Simit: A Language for Physical Simulation
Fredrik Kjolstad, Shoaib Kamil, Jonathan Ragan-Kelley, David I. W. Levin, Shinjiro Sueda, Desai Chen, Etienne Vouga, Danny M. Kaufman, Gurtej Kanwar, Wojciech Matusik, and Saman Amarasinghe
ACM Transactions on Graphics (TOG presented at SIGGRAPH 2016), May 2016
pdf youtube
Why New Programming Languages for Simulation?
Gilbert Louis Bernstein and Fredrik Kjolstad
ACM Transactions on Graphics (TOG perspective), May 2016
pdf
MPI Datatype Processing using Runtime Compilation
Timo Schneider, Fredrik Kjolstad, and Torsten Hoefler
20th European MPI Users' Group Meeting, September 2013
Best Paper Award
pdf
Automatic Datatype Generation and Optimization
Fredrik Kjolstad, Torsten Hoefler, and Marc Snir
17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP short paper), February 2012
pdf
Transformation for Class Immutability
Fredrik Kjolstad, Danny Dig, Gabriel Acevedo, and Marc Snir
33rd International Conference on Software Engineering (ICSE), May 2011
pdf
Bringing the HPC Programmer's IDE into the 21st Century through Refactoring
Fredrik Kjolstad, Danny Dig, and Marc Snir
SPLASH 2010 Workshop on Concurrency for the Application Programmer, October 2010
pdf
Ghost Cell Pattern
Fredrik Kjolstad and Marc Snir
2nd Annual Workshop on Parallel Programming Patterns, March 2010
pdf