math - 通过 cuda 计算二进制 NxN 矩阵的行列式
问题描述
我正在寻找一种计算二进制 NxN 矩阵行列式的好方法。
到目前为止,我发现了这个:https ://github.com/OrangeOwlSolutions/Linear-Algebra/blob/master/DETERMINANT/determinant.cu ,但是这个实现可能对一般矩阵(浮点)有好处,而我只需要使用整数。此外,cuBLAS 或 cuSOLVER 仅支持双精度矩阵。
解决方案
根据这个参考文献,秩为 N的平方 (0,1) 矩阵的行列式有一个已知的上限。
对于 N=36,上界确定为 1200757082375992968,这需要 61 个整数位才能精确表示。鉴于 GPU 仅具有最长 64 位的本机整数类型,如果没有某种大整数实现(如果存在),绝对不可能在整数 N=64 的情况下做到这一点,那就是 100 % 软件实现并保证非常慢。
因此,唯一可行的实现将在双精度浮点中执行,而现有的双精度线性代数库之一将是 GPU 上的最佳(也是唯一)可行的解决方案。
推荐阅读
- python - 气流 - 如何从上次成功的实例运行中执行 DAG?
- python - 在数据框列上应用函数以获取其他几个列 Pandas Python
- xamarin - 我想在 xaml 中使用按钮获取参数
- python - 为什么这两个 numpy 数组分配有区别?
- amazon-web-services - 用于 jumpbox 的 AWS CloudFormation 用户数据
- python - 如何从一列文本观察中删除没有任何意义的单词
- python - 平均成绩和“如果”
- ibm-odm - IBM ODM 无法生成有效的 WADL
- spacy - spacy.matcher.PhraseMatcher object has no attribute "remove"
- flutter - 如何从 StreamBuilder 'Cloud Firestore' 正确显示单个值