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

 
 
> Помогите оттестировать производительность микроконтроллера ARM или AVR
RomaRoma
сообщение Jan 10 2014, 19:21
Сообщение #1





Группа: Новичок
Сообщений: 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);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
megajohn
сообщение Jan 10 2014, 20:18
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



с максимальной оптимизацией по скорости получилось:

для CM3:( IAR DLIB )
250 572 180 тактов для float ( 32 бита )
347 571 190 тактов для double ( 64 бита )

для AVR: ( IAR DLIB )
1 725 881 000 тактов для float ( 32 бита )
3 697 655 000 тактов для double ( 64 бита )


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Jan 12 2014, 12:03
Сообщение #3


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

Группа: Свой
Сообщений: 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 сек
Go to the top of the page
 
+Quote Post
megajohn
сообщение Jan 12 2014, 18:15
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(M_Andrey @ Jan 12 2014, 16:03) *
В железе: ATMega128 16MHz, замеры времени по TIMER1 плюс прерывание по его переполнению для увеличения разрядности.
float Time (1000000) = 0x0000230D 2135 36,7539393125 сек
double Time (1000000) = 0x0003887D 262C 948,42531475 сек


чойта странно, при double получилось 15 174 805 036 тактов, при float - 588 063 029 тактов. Смущает кратность в 26 раз.


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Jan 12 2014, 19:12
Сообщение #5


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

Группа: Свой
Сообщений: 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


Go to the top of the page
 
+Quote Post
megajohn
сообщение Jan 12 2014, 19:21
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(M_Andrey @ Jan 12 2014, 23:12) *
Все вопросы к компилятору:


ну а где D_ADD_L11, D_DIV_L11, SL2D_L11 ?




--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 22:20
Рейтинг@Mail.ru


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