用Cuda计算二元NxN矩阵的行列式

时间:2020-01-17 14:59:44

标签: math parallel-processing cuda gpu

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

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

1 个答案:

答案 0 :(得分:1)

根据this reference,行列N的square (0,1)-matrix的行列式有一个已知的上限。

对于N = 36,上限确定为1200757082375992968,它需要61个整数位才能精确表示。鉴于GPU仅具有最大64位长度的本机整数类型,如果没有某种大的整数实现(如果存在),绝对不可能对N = 64的整数进行此操作。 %的软件实施,并且保证非常慢。

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