【问题标题】:LAPACK routine works on iPhone simulator, but not on deviceLAPACK 例程适用于 iPhone 模拟器,但不适用于设备
【发布时间】:2011-06-03 19:57:33
【问题描述】:

我正在使用 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

【问题讨论】:

  • 你想在什么设备/操作系统上运行它?

标签: iphone objective-c ios lapack accelerate-framework


【解决方案1】:

使用双精度时,它看起来像 known issue

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我不同意。在 IOS 4.0 中,Apple 将 LAPACK 功能引入了 Accelerate for iPhone。 Changelog here.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2011-03-08
      • 2015-02-13
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多