Перейти к содержанию
    

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

6 hours ago, MrBearManul said:

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

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

35 minutes ago, jcxz said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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%, не более!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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/
Но только до конца. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, jcxz said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, AlexandrY said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, AlexandrY сказал:

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

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

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

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

 

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, MrBearManul said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, MrBearManul сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

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

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

 О да)))

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

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

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

Изменено пользователем MrBearManul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, jcxz сказал:

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

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

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

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

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

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

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, mantech said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/23/2021 at 12:37 PM, jcxz said:

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

CMSIS ?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...