首页 > 解决方案 > 通过 cuda 计算二进制 NxN 矩阵的行列式

问题描述

我正在寻找一种计算二进制 NxN 矩阵行列式的好方法。

到目前为止,我发现了这个:https ://github.com/OrangeOwlSolutions/Linear-Algebra/blob/master/DETERMINANT/determinant.cu ,但是这个实现可能对一般矩阵(浮点)有好处,而我只需要使用整数。此外,cuBLAS 或 cuSOLVER 仅支持双精度矩阵。

标签: mathparallel-processingcudagpu

解决方案


根据这个参考文献,秩为 N的平方 (0,1) 矩阵的行列式有一个已知的上限。

对于 N=36,上界确定为 1200757082375992968,这需要 61 个整数位才能精确表示。鉴于 GPU 仅具有最长 64 位的本机整数类型,如果没有某种大整数实现(如果存在),绝对不可能在整数 N=64 的情况下做到这一点,那就是 100 % 软件实现并保证非常慢。

因此,唯一可行的实现将在双精度浮点中执行,而现有的双精度线性代数库之一将是 GPU 上的最佳(也是唯一)可行的解决方案。


推荐阅读