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

 
 
> профилирование и оптимизация на arm
bzzz77
сообщение Mar 5 2011, 21:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260



день добрый,

осваиваю lpc2478, хотел бы понять как на arm принято профилировать и оптимизировать код. скажем запустил я helix mp3 decoder с буферами в sdram. интересно на что такты уходят. на x86 все просто - есть perf counters, покажут и cache miss и branch misprediction, прочее и понятно где можно начинать копать. а что делать на arm? только симулятор?

спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Mar 5 2011, 22:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Можно измерять время выполнения участков кода. Что-то вроде start_timer() и stop_timer(). Если есть сомнения в калибровке таймера, то set_pin_high() и set_pin_low(), а измерение времени - осциллографом на ножке МК. Как-то так.
Go to the top of the page
 
+Quote Post
bzzz77
сообщение Mar 6 2011, 06:32
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260



Цитата(scifi @ Mar 6 2011, 01:20) *
Можно измерять время выполнения участков кода. Что-то вроде start_timer() и stop_timer(). Если есть сомнения в калибровке таймера, то set_pin_high() и set_pin_low(), а измерение времени - осциллографом на ножке МК. Как-то так.


про таймеры тоже понятно, конечно. но вообще я еще рассчитывал на "что-нибудь" чтобы позволило оценить не только время исполнения, но накладные расходы на sdram, например. в любом случае спасибо.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Mar 6 2011, 11:29
Сообщение #4


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(bzzz77 @ Mar 6 2011, 09:32) *
про таймеры тоже понятно, конечно. но вообще я еще рассчитывал на "что-нибудь" чтобы позволило оценить не только время исполнения, но накладные расходы на sdram, например. в любом случае спасибо.


Ну и кто вам мешает, если очень любопытно, запустить тестовую процедуру в ram и sdram. Померить разницу и быть счастливым?
Go to the top of the page
 
+Quote Post
bzzz77
сообщение Mar 6 2011, 19:59
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260



Цитата(sergeeff @ Mar 6 2011, 14:29) *
Ну и кто вам мешает, если очень любопытно, запустить тестовую процедуру в ram и sdram. Померить разницу и быть счастливым?


это можно. а остальное как глядеть? вот тут посоветовали etm - хотя бы почитаю про него.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Mar 6 2011, 20:51
Сообщение #6


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(bzzz77 @ Mar 6 2011, 22:59) *
это можно. а остальное как глядеть? вот тут посоветовали etm - хотя бы почитаю про него.


Почитайте, почитайте. Потом посмотрите сколько это стоит, а потом изучите, работает ли он с вашим компилятором, а потом есть ли etm в вашем процессоре и выведен ли он как надо и прочее. Тогда выяснится, что пиписькомера с осциллографом вам вполне хватит. По крайней мере, на первое время.
Go to the top of the page
 
+Quote Post
bzzz77
сообщение Mar 6 2011, 21:01
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260



Цитата(sergeeff @ Mar 6 2011, 23:51) *
Почитайте, почитайте. Потом посмотрите сколько это стоит, а потом изучите, работает ли он с вашим компилятором, а потом есть ли etm в вашем процессоре и выведен ли он как надо и прочее. Тогда выяснится, что пиписькомера с осциллографом вам вполне хватит. По крайней мере, на первое время.


про осциллограф я пока не понял. вот захотел я узнать места где много времени тратится на доступ к памяти, то есть произошел cache miss. куда я осциллографом буду тыкать?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Mar 7 2011, 07:15
Сообщение #8


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(bzzz77 @ Mar 7 2011, 00:01) *
про осциллограф я пока не понял. вот захотел я узнать места где много времени тратится на доступ к памяти, то есть произошел cache miss. куда я осциллографом буду тыкать?


А что, вы думаете ETM вам про cache miss расскажет?

Это во-первых.

Во-вторых, не понимаю разговоров про ловлю микросекундных блох в миллисекундных процедурах. Или задача не по зубам выбранному процессору, или алгоритм хромает. А cache miss - дело десятое.

