|
Помогите оттестировать производительность микроконтроллера ARM или AVR |
|
|
|
Jan 10 2014, 19:21
|
Группа: Новичок
Сообщений: 5
Регистрация: 10-01-14
Пользователь №: 79 981

|
Добрый день/ночь!
Прошу помощи форумчан. Хочу использовать микроконтроллер для произведения большого объема вычислений, но не уверен в том, достаточна ли его мощность. Марка микроконтроллера еще не выбрана, скорее всего, на ядре ARM или Cortex.
Прошу счастливых владельцев микроконтроллеров на ядре ARM и/или AVR произвести замер времени выполнения простейшего вычисления с вещественными числами. Покупать отладочную плату и программатор для этого слишком накладно.
Если производительности не хватит, буду вынужден использовать мощный РС под управлением ОС реального времени. Либо можно запараллелить несколько микроконтроллеров.
Детали кода значения не имеют, нужно просто ПРИМЕРНО оценить длительность вычислений с применением умножения и деления вещественных чисел. Желательно использовать real двойной точности (64 бит), но это не принципиально.
Заранее благодарен всем откликнувшимся!
Пример кода на псевдоязыке
//желательно использовать real двойной точности (64 бит), но это не принципиально real a = 1; real b = 1234.567;
//получить текущее значение системного время в мсек или мксек int StartTime = getCurrentTime();
//рабочий цикл for (int i=0; i<1000000; i++) { a = a + (real(i) / b ); b = b + 0.000001;
//на всякий пожарный If (a>100000000) {a=1}; }
//итоговая длительность вычислений int Dur = getCurrentTime() - StartTime;
//используем полученное значение, чтобы слишком умный компилятор не удалил неиспользуемые вычисления //вместо Print можно сделать что угодно, лишь бы использовать значение! //например, сохранить в EEPROM Print(a);
|
|
|
|
|
 |
Ответов
|
Jan 12 2014, 12:03
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376

|
Цитата(megajohn @ Jan 10 2014, 23:18)  для AVR: ( IAR DLIB ) 1 725 881 000 тактов для float ( 32 бита ) 3 697 655 000 тактов для double ( 64 бита ) В железе: ATMega128 16MHz, замеры времени по TIMER1 плюс прерывание по его переполнению для увеличения разрядности. float Time (10000) = 0x00000063 C069 0,4085825625 сек Time (100000) = 0x000003B3 6C89 3,8806485625 сек Time (1000000) = 0x0000230D 2135 36,7539393125 сек double Time (10000) = 0x00000942 3A67 9,7084544375 сек Time (100000) = 0x00005AF5 3CA3 95,3763301875 сек Time (1000000) = 0x0003887D 262C 948,42531475 сек
|
|
|
|
|
Jan 12 2014, 19:12
|

Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376

|
Цитата(megajohn @ Jan 12 2014, 21:15)  чойта странно, при double получилось 15 174 805 036 тактов, при float - 588 063 029 тактов. Смущает кратность в 26 раз. Все вопросы к компилятору:
asm_float.txt ( 6.58 килобайт )
Кол-во скачиваний: 179
asm_double.txt ( 7.89 килобайт )
Кол-во скачиваний: 213
|
|
|
|
Сообщений в этой теме
RomaRoma Помогите оттестировать производительность микроконтроллера ARM или AVR Jan 10 2014, 19:21 A. Fig Lee Цитата(megajohn @ Jan 10 2014, 15:18) с м... Jan 10 2014, 20:46  megajohn Цитата(A. Fig Lee @ Jan 11 2014, 00:46) *... Jan 10 2014, 20:53   RomaRoma Цитата(megajohn @ Jan 10 2014, 23:53) сам... Jan 10 2014, 21:04    megajohn ЦитатаУточню: такт - имеется в виду такт процессор... Jan 10 2014, 21:10     mantech Может имеет смысл глянуть в сторону STM32F407 или ... Jan 11 2014, 05:40 ViKo Цитата(megajohn @ Jan 10 2014, 23:18) с м... Jan 11 2014, 08:11  megajohn Цитата(ViKo @ Jan 11 2014, 12:11) Можете ... Jan 11 2014, 09:14   RomaRoma спасибо всем откликнувшимся
Цитата(megajohn ... Jan 11 2014, 14:04  RomaRoma Цитата(M_Andrey @ Jan 12 2014, 15:03) В ж... Jan 12 2014, 15:58     M_Andrey Ужесточил типы, теперь между double и float разниц... Jan 12 2014, 19:58      megajohn Цитата(M_Andrey @ Jan 12 2014, 23:58) Уже... Jan 12 2014, 20:05       Ruslan1 PIC32, 80 MHz (оптимизация средненькая, такую дает... Jan 12 2014, 22:49       M_Andrey Цитата(megajohn @ Jan 12 2014, 23:05) Чой... Jan 13 2014, 08:52 slog AVR 8 разрядов, ARM 32. Понятно что производительн... Jan 11 2014, 07:04 stells Цитата(slog @ Jan 11 2014, 11:04) AVR 8 р... Jan 11 2014, 07:12 ZASADA +1. кидайте законченный код, запущу на авр32 60 мг... Jan 11 2014, 09:01 ZASADA дсп еще не щупали. Jan 12 2014, 16:07 ZASADA avr32 60MHz i = 1 000 000
без оптимизации
double ... Jan 13 2014, 11:02 A. Fig Lee Цитата(ZASADA @ Jan 13 2014, 06:02) avr32... Jan 13 2014, 13:37 ZASADA на реальной плате
причем double не особо круто со... Jan 13 2014, 14:01 A. Fig Lee Цитата(ZASADA @ Jan 13 2014, 09:01) на ре... Jan 13 2014, 14:12  M_Andrey Кстати, если посмотреть в float числа:
1234.567 ... Jan 13 2014, 14:41 Ruslan1 Цитата(ZASADA @ Jan 13 2014, 16:01) на ре... Jan 13 2014, 14:41 ZASADA Цитата800036E0 mov R8, 0
800036E2 movhi R7, 0... Jan 13 2014, 14:39 neiver Попробовал на Stm32f407 с использованием аппаратно... Jan 13 2014, 14:47 ViKo Цитата(neiver @ Jan 13 2014, 17:47) Попро... Jan 14 2014, 08:25 ZASADA а не сокращает, я его после цикла распечатываю =)... Jan 13 2014, 15:28 RomaRoma всем спасибо
тема закрыта
вижу, что на микроконтро... Jan 14 2014, 07:57  megajohn Цитата(RomaRoma @ Jan 14 2014, 11:57) виж... Jan 14 2014, 08:21  yes Цитата(RomaRoma @ Jan 14 2014, 11:57) все... Jan 14 2014, 13:21 ViKo С вашего позволения, предлагаю тест, который 1000 ... Jan 14 2014, 10:06 A. Fig Lee Цитата(ViKo @ Jan 14 2014, 05:06) С вашег... Jan 14 2014, 16:23 SM Добавлю к списку еще MCU на Cortex-R4F, такие тоже... Jan 14 2014, 14:19 ZASADA могу завтра на авр32 запустить=) Jan 14 2014, 16:45 A. Fig Lee Цитата(ZASADA @ Jan 14 2014, 11:45) могу ... Jan 14 2014, 17:24 ZASADA итак вычисление числа Пи, код ViKo
AVR32, 60MHz, ж... Jan 15 2014, 07:56 mantech Цитата(ZASADA @ Jan 15 2014, 11:56) итак ... Jan 15 2014, 09:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|