Jump to content

    
jeka

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

Recommended Posts

5 часов назад, mantech сказал:

и не буду тратить ЗП на долгие изыскания и ручную оптимизацию нескольких тактов в программе, это все время, которое стоит недешего

Не подумайте, что я хочу вас переубедить, но почему-то в таком случае люди считают деньги и время в первую очередь. А то, что формируется высококлассный профессионал, который способен решать сверхсложные задачи, совершенно забывается. И то, что этот профессионал способен подтянуть своих коллег (спорно, конечно) до более высокого уровня - тоже забывается. Другими словами, нет видения долгосрочной перспективы. Я считаю, что это огромное упущение и тлетворное влияние какой-то дурной, возможно "западной", системы. Мы видим краткосрочную перспективу и выгоду, но на человека нам чихать и плевать с высокой колокольни. При этом вполне допускаю, что профессионала, который растёт и учится, могут запросто либо заставить работать халтурно, либо уволят и заменят "профессионалом", который возьмёт процессор по-жирнее и сляпает за день "решение". Кстати, это я отчасти наблюдаю у себя на работе: те, кто не знает архитектуру процессора и микроконтроллера, и даже не пытаются это сделать, лепят "очевидные" решения, которые, надо сказать, даже и работают. Вот только есть маааленькая проблема: с добавлением функционала к устройству, начинают наблюдаться тормоза и различные баги вылазить. Пару раз вообще до абсурда доходило. Встретив в моём коде команды SIMD длф Cortex-M4F мне было сказано: "никакого ассемблера, пишит на Си". И было бесполезно объяснять, что компилятор не генерит эти команды. Ответ мне был вполне резонный: "Зато твой код на Си поймёт даже первокурсник после университета"...

З.Ы. Простите за длинный опус) Просто немного накопилось) Без обид и личных наездов)

 

Edited by MrBearManul

Share this post


Link to post
Share on other sites

На эту тему есть известный анекдот, очень популярный среди IT'шников:

 

Цитата

Вася и Петя одновременно начали писать один и тот же продукт.
Вася был «ориентирован на результат» и начал сразу писать говнокод не продумав толком архитектуру.
А Петя месяц разрабатывал архитектуру, месяц делал удобный интуитивный интерфейс, которому позавидывал бы Джони Айв, потом месяц писал тесты, потом два месяца писал сам код и получил идеальное стабильное приложение.
Но Вася выпустил уже через месяц первую версию программы, пусть и не идеальную, пусть с багами, но рабочую, и начал её продавать. Ещё через месяц выпустил вторую версию исправляющие баги первой и добавляющие новые баги. Ещё через месяц на доходы от продаж нанял двух толковых программеров, которые за два месяца перелопатили весь код, согласно пожеланиям пользователей допилили интерфейс и выпустили третью версию программы.
Итого, через пять месяцев у Васи было два работника, куча клиентов и сносно работающее приложение отвечающее желаниям клиентов.
У Пети было вылизанное никому не известное приложение, минус на банковском счёте и ни одного клиента.
В завершение этого выдуманного примера можно сказать, что через полгода Вася купил все наработки Пети, Петю взял в штат тестировщиком, а сам по пьяни разбился на своём новеньком Туареге

Стоит ли удивляться, что современное ПО - сплошной говнокод.

Share this post


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

а сам по пьяни разбился на своём новеньком Туареге

Что и говорит нам об изначально выигрышной стратегии Пети)

Share this post


Link to post
Share on other sites
8 hours ago, jcxz said:

PS: Нет - никогда Вам не стать работодателем. Потому что не понимаете таких базовых вещей.  :unknw:

Ох уж эти проекции.  Видать сильно вас достали работодатели. 
Но скажу вам одно. Никто из виденным иной стартапов не поднялся за счет вылизывания кода и програмиирования на ассемблере. 
Большинство поднялось когда взяли закрытое производительное железо по NDA и знали низкоконкурентный рынок. 

Идите сейчас смартфон выбирайте по типу кто дольше работает от батарейки. Все ржать будут. 
Ща вот мы купили дорогущий дивайс работающий 10 мин от батарейки.
Так производитель дал нам комплект этих батареек и сделал чтоб они вставлялись как магазин в пистолет, одним движением.  

Share this post


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

Никто из виденным иной стартапов

 

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

