Хорошая производительность на Octave или Matlab / Bad Performance на gcc - PullRequest
1 голос
/ 14 октября 2010

Привет всем,

Я на самом деле нахожусь на теме 3d-сканирования для роботизированных приложений выбора и размещения.

Для начала я использую алгоритм ICP, чтобы соответствовать положениюэталонный объект относительно фактического объекта.Для этой цели я использую Octave / Matlab со следующим кодом: http://www.mathworks.com/matlabcentral/fileexchange/12627-iterative-closest-point-method

После некоторых попыток алгоритм, по-видимому, генерирует удовлетворительную точность в соответствующее время.Сопоставление от 6000 до 6000 точек данных обходится при 100 циклах итерации с временем вычисления около 15 секунд.

На самом деле я пытаюсь извлечь этот код matlab / octave, чтобы вставить его в мое приложение, чтобы попробовать параллелизмалгоритм.Когда я запускаю неизмененный код из моего собственного c-приложения, время вычислений увеличивается примерно в 10-20 раз.(Те же наборы данных!)

Если включена функция встраивания и уровень оптимизации -O3.Существуют ли другие способы оптимизации октавы при создании .oct-файла?На самом деле я понятия не имею, почему такая большая разница в производительности.

Массивный алгоритм ICP выполняет двойное сложение, умножение и деление!

Спасибо за вашу помощь!

Привет, Джодел

1 Ответ

1 голос
/ 14 октября 2010

Я ожидаю, что Octave, как и Matlab, использует реализацию BLAS , которая настроена для используемого вами оборудования.Вы ?Если нет, это может объяснить разницу в скорости.

...