  High-performance primitives for mathematical operations on sparse vectors
must deal with the challenges of skewed degree distributions and limits on
memory consumption that are typically not issues in dense operations. We
demonstrate that a sparse semiring primitive can be flexible enough to support
a wide range of critical distance measures while maintaining performance and
memory efficiency on the GPU. We further show that this primitive is a
foundational component for enabling many neighborhood-based information
retrieval and machine learning algorithms to accept sparse input. To our
knowledge, this is the first work aiming to unify the computation of several
critical distance measures on the GPU under a single flexible design paradigm
and we hope that it provides a good baseline for future research in this area.
Our implementation is fully open source and publicly available at
https://github.com/rapidsai/cuml.