Большинство поднялось

А что мешает иметь собственное мнение?

Share this post


Link to post
Share on other sites
4 часа назад, dxp сказал:

Стоит ли удивляться, что современное ПО - сплошной говнокод.

Да конечно не стоит, ибо по данному вопросу уже все высказал, лучше потратить время на поиски багов (тестирование), этим самым помочь своей сервисной службе и репутации готового изделия, а то сколь видел такого, что сначала пишут передачу данных в виде текста, чтоб его сначала формировать, потом передавать гораздо большее кол-во ненужной информации, потом ее-же парсят снова, при этом тратя быстродействие, а потом начинают оптимизировать такты, а мы должны все это оплачивать и тратить время...

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

А что мешает иметь собственное мнение?

Абсолютно ничего, только вот уважаемый  jcxz всегда толкает только свое мнение...

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

Никто из виденным иной стартапов не поднялся за счет вылизывания кода и програмиирования на ассемблере. 

Тут пожалуй соглашусь с вами :biggrin:

4 часа назад, dxp сказал:

А Петя месяц разрабатывал архитектуру, месяц делал удобный интуитивный интерфейс, которому позавидывал бы Джони Айв, потом месяц писал тесты, потом два месяца писал сам код и получил идеальное стабильное приложение.

А теперь опишите такого "Петю" в реальности, где у нас такие? )))

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

Ну да, а потом сляпанный "как попало главное быстрее" девайс, выходит на рынок. Допустим - он вышел на рынок на месяц раньше, чем девайс сделанный другой конторой профессионалом и умеющий работать в 2 раза дольше на той же задаче и батарее.

Причем опять же тут "сляпаный"? Не надоела подмена понятий уже? Уже сказал, что вместо кучи потраченного времени на ручную оптимизацию, лучше использовать на тестирование устройства! Еще раз это написать?

И не будет 2х кратного прироста времени работы, не тешьте себя, процентов 20 согласен, но потребителю будет больше важен функционал и стабильность работы, а так же, кто первый выдаст готовое устройство (рынок смартфонов вам в помощь)..

10 часов назад, SII сказал:

Но да, "нормальные люди" под такие задачи используют ПЛИСы или, на худой конец, 100500-тыщеядерные процы на 100500-тыщ ГГц. А, ещё, программировать всё это сейчас надо на Питоне.

Да, для этого нормальные люди используют DSP. И вот тот самый пример быдлокодерства - будем оптимизировать такты, но писать прогу на интерпретируемом языке! Ну просто блестяще :biggrin:

Edited by mantech

Share this post


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

О чём? Что такое "батарейное устройство" слышали?

Посмотрите сначала на то, что кортекс М7 это в большинстве своем навороченные МК с кучей периферии и повышенной тактовой частотой, не очень они оптимальны для батарейных устройств...

Share this post


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

Идите сейчас смартфон выбирайте по типу кто дольше работает от батарейки. Все ржать будут.

Да-да. Очень смешно.. :)

Quote

Задумывались, ли вы куда деваются ваши старые ноуты, смартфоны, телевизоры и другая техника? От электронного мусора страдают многие страны третьего мира. И самая большая в мире техносвалка находится вблизи Аккры, столицы Ганы. Туда ежегодно попадает около 200 тысяч тонн электронного мусора. Местные жители жгут старую технику ради получения цветных металлов. Гигантская территория затянута ядовитым дымом, содержащим ртуть, мышьяк и свинец. Люди здесь редко доживают до 30 лет. 50 миллионов тонн электроники в год производят развитые страны. Из них лишь 25% попадает на переработку. Остальное же вывозится в страны третьего мира. Понятно, что здесь все решают деньги. Стоимость захоронения опасных отходов в развитых странах достигает 5 тысяч долларов за тонну, а в африканских – не более 10 долларов. Так электронный мусор оказывается в этом болотистом местечке под названием Агбогблоши недалеко от Аккры, столицы африканского государства Гана. Местные жители в возрасте от 7 до 25 лет добывают там цветные и благородные металлы, содержащиеся в микросхемах. В основном это медь.

 

Share this post


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

Но скажу вам одно. Никто из виденным иной стартапов не поднялся за счет вылизывания кода и програмиирования на ассемблере. 

