【问题标题】:matrix multiplication for integral types using BLAS使用 BLAS 的整数类型的矩阵乘法
【发布时间】:2010-12-22 06:06:50
【问题描述】:

对于整数类型是否有等效的 dgemm(来自 BLAS)? 我只知道用于双精度/单精度矩阵的 dgemm、sgemm,但希望将它用于整数类型的矩阵,例如 int(或 short int...)。

注意:我不是在寻找涉及转换为 float/double 的解决方案,而是在寻找快速的库实现。

另外,对于 dgemms 的同样问题(使用 strassen 算法)。

【问题讨论】:

    标签: matrix integer multiplication blas


    【解决方案1】:

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

    This SO question 讨论了各种 C++ 矩阵库,主要是在计算机图形方面。

    【讨论】:

    • 但是 eigen 支持整数矩阵算术吗?
    【解决方案2】:

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

    【讨论】:

    • 这就是我的怀疑,但有没有其他图书馆可以做到这一点?即使是没有溢出检查的 unisgned chars 的幼稚实现也比使用双精度的 dgemm 慢约 10 倍。我希望有一种方法可以 1)避免转换为中间浮点类型所涉及的内存+时间瓶颈。
    • portal.acm.org/… 这是 acm 发表的关于 blas 的精确线性代数的一些研究的链接。您可以向作者询问如何获取他们开发的库。
    猜你喜欢
    • 2018-04-11
    • 1970-01-01
    • 2013-07-12
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    相关资源
    最近更新 更多