реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> странные тормоза, гнутый компилятор
карамболь
сообщение Sep 11 2008, 18:33
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813



при использовании операций с плавающей запятой обнаружил просто жуткие тормоза, вот пример не самой сложной функции -
#include "stdlib.h"
#include "float.h"
#include "math.h"
int main_calc()
{

int D = 1000, N, M;
float t = 2.0, Ta = 0, Fmax = 0, F0 = 100, A = 5;
for(N = 0; N < D; N++)
{
Ta += 1.0 / (F0 + A * N);
if(2 * Ta + (D - 2 * N) / (F0 + A * N) < t)
break;
}
Fmax = F0 + A * N;
return 0;
}
этот кусок выполняется около 30 секунд (кол-во итераций 106), использование оптимизатора дает выигрышь около 15%, что при такой производительности - как мертвому припарки ( я был в курсе, что гнутый компилятор довольно тормозной, но не до такой же степени ? может это я где то затупил ? спасибо
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 11 2008, 18:53
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(карамболь @ Sep 11 2008, 21:33) *
может это я где то затупил ?
Не знаю. Но нас явно толкаете на проявление чудес телепатии - что за процессор, на какой частоте работает, какие у вас основания пологать, что процессор работает именно на этой частоте? "Догадайся мол, сама".
Чтож, рискну. Процессор "по умолчанию" AT91SAMS64, по недоразумению работает от внутреннего генератора 32 КГц. А что вы хотели?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
карамболь
сообщение Sep 12 2008, 06:04
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 25-08-08
Из: Санкт-Петербург
Пользователь №: 39 813



Цитата(Сергей Борщ @ Sep 11 2008, 22:53) *
Не знаю. Но нас явно толкаете на проявление чудес телепатии - что за процессор, на какой частоте работает, какие у вас основания пологать, что процессор работает именно на этой частоте? "Догадайся мол, сама".
Чтож, рискну. Процессор "по умолчанию" AT91SAMS64, по недоразумению работает от внутреннего генератора 32 КГц. А что вы хотели?


процессор AT91SAMS256, в данный момент работает на частоте 48МГц
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 12 2008, 09:56
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(карамболь @ Sep 12 2008, 09:04) *
процессор AT91SAMS256, в данный момент работает на частоте 48МГц
AT91SAM7S64, 19.1МГц, из ОЗУ ваша функция исполяется ~10мс.

исправлено: ой, обманул. У меня MCK делился на 2 и осциллограф был не прогрет. Итого: ~3мс на 46.7МГц, ~7мс на 19.1МГц


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 12 2008, 13:56
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Sep 12 2008, 11:56) *
из ОЗУ ваша функция....
~3мс на 46.7МГц, ~7мс на 19.1МГц

Что-то действительно тормозит smile.gif LPC2378 1,458 ms на 72.0034 MHz тактовой из Flash.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 12 2008, 17:33
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zltigo @ Sep 12 2008, 16:56) *
LPC2378 1,458 ms на 72.0034 MHz тактовой из Flash.
Ну, я замерял по ни разу не калиброванному за всю жизнь С1-114, но порядок совпадает. А в флеш просто лень было зашивать.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016