1

Accelerateフレームワークを使用して、線形方程式の過小/過剰決定システムを解きます。私が使用しているルーチンは、LAPACKのdgelsd_です。

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

倍精度を使用する場合の既知の問題のようです。

解決策: 単精度、つまり Float を使用します。

于 2011-06-04T10:12:19.637 に答える
0

1200x1200の方程式系を解くためにsgesv_(単一精度)を使用しています。iPhone 4での実行時間は1.1秒ですが、私の古い「手動」方式を使用した場合は60秒です。

于 2012-02-28T11:50:46.600 に答える
-2

LAPACK は iOS デバイスでは使用できません。BLAS と vDSP のみです。そのライブラリはMacで利用できるため、シミュレーターで動作します。iOS アクセラレート リファレンス

于 2011-06-03T23:15:14.093 に答える