1

我正在使用 Accelerate 框架来解决线性方程组的欠定/超定系统。我正在使用的例程是 dgelsd_,最初来自 LAPACK。

dgelsd_( &m, &n, &nrhs, a_t, &lda, b, &ldb, s, &RCOND, &IRANK, work, &workSize, iWork, &info);

这在模拟器中运行良好,在提供矩阵 a_t 和 b 时,结果在 b 中正确返回。但是,当我在设备上尝试此操作时,结果全为零。

我哪里会出错?我已根据需要为例程分配了一定数量的工作内存,但我使用分析器进行了检查,内存似乎不是问题。

有没有人让 LAPACK 例程在 iPhone 设备上正常工作?谢谢。

编辑:iPhone SDK 4.2 版,设备 iPhone 4

4

3 回答 3

3

使用双精度时,这似乎是一个已知问题。

解决方案:使用单精度,即浮点数。

于 2011-06-04T10:12:19.637 回答
0

我正在使用 sgesv_(单精度)来求解 1200x1200 方程组。iPhone 4 的执行时间为 1.1 秒,而使用我的旧“手动”方法时为 60 秒。

于 2012-02-28T11:50:46.600 回答
-2

LAPACK 在 ios 设备上不可用 - 只有 BLAS 和 vDSP。它适用于模拟器,因为该库在 mac 上可用。iOS 加速参考

于 2011-06-03T23:15:14.093 回答