cusparse csrgemm2 and half precision

Sorry, but we couldn’t determine from the various documentation if half precision is supported with cusparse csrgemm2. Can you please say if its a quick yes/no.

Thanks very much
H

In order for there to be half support in csrgemm2, there would need to be a listed function prototype in the documentation that included half data types:

https://docs.nvidia.com/cuda/cusparse/index.html#csrgemm2

there isn’t (currently), so its not supported (currently).

[s]cusparse spMM supports it:

https://docs.nvidia.com/cuda/cusparse/index.html#cusparse-generic-function-spmm

there is of course no function prototype here explicitly for half, but that is because this “generic API” method uses a different approach for specifying data types and computation types. And it does not exactly duplicate the functionality of gemm2, but it can be used to do a sparse matrix-sparse matrix multiply, including with 16 bit floating point types.[/s]

Thanks for the suggestion! We’ll give that a try.
Just a quick confirmation: The docs seem to say that spMM is a (Sparse_M * Desnse_M) operation. So there’d have to be a Dense_M.to_sparse() conversion prior to the call right?

Yes, my mistake. The spMM is a sparsexdense matrix multiply, not sparsexsparse as I said earlier. So it’s not a good suggestion as a replacement for csrgemm2. Please disregard that suggestion.

No worries. Thanks!