2011-06-03 134 views
1

我正在使用Accelerate框架来解决线性方程式的欠定/超定系统。我使用的程序是dgelsd_,最初来自LAPACK。LAPACK例程适用于iPhone模拟器,但不适用于设备

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

+0

你试图运行在什么设备/操作系统上? – 2011-06-03 20:13:03

回答

3

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

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

-2

LAPACK是不适用于iOS设备 - 仅BLAS和VDSP。它在模拟器上工作,因为该库在Mac上可用。 iOS Accelerate Reference

+1

我不同意。借助IOS 4.0,Apple将LAPACK功能引入iPhone加速。 [Changelog here](http://developer.apple.com/library/ios/#releasenotes/General/iPhone40APIDiffs/)。 – Warr1ck 2011-06-04 01:26:06

0

我使用sgesv_(single-precison)来解决一个1200x1200方程系统。 iPhone 4的执行时间为1.1秒,而使用旧的“手动”方法时的执行时间为60秒。

相关问题