Jump to content

    
jeka

cortex m7 CPU/FPU pipeline, оптимизация кода

Recommended Posts

6 hours ago, MrBearManul said:

А зачем отдельное DSP я не понял, если Cortex-M4F имеет некоторое количество команд, предназначенных для этой самой ЦОС? Ну вот же проблема, компилятор не может сгенерировать необходимые инструкции сам((( Тут нужно либо стороннюю библиотеку использовать, либо разбираться в командах самостоятельно. Вот и получается, что у вас на плате уже может отказаться микроконтроллер, который всё это может)))

Я не приходит в голову что создатели системы команд сами не знали какие алгоритмы их система будет выполнять. И оставили ненужную избыточность.
Я  больше доверяю писателям компиляторов. И если они там что -то не используют в системе команд, то это скорее всего никому и не нужно.

35 minutes ago, jcxz said:

Откуда тогда все эти цифры взяли "несколько тактов", "20%", ...? С потолка? Из пальца?

Я скажем знаю откуда.
Это типичный прирост производлительности когда в компиляторе переключаются из режима без оптимизации на режим с полной оптимизацией.
Я 100% уверен что руками на ассемблере вы после этого и на 10% не улучшите.  

Share this post


Link to post
Share on other sites
15 минут назад, AlexandrY сказал:

Я скажем знаю откуда.
Это типичный прирост производлительности когда в компиляторе переключаются из режима без оптимизации на режим с полной оптимизацией.
Я 100% уверен что руками на ассемблере вы после этого и на 10% не улучшите.  

Я уже приводил пример (много собщений назад в этой теме) того как я руками (ну точно не ногами :biggrin:) улучшил с помощью ассемблера типичную задачу.

Вот он: https://electronix.ru/forum/?app=core&module=system&controller=content&do=find&content_class=forums_Topic&content_id=148778&content_commentid=1583380

А теперь - приведите пример кода на си, выполняющего ту же самую задачу и при этом тормознее всего на 10%. При компиляции с любым уровнем оптимизации.

А затем - то же самое, но для случая 8-битных данных. И чтобы получался код тормознее всего на 10%, не более!

Share this post


Link to post
Share on other sites
38 минут назад, AlexandrY сказал:

Я  больше доверяю писателям компиляторов. И если они там что -то не используют в системе команд, то это скорее всего никому и не нужно.

Ну да. Скажите пожалуйста, как вы на языке Си укажете сгенерировать какую-нибудь ISB, DSB, NOP, UADD16? Понятное дело, что есть intrinsic-функции. Но не это ли программирование на том же самом ассемблере?

 

39 минут назад, AlexandrY сказал:

Я  больше доверяю писателям компиляторов.

Мне тоже иногда трудно доверять себе. Но это, ИМХО, один из лучших путей развития)

Share this post


Link to post
Share on other sites
23 minutes ago, jcxz said:

Я уже приводил пример (много собщений назад в этой теме) того как я руками (ну точно не ногами :biggrin:) улучшил с помощью ассемблера типичную задачу.

Эт не пример, а халтура.  
Оформите в виде примера под конкретную среду разработки, сделайте для него верифицирующие тесты и напишите комментарии к конце концов.
Т.е.выполните доказательство работы (proof-of-work). 
А то вы копипасту пихаете, а я должен видите ли писать код.   

3 minutes ago, MrBearManul said:

Ну да. Скажите пожалуйста, как вы на языке Си укажете сгенерировать какую-нибудь ISB, DSB, NOP, UADD16? Понятное дело, что есть intrinsic-функции. Но не это ли программирование на том же самом ассемблере?

Эт перевод стрелок. Читайте тогда еще раз - https://habr.com/ru/company/yandex/blog/536624/
Но только до конца. 

Share this post


Link to post
Share on other sites
31 минуту назад, AlexandrY сказал:

Оформите в виде примера под конкретную среду разработки, сделайте для него верифицирующие тесты и напишите комментарии к конце концов.

