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

 
 
> профилирование и оптимизация на 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
sergeeff
сообщение Mar 7 2011, 10:18
Сообщение #10


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

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



Цитата(bzzz77 @ Mar 7 2011, 12:58) *
не понимаете и ладно.


Очень рад за вас, понимающий вы наш!

Может статейку в приличном журнале (Dr. Dobb's, например) опубликуете с практическими результатами исследований и рекомендациями, как и что в таких случаях в программе подправить? Как использовать ETM для вылавливания cache miss. Получите наш общий респект и денежку подзаработаете.

Цитата
когда производительность ощутимо падает


Пример в студию! С цифрами, пожалуйста.
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
|||- - sasamy   Цитата(sergeeff @ Mar 7 2011, 13:18) Как ...   Mar 7 2011, 11:09
||- - AlexandrY   Цитата(bzzz77 @ Mar 7 2011, 11:58) значит...   Mar 7 2011, 11:47
||- - bzzz77   Цитата(AlexandrY @ Mar 7 2011, 14:47) Что...   Mar 7 2011, 12:03
|||- - sergeeff   Цитата(bzzz77 @ Mar 7 2011, 15:03) ос сле...   Mar 7 2011, 12:42
|||- - ar__systems   Цитата(sergeeff @ Mar 7 2011, 07:42) Даже...   Mar 7 2011, 13:29
|||- - 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 - 19:59
Рейтинг@Mail.ru


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