Примеров тому не счесть. Вот вчера видел очередной вопрос про AVR, где в main() три переменные float....
Go to the top of the page
 
+Quote Post
bzzz77
сообщение Mar 7 2011, 09:58
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260



Цитата(sergeeff @ Mar 7 2011, 10:15) *
А что, вы думаете ETM вам про cache miss расскажет?

Это во-первых.

Во-вторых, не понимаю разговоров про ловлю микросекундных блох в миллисекундных процедурах. Или задача не по зубам выбранному процессору, или алгоритм хромает. А cache miss - дело десятое.

Примеров тому не счесть. Вот вчера видел очередной вопрос про AVR, где в main() три переменные float....


не понимаете и ладно. видимо никогда не сталкивались с ситуациями когда производительность ощутимо падает если, например, две связанные переменные попадают в разные cacheline. вас послушать, так вместо оптимизации (и алгоритма тоже) нужно сразу из пушек по воробьям палить. с задержками в sdram, cache miss очень хорошо производительность может испортить.


Цитата(scifi @ Mar 7 2011, 10:37) *
Я думал, речь идёт об LPC2478. Если я правильно помню, никакого кэша там нет. Или это уже просто "разговор за жизнь"?


кэша нет, ступил я слегка. но есть разница в доступе к sdram и sram, значит perf counters (или etm) мог бы помочь в правильной организации: что положить в sram, что в sdram. например.

ps. слегка удивляют люди, которые утверждают, что инструмент - лишний и гвозди можно забивать топором.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 7 2011, 11:47
Сообщение #10


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(bzzz77 @ Mar 7 2011, 11:58) *
значит perf counters (или etm) мог бы помочь в правильной организации: что положить в sram, что в sdram. например.


Что за perf counters?
Если те что по ссылке http://msdn.microsoft.com/en-us/library/aa...3(v=vs.85).aspx, то портируйте Win CE и получите их.

Прецизионных счетчиков в микроконтроллерах полно, выбираете любой и измеряете длительность любых процедур с точностью до такта.
В микроконтроллерах измерения можно сделать гораздо проще и гибче чем в в Windows и с меньшими накладными.

Если вы не используете операционку с готовым фреймворком для счетчиков прозводительности, то понятно что в свой код счетчики надо вставлять самому.
Все серьезные RTOS под микроконтроллеры имеют механизм "Performance Counters"


Go to the top of the page
 
+Quote Post
bzzz77
сообщение Mar 7 2011, 12:03
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260



Цитата(AlexandrY @ Mar 7 2011, 14:47) *
Что за perf counters?
Если те что по ссылке http://msdn.microsoft.com/en-us/library/aa...3(v=vs.85).aspx, то портируйте Win CE и получите их.

Прецизионных счетчиков в микроконтроллерах полно, выбираете любой и измеряете длительность любых процедур с точностью до такта.
В микроконтроллерах измерения можно сделать гораздо проще и гибче чем в в Windows и с меньшими накладными.

Если вы не используете операционку с готовым фреймворком для счетчиков прозводительности, то понятно что в свой код счетчики надо вставлять самому.
Все серьезные RTOS под микроконтроллеры имеют механизм "Performance Counters"


ос слегка не в курсе того, что происходит в ядре процессора. оно же не в курсе ситуаций типа cache hit/miss, branch midprediction и прочих вещей, которые придумали, чтобы мы с ними боролись.

в новых армах есть вот такое, например: http://oprofile.sourceforge.net/docs/arm-v7-events.php

а на v4 похоже только etm sad.gif
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Mar 7 2011, 12:42
Сообщение #12


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(bzzz77 @ Mar 7 2011, 15:03) *
ос слегка не в курсе...
в новых армах есть вот такое,.. н
а на v4 похоже только etm sad.gif


Вы все рассказываете, как оно где-то должно быть очень здорово. Про всякие "новые" ARM'ы, a на конкретные вопросы отвечать не любите.

