2009-12-02 139 views
4

整数类型是否存在等价于dgemm(来自BLAS)? 我只知道双精度/单精度矩阵的dgemm,sgemm,但希望将它用于整型(如int(或short int ...))的矩阵。使用BLAS的积分类型的矩阵乘法

注:我不是在寻找一种解决方案,涉及转换为浮点/双精度,并且正在寻找一个快速的库实现。

此外,dgemms的相同问题(使用strassen算法)。

回答

2

BLAS算法本身不支持整数类型。

+0

这就是我所怀疑的,但是有没有其他的库可以做到这一点?即使在没有溢出检查的情况下对unisgned chars的简单实现比双倍使用dgemm慢10倍。我希望有一种方法可以1)避免涉及转换为中间浮点类型的内存+时间瓶颈。 – spirov 2009-12-02 02:53:10

+1

http://portal.acm.org/citation.cfm?id=1073899&dl=GUIDE&coll=GUIDE&CFID=64924169&CFTOKEN=87018353 这是acm发表的关于blas的精确线性代数的一些研究的链接。您可能会询问作者如何获取他们开发的库。 – Paul 2009-12-03 18:43:14

3

您没有指定编程语言。在C++中,您可以与矩阵库进行交互,如Eigen(免责声明:我与此项目相关联)。 Eigen使用矢量化,所以它应该是相当快 - 确保你enable vectorization - 但我没有做任何实验,所以我不知道。有一些复杂的alignment issues可能是你的问题,但我不熟悉它们。

This SO question讨论了各种C++矩阵库,主要是在计算机图形学的上下文中。