我见过通常称为 SpGEMM 的稀疏矩阵-矩阵乘法,这意味着一般/广义稀疏矩阵-矩阵乘法。我见过它一两次(忘了在哪里)作为SpMM。
我的问题是,“一般”指的是什么?稀疏矩阵的类型?是否存在非一般的稀疏矩阵-矩阵乘法算法?我遇到的所有例程/内核都是为不假设结构的稀疏矩阵设计的,所以“通用”这个词不是有点多余吗?SpMM 似乎是一个更合适的首字母缩略词。
我见过通常称为 SpGEMM 的稀疏矩阵-矩阵乘法,这意味着一般/广义稀疏矩阵-矩阵乘法。我见过它一两次(忘了在哪里)作为SpMM。
我的问题是,“一般”指的是什么?稀疏矩阵的类型?是否存在非一般的稀疏矩阵-矩阵乘法算法?我遇到的所有例程/内核都是为不假设结构的稀疏矩阵设计的,所以“通用”这个词不是有点多余吗?SpMM 似乎是一个更合适的首字母缩略词。
我认为这是BLAS中相同例程的命名约定的保留,其中有DGEMM用于双精度、通用矩阵/矩阵乘法、DSYMM对称矩阵、ZHEMM复杂 Hermitian 矩阵等的例程。不同的例程是,如果您知道矩阵是对称的或 Hermitian 矩阵,则与一般情况相比,您可以仅使用它的上三角形来计算矩阵乘法的结果。也许通过说 SpGEMM,他们暗示他们还考虑了稀疏对称矩阵的优化例程。
稀疏 BLAS 的规范(有关规范的概述,请参见http://www.nist.gov/customcf/get_pdf.cfm?pub_id=50993)记录了稀疏矩阵和密集矩阵相乘的例程。此操作通常称为 SpMM。由于概述文档第 243 页中描述的原因,该文档没有指定用于将稀疏矩阵和第二稀疏矩阵相乘的例程。
然而,两个稀疏矩阵的乘法是一个重要的操作,通常被称为 SpGEMM 以区别于稀疏的 BLAS 版本。例如,请参阅http://www.sandia.gov/~gmballa/talks/LA15.pdf,了解有关 SpGEMM 的更多信息。