Всё с вами ясно. Слив засчитан!  :sarcastic:

31 минуту назад, AlexandrY сказал:

а я должен видите ли писать код.

У меня складывается впечатление, что вы этого просто не умеете...  :unknw: 

А все остальные отмазки это просто:

31 минуту назад, AlexandrY сказал:

Эт перевод стрелок.

 

Share this post


Link to post
Share on other sites
31 minutes ago, jcxz said:

У меня складывается впечатление, что вы этого просто не умеете...  :unknw: 

Я так понимаю что чесно меряться вы не склонны.  :lol2:
Это было ожидаемо. Ничего кроме копипасты выложить не способны. 
 

Share this post


Link to post
Share on other sites
7 hours ago, AlexandrY said:

Ничего кроме копипасты выложить не способны. 

А вот есть люди действительно неоценимый вклад на ассемблере делающие - https://www.quinapalus.com/qfplib-m0-full.html
Вот с ними мериться не хочется.
Они не болтовней доказали что могут.  

Share this post


Link to post
Share on other sites
8 часов назад, AlexandrY сказал:

Эт перевод стрелок.

Забавный вы) Вот сколько вас читаю, вы постоянно чем-то восхищаетесь: то кинетисами, то MQX, то Renesas, то Azure, то Mbed. Скачете с одного на другое. Хвалитесь огромными проектами по несколько сотен тысяч строк. Высмеиваете умение программировать и оптимизировать на ассемблере. Что же с вами случилось? Ведь когда-то же вы делали нормальные проекты на ucOS, выкладывали на ныне несуществующем сайте свои продукты, и всё выглядело как-то по-взрослому. А сейчас сплошное махание шашкой... Неужели и на вас, взрослого человека, так подействовали эти "чудо технологии"?

7 минут назад, AlexandrY сказал:

А вот есть люди действительно неоценимый вклад на ассемблере делающие

 

8 минут назад, AlexandrY сказал:

Вот с ними мериться не хочется.

А чего так? Не верите в собственные силы?

8 минут назад, AlexandrY сказал:

Они не болтовней доказали что могут.  

Ну тут человек как бы свой кусок кода привёл. Вполне понятный. И главное, что привёл свой собственный, а не "каких-то ребят из азуре ос".

Share this post


Link to post
Share on other sites
3 minutes ago, MrBearManul said:

Ну тут человек как бы свой кусок кода привёл. Вполне понятный. И главное, что привёл свой собственный, а не "каких-то ребят из азуре ос".

Ну и юзайте его кусок.
А остальным в этом форуме будет гораздо интересней узнать о библиотеке Qfplib. Уж поверьте. 
Я стараюсь  форуму дать информационную направленность.

Share this post


Link to post
Share on other sites
12 минут назад, MrBearManul сказал:

Забавный вы) Вот сколько вас читаю, вы постоянно чем-то восхищаетесь: то кинетисами, то MQX, то Renesas, то Azure, то Mbed. Скачете с одного на другое. Хвалитесь огромными проектами по несколько сотен тысяч строк.

....при этом ни одной строки кода! Ни единой и никогда. Всегда только - пустопорожние рассуждения о неких "ажурах ртосах" в облаках.

и ничего по делу.... Кто-то занимается делом, а кто-то только рассуждает о нём. Каждому своё...  :unknw:

Share this post


Link to post
Share on other sites
17 минут назад, AlexandrY сказал:

Ну и юзайте его кусок.

Ну зачем же кусок. Я делаю более широкие выводы. Мне, как правило, всегда интересно поглядеть на чужую работу того человека, который её сделал сам и может за неё ответить. Ведь я и сам что-то подобное делаю. И чем эта работа хуже, чем вами же приведённая Qfplib? Только тем, что она не называется красиво, а просто выполняет свою задачу? Или тем, что её нет на github'е? По-моему у вас какое-то идолопоклонение))) Не всегда шедевры нужно искать в Лувре, иногда они находятся и в паре шагов от вас)