Цитата
Если команда вместо 1 такта выполняется за 30 тактов - подсказать вам cache miss или hit там имел место ?


Даже если бы у меня был ETM на борту и весь инструментарий, вы как себе представляете вылавливание таких команд (1 против 30) в программе более 1Мб? Учитывая статистический механизм срабатывания кеша?

Цитата
Современные технологии программирования с использованием JIT компиляции


Читаем Wiki : (http://ru.wikipedia.org/wiki/JIT-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F)
технология увеличения производительности программных систем, использующих байт-код, путём компиляции байт-кода в машинный код непосредственно во время работы программы. Таким образом достигается высокая скорость выполнения (сравнимая с компилируемыми языками) за счёт увеличения потребления памяти (для хранения результатов компиляции) и затрат времени на компиляцию.

Вы действительно считаете, что такая технология - благо для embedded processor? И как вы себе представляете постоянное размещение программы в кеше, если объем программы/данных превышают объемы соответствующих кешей?
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Mar 7 2011, 13:29
Сообщение #13


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(sergeeff @ Mar 7 2011, 07:42) *
Даже если бы у меня был ETM на борту и весь инструментарий, вы как себе представляете вылавливание таких команд (1 против 30) в программе более 1Мб? Учитывая статистический механизм срабатывания кеша?

Вы продолжаете тупить. В програмее размером 1 Mb (Гхм... компилированного кода? Вы серьезно?) будет небольшое количество критичного кода, и естественно никто никогда ВСЮ программу не профилирует, даже на PC, где 1МБ как раз не предел. Раз уж взялись википедию читать, почитайте про профилирование.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bzzz77   профилирование и оптимизация на arm   Mar 5 2011, 21:25
||- - aaarrr   Цитата(bzzz77 @ Mar 7 2011, 12:58) ps. сл...   Mar 7 2011, 10:11
||- - sergeeff   Цитата(bzzz77 @ Mar 7 2011, 12:58) не пон...   Mar 7 2011, 10:18
|||- - sasamy   Цитата(sergeeff @ Mar 7 2011, 13:18) Как ...   Mar 7 2011, 11:09
|||- - bzzz77   Цитата(sergeeff @ Mar 7 2011, 15:42) Вы д...   Mar 7 2011, 14:21
|||- - AlexandrY   Цитата(bzzz77 @ Mar 7 2011, 16:21) курите...   Mar 7 2011, 14:40
|||- - bzzz77   Цитата(AlexandrY @ Mar 7 2011, 17:40) Я в...   Mar 7 2011, 15:27
|||- - sergeeff   Цитата(bzzz77 @ Mar 7 2011, 18:27) ... ес...   Mar 7 2011, 15:54
||||- - bzzz77   Цитата(sergeeff @ Mar 7 2011, 18:54) ... ...   Mar 7 2011, 16:02
||||- - sergeeff   Цитата(bzzz77 @ Mar 7 2011, 19:02) не сто...   Mar 7 2011, 16:31
|||- - AlexandrY   Цитата(bzzz77 @ Mar 7 2011, 17:27) пожалу...   Mar 7 2011, 16:20
|||- - bzzz77   Цитата(AlexandrY @ Mar 7 2011, 19:20) Ну ...   Mar 7 2011, 16:38
|||- - AlexandrY   Цитата(bzzz77 @ Mar 7 2011, 18:38) ну вы ...   Mar 7 2011, 17:08
|||- - bzzz77   Цитата(AlexandrY @ Mar 7 2011, 20:08) Так...   Mar 7 2011, 17:19
||||- - AlexandrY   Цитата(bzzz77 @ Mar 7 2011, 19:19) бескон...   Mar 7 2011, 17:38
||||- - bzzz77   Цитата(AlexandrY @ Mar 7 2011, 20:38) Я п...   Mar 7 2011, 17:57
||||- - sergeeff   Цитата(bzzz77 @ Mar 7 2011, 20:57) особог...   Mar 7 2011, 18:13
||||- - bzzz77   Цитата(sergeeff @ Mar 7 2011, 21:13) Ну-н...   Mar 7 2011, 18:22
|||- - ar__systems   Цитата(AlexandrY @ Mar 7 2011, 12:08) Так...   Mar 7 2011, 18:37
|||- - AlexandrY   Цитата(ar__systems @ Mar 7 2011, 20:37) У...   Mar 7 2011, 18:53
||||- - bzzz77   Цитата(AlexandrY @ Mar 7 2011, 21:53) Это...   Mar 7 2011, 19:02
||||- - aaarrr   Цитата(bzzz77 @ Mar 7 2011, 22:02) хорошо...   Mar 7 2011, 19:31
||||- - bzzz77   Цитата(aaarrr @ Mar 7 2011, 22:31) Если в...   Mar 7 2011, 19:54
||||- - aaarrr   Цитата(bzzz77 @ Mar 7 2011, 22:54) ...нуж...   Mar 7 2011, 20:08
||||- - bzzz77   Цитата(aaarrr @ Mar 7 2011, 23:08) Зачем ...   Mar 7 2011, 20:11
||||- - sonycman   Цитата(bzzz77 @ Mar 8 2011, 00:11) уже вл...   Jun 15 2011, 17:12
|||- - singlskv   Цитата(ar__systems @ Mar 7 2011, 21:37) У...   Mar 8 2011, 21:54
|||- - bzzz77   Цитата(singlskv @ Mar 9 2011, 00:54) Оста...   Mar 9 2011, 05:05
||- - ar__systems   Цитата(AlexandrY @ Mar 7 2011, 06:47) Что...   Mar 7 2011, 13:25
|- - scifi   Цитата(bzzz77 @ Mar 7 2011, 00:01) про ос...   Mar 7 2011, 07:37
- - ViKo   В Keil есть Analisis Windows, а именно Logic Anili...   Mar 6 2011, 11:44
- - sasamy   Цитата(bzzz77 @ Mar 6 2011, 00:25) день д...   Mar 6 2011, 12:36
- - sergeeff   До чего все любят усложнять себе (и другим) жизнь...   Mar 6 2011, 13:24
|- - sasamy   Цитата(sergeeff @ Mar 6 2011, 16:24) До ч...   Mar 6 2011, 15:15
- - ar__systems   Меня тоже неприятно удивило отсутсвие в АРМе каких...   Mar 7 2011, 00:52
- - aaarrr   В старших (ARM11, Cortex-Ax) есть.   Mar 7 2011, 01:07
- - scifi   Хороший, годный срач получился. Чем засорять тему ...   Mar 7 2011, 13:28
|- - AlexandrY   Цитата(scifi @ Mar 7 2011, 15:28) Хороший...   Mar 7 2011, 14:11
- - sergeeff   Цитатафилософия "оскорбить когда сказать нече...   Mar 7 2011, 18:42
|- - bzzz77   Цитата(sergeeff @ Mar 7 2011, 21:42) А че...   Mar 7 2011, 18:45
|- - sergeeff   Цитата(bzzz77 @ Mar 7 2011, 21:45) я разв...   Mar 7 2011, 19:22
|- - sasamy   Цитата(sergeeff @ Mar 7 2011, 22:22) Напо...   Mar 7 2011, 19:29
- - igorsk   DMA используется? В LPC имеется поддержка memory-t...   Mar 7 2011, 23:28
|- - bzzz77   Цитата(igorsk @ Mar 8 2011, 02:28) DMA ис...   Mar 8 2011, 04:44
- - Rst7   QUOTE Это вам 90 килобайт оперативки не хватило .....   Jun 15 2011, 17:44
|- - sonycman   Цитата(Rst7 @ Jun 15 2011, 21:44) Ололо, ...   Jun 15 2011, 18:55
- - Rst7   QUOTE Ничего смешного не вижу А я не в Ваш огород...   Jun 15 2011, 19:14


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

 


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


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