BoF Abstract
While sparse matrix computations are at the heart of many scientific and engineering applications, there exists no widely adopted interface standard. A reason for this may be the plethora of optimization options relevant to today’s accelerator architectures. At the same time, many vendors already provide support for sparse matrix computations in proprietary libraries, but due to diverging architectural constraints, these libraries have different execution models, APIs, and formats supported. We started a cross-institutional effort involving academia and industry to define an API for sparse linear algebra operations. In the BoF, we present a blueprint and discuss considerations motivating design choices.
BoF Description
The undeniable importance of sparse matrix codes cannot be overstated for such broad communities as those involved in scientific simulations and engineering applications. An important contribution of the Sparse BLAS standard proposed decades ago has not seen many updates nor has it gained enough traction in the community to become a reference point allowing for portability and performance across different hardware architectures. A reason for this may be that it was focused on CPUs, and thus not considering the plethora of optimization options relevant to today's landscape of various hardware accelerators, mostly in the form of GPUs. The missing functionality was filled in the meantime by multiple vendors that provided support for sparse matrix computations in either proprietary or open-source libraries, albeit with divergent constraints. This created a clear need for new functionality such as a unifying execution model, consistent APIs, and supported data formats across these non-compatible libraries. Two workshops were held in the past months ( https://icl.utk.edu/workshops/sparseblas2023/index.html, https://icl.utk.edu/workshops/sparseblas2024/index.html ) where a wide range of scientists from academia and industry got together to discuss the new design of an interface for basic sparse linear algebra functionality. For several reasons, an interface for sparse operations is significantly more difficult than for dense linear algebra counterparts. For example, consider the plethora of sparse data formats used in practice, which leads to an explosion of the number of required compute kernels. The auxiliary routines generating sparse output data with unknown sparsity patterns have to be split into multiple stages to account for memory allocation taking into account the memory spaces and their affinities. And also different hardware platforms favor different storage formats for efficient processing. During these workshops, the participants agreed on the main functional scope, interface design principles, and processing policies. This resulted in creating a mutually agreed upon general blueprint for an interface for sparse BLAS functionality. This BOF will be the follow up to these workshops and numerous online meetings. We want to reach out to a wider community and present the blueprint and ask for feedback. To stimulate the discussion, we will stage a question-answer session for getting into the details of the specific design decisions. The general summary of the current progress of the standard will also be presented to bring everyone in the audience up to date with the state of the specification.