17 минут назад, AlexandrY сказал:

А остальным в этом форуме будет гораздо интересней узнать о библиотеке Qfplib. Уж поверьте. 

Интересно, почему же вы делаете выводы за всех (ну "остальных") на этом форуме? Хотя про Qfplib почитаю.

17 минут назад, AlexandrY сказал:

Я стараюсь  форуму дать информационную направленность.

Да, благодаря вам, мы знаем и о "ренесансах" и о "эмкьюикс" и о "мбед" и о прочих занятных штучках, которые вы рекламируете почти в каждом своём сообщении. Спасибо!

11 минут назад, jcxz сказал:

Каждому своё...  :unknw:

 О да)))

13 минут назад, jcxz сказал:

....при этом ни одной строки кода! Ни единой и никогда.

Только отсылки к github'у:angel:

Edited by MrBearManul

Share this post


Link to post
Share on other sites
11 часов назад, jcxz сказал:

Откуда тогда все эти цифры взяли "несколько тактов", "20%", ...? С потолка? Из пальца?

Рассуждаете о том, о чём понятия не имеете. И при этом - критикуете людей, которые разбираются в обсуждаемом вопросе. Грош-цена вашему "мнению".

Из жизненного опыта, и доказывать это никому не собираюсь, кому надо - сам докажет... А вообще, я тут вам ничего не рекомендовал, а лишь хотел озвучить мнение, что ручной оптимизацией занимается 1 % программистов, и это больше никому особо не интересно. Если вы попали в этот процент, то значит вам очень повезло)))  А больше всего это должно интересовать разработчиков компиляторов, чтобы те, кто ими пользуется могли использовать эти преимущества в обычной работе.

18 часов назад, MrBearManul сказал:

А зачем отдельное DSP я не понял, если Cortex-M4F имеет некоторое количество команд, предназначенных для этой самой ЦОС? Ну вот же проблема, компилятор не может сгенерировать необходимые инструкции сам(((

Ну если эти команды вас устраивают - то конечно не нужен. А то, что компилятор не работает с ними, то он либо устаревший, или эти команды не такие уж и замечательные, а может у вас есть третья причина?

Edited by mantech

Share this post


Link to post
Share on other sites

Ребята, Вы зря ссоритесь, на мой взгляд. Честно говоря, действительно качество кода упало. Причём у всех. Это вынужденная ситуация. Жизненный цикл изделия уменьшился в разы!
Раньше изделие разрабатывалось на 10-30 лет. Сколько телефон раньше служил? А сейчас?
Не хватает времени на вылизывание. Да и с тестированием проблемы. Да что говорить, нормальную актуальную документацию сделать проблема.
Срок активной жизни изделия уменьшился, а сложность возросла. Обновления происходят непрерывно. Стоимость упала.
Объективно, как ни крути, прав mantech.
Но автору топика, надо сказать спасибо. Потому, что он проделал кучу работы. Работы академической. Работы на которую, большинству, просто не хватает времени. И результаты данной работы выложил для всех! И это кому-то сэкономит время. Плюс, появляется общее понимание, как работает процессор, что порой тоже очень полезно.

Share this post


Link to post
Share on other sites
3 hours ago, mantech said:

ручной оптимизацией занимается 1 % программистов, и это больше никому особо не интересно

Разработкой ОС, написанием драйверов и т.п. низкоуровневой фигнёй занимается тоже меньше 1% программистов, а основная масса тусуется в веб-разработке. Разработчиков компиляторов, кстати, ничуть не больше. Значит, всё это не нужно -- всем в веб, остальное упразднить.

Share this post


Link to post
Share on other sites
On 1/23/2021 at 12:37 PM, jcxz said:

А теперь - приведите пример кода на си, выполняющего ту же самую задачу и при этом тормознее всего на 10%

CMSIS ?

https://arm-software.github.io/CMSIS_5/DSP/html/group__Max.html

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.