Программа LAPACK работает на симуляторе iPhone, но не на устройстве - PullRequest
1 голос
/ 03 июня 2011

Я использую систему ускорения для решения недооцененной / переопределенной системы линейных уравнений.Я использую подпрограмму 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

Ответы [ 3 ]

3 голосов
/ 04 июня 2011

Похоже, это известная проблема при использовании двойной точности.

Решение: Используйте одинарную точность, то есть поплавки.

0 голосов
/ 28 февраля 2012

Я использую sgesv_ (single-Precison) для решения системы уравнений 1200x1200. Время выполнения на iPhone 4 составляет 1,1 с, по сравнению с 60 с при использовании моего старого «ручного» метода.

0 голосов
/ 04 июня 2011

LAPACK недоступен на устройствах ios - только BLAS и vDSP.Он работает на симуляторе, потому что эта библиотека доступна на Mac. Ссылка на ускорение iOS

...