Может не будем передёргивать? О "программировани на ассемблере" речь не шла. Речь шла об "оптимизации отдельных критичных участков" на ассемблере.

Share this post


Link to post
Share on other sites
1 hour ago, mantech said:

Посмотрите сначала на то, что кортекс М7 это в большинстве своем навороченные МК с кучей периферии и повышенной тактовой частотой, не очень они оптимальны для батарейных устройств...

Теперь еще есть уровень устройств с energy harvesting. Для них да, M7 не подходит.
А для батарейных идет на ура. 
 

Share this post


Link to post
Share on other sites
1 час назад, mantech сказал:

Причем опять же тут "сляпаный"? Не надоела подмена понятий уже? Уже сказал, что вместо кучи потраченного времени на ручную оптимизацию

Вам - не надоела? О какой "куче времени" всё время талдычите? Тот реальный пример, что я привёл выше, у меня занял около часа времени. Ну может два вместе "с попить чайку". Это - "куча"??? :russian_ru:

Цитата

И не будет 2х кратного прироста времени работы, не тешьте себя, процентов 20 согласен, но потребителю будет больше важен функционал

Я привёл реальный пример, как вы просили. Приведите пример кода на си, реализующего то же самое, но всего на 20% тормознее.

И ещё - приведите то же самое, но для 8-битных данных.

Или только трепаться можете, а реально ничего делать не умеете?

 

Цитата

и стабильность работы, а так же, кто первый выдаст готовое устройство (рынок смартфонов вам в помощь)..

Ну раз для вас смартфоны - мерило всего, то Ок: первые смартфоны (насколько мне не изменяет память) выдала на рынок Нокия. И где же сейчас она, а?

1 час назад, mantech сказал:

Да, для этого нормальные люди используют DSP.

"Смешались в кучу люди кони".... DSP то тут каким боком?  :wacko2:  

 

12 часов назад, mantech сказал:

А зачем? Можете реальный пример привести?

PS: Реальный пример я вам дал. Жду от вас реального примера с кодом на си.

Share this post


Link to post
Share on other sites
1 hour ago, jcxz said:

Может не будем передёргивать? О "программировани на ассемблере" речь не шла. Речь шла об "оптимизации отдельных критичных участков" на ассемблере.

Ну отдельных, так отдельных. Это нишевой навык. 
Парни теперь даже на плюсах заморочены проблемами железа. 
Во только что статья забавная вышла: https://habr.com/ru/company/yandex/blog/536624/
Плюсы становятся как ассемблер, нужно знать чо такое полные и неполные барьеры и не лохануться в lock-free programming 

Share this post


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

Я привёл реальный пример, как вы просили. Приведите пример кода на си, реализующего то же самое, но всего на 20% тормознее.

И ещё - приведите то же самое, но для 8-битных данных.

Или только трепаться можете, а реально ничего делать не умеете?

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

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

О какой "куче времени" всё время талдычите?

Об доскональном изучении асма от АРМ. Все, ради чего бы мне пришлось это делать была задача на асме в переключателе контекста РТОС.

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

Задумывались, ли вы куда деваются ваши старые ноуты, смартфоны, телевизоры и другая техника?

Ну дак все же хотели кучи товаров на прилавках, постоянно новых версий, фичей и пр... Потребкультура в лучшем виде - кушайте, не обляпайтесь)))

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

DSP то тут каким боком? 

Вот таким - "Какое-нибудь там БПФ и прочая обработка сигналов с приличными по размерам массивами данных, например."

Share this post


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

Вот таким - "Какое-нибудь там БПФ и прочая обработка сигналов с приличными по размерам массивами данных, например."

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

Share this post


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

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

То есть - вы понятия не имеете на сколько такой код даёт ускорение, но при этом уже многократно уверенно и безапелляционно заявили:

20.01.2021 в 10:25, mantech сказал:

выжимать лишний такт

21.01.2021 в 20:53, mantech сказал:

ручную оптимизацию нескольких тактов в программе

21.01.2021 в 20:53, mantech сказал:

мы тут о нескольких тактах говорим, что они решат?

22.01.2021 в 09:08, mantech сказал:

И не будет 2х кратного прироста времени работы, не тешьте себя, процентов 20 согласен

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

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

А чтобы узнать о том, "на сколь убыстрили": вот когда осилите систему команд - вот тогда и узнаете.  :unknw:

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.