Посмотрел фильм "Бункер Палас Отель" (1989). Под впечатлением,
ассоциаций много. Правда, нуар и кавкианщина, на любителя. - Visitor(12.02.2021 17:44, Off, полностью)
Си. AVR. Ищу самый быстрый во вселенной алгоритм поиска
максимального числа в огромном массиве char. Tpoeшник(129 знак., 26.01.2021 19:02, AVR, полностью)
- Средний ПК ищет максимальное за Tpoeшник(310 знак., 10.02.2021 15:14)
- Есть вариантец побыстрее. Обещаете не смеяться? - Tpoeшник(02.02.2021 16:26)
- кто бы мог подумать, что в результате придём к скорострельности 3,5 такта на байт ?:))) Adept(368 знак., 27.01.2021 20:11, ссылка)
- по 3 и 4 хорошо бы подключить мат. анализ и стат.анализ ну и теорию
вероятности например. Искать не перебором сверху вниз или наоборот,
а допустим от центра в обе стороны и каждый участок с двух сторон
навстречу друг другу. klown1(557 знак., 27.01.2021 21:34)
- п.с. klown1(369 знак., 27.01.2021 21:39)
- вы не поняли,
это другое там основной массив обрабатывается методом "приведения к 256", а
уже на результирующем маленьком массиве перебираем сверху вниз,
пока не встретится значащий, а не нулевой байт со значением
максимума. Все ухищрённые методы анализа и перебора будут в разы
проигрывать прямому перебору при обработке такого маленького
массива в 256 байт - Adept(27.01.2021 21:50)
- Честно говоря, совсем не очевидно что "приведение к 256" чем-то
лучше прямого поиска - LightElf(28.01.2021 20:29)
- гораздо быстрее (3 такта на байт данных) - Adept(28.01.2021 21:49)
- Я, кагбэ,
не знал забыл ассемблер AVR, но что-то больно удивительно, что пара
чтение/запись выполняется быстрее, чем пара чтение/сравнение. Ну и
специально подготовленные условия (массив выровнен на 256 байт) -
читерство чистой воды :) - LightElf(29.01.2021 00:31)
- дело в том, что не пара чтение/сравнение, а цикл:
чтение/сравнение/запись/переход по условию а в "приведении к 256"
чтение/запись включает в себя "скрытое сравнение", т.к. потом, в
результирующем массиве 256байт Adept(1047 знак., 29.01.2021 01:16, ссылка)
- Просто я XMEGA не застал, а во времена оны инструкция LightElf(204 знак., 29.01.2021 20:56)
- А если массив 0xffff значений и встретим на первой итерации 0xff?
Получается что тогда такой алгоритм быстрее? Tpoeшник(64 знак., 29.01.2021 13:10)
- не занимайтесь шулерством :) по условию задачи - "поиск максимального числа в огромном массиве
char" :))) Adept(348 знак., 29.01.2021 13:40 - 13:43)
- Повторяю: меня абсолютно не интересует ничего кроме красоты языка
программирования. В данном случае Си. Но не только это. Сами
алгоритмы, мысли, идеи доставляют. Если в вашем случае нет проверки
на 0xff, то "мой" алгоритм может оказаться в тысячи раз быстрее.
Так не пойдет. - Tpoeшник(29.01.2021 13:42)
- описывайте корректно условие задачи и и будет Вам Щастье :)) ну и
допустим разницу в быстродействии Вы завысили в несколько десятков
раз :) не не суть - не нравится шагами по 256 байт - вариант с
побайтовым сравнением и 9 тактов на байт - (но таки как раз
предлагаемый алгоритм с приведением к 256 красив и эффективен
именно на больших массивах (в соответствии с условием задачи) Adept(203 знак., 29.01.2021 13:49)
- Почему завысил? Разница в скорости может достигнуть и миллионов
раз. Я на первой итерации выйду и распечатаю максимальное, а вы? К
условию задачи мне нечего добавить. Ну разве что напомнить что речь
шла о Си. Хотя я ничего против АСМ не имею, но код писать уже на
нем не буду никогда вероятно. - Tpoeшник(29.01.2021 13:53)
- ассемблер незаменим в эксклюзивных задачах достижения максимальной
эффективности и компактности, но такие, к счастью , встречаются
крайне редко, но они бывают, и камень "пожирнее" не всегда есть
возможность выбрать (вот, к примеру у меня в одном проекте ATtiny10
стоит и другой не поставить по габаритам/стоимости :)) Adept(776 знак., 30.01.2021 01:07)
- Открой секрет получения "огромного массива" авром??? все остальное
онанизм!!! - Aleksey_75(29.01.2021 20:59)
- Это при условии , что он 0хFF первый (повезло) , а если последний?
И как уже было сказано , зачем городить огород с массивом 0xFFFF,
если для Вашей задачи (найти максимум) при условии что вы же и
получаете данные , вполне хватит 256 байт. Хоть на Си , хоть на
asm. При этом свой 0xFF, Вы найдете с первого шага . - ILYAUL(29.01.2021 17:12)
- Всё так. Совместить проверку на 255 с разворачиванием цикла. И
волки сыты, и овцы целы. - SciFi(29.01.2021 13:48)
- нуда, хороший вариант. А как насчет условия по уникальности
максимального значения, по условиям задачи оно единственное и
повторяться не может, так ? - klown1(27.01.2021 22:01)
- Вот. А даже старая C66x DSP сделает 8 байт за такт (инструкция
MAXU4 на юнитах L1 и L2) - lloyd(27.01.2021 20:35)
- Единственный вариант хоть немного выиграть - убрать проверку for
(i=0;i<len;i++) на КАЖДОМ шаге сравнения. arhiv6(1279 знак., 27.01.2021 09:21, ссылка, ссылка)
- А откуда этот массив взялся, и кем он заполняется? Задачу поиска
максимума надо решать в момент заполнения массива. - il-2(27.01.2021 06:35)
- там у вас всё сожрут IO-процедуры c носителями информации, сам
алгоритм - это 5 команд на ассемблере :)) Adept(3281 знак., 26.01.2021 21:14 - 27.01.2021 00:50)
- Привести "огромный массив" к 256 ILYAUL(130 знак., 27.01.2021 01:29 - 01:53)
- +1 загрузка с носителя похерит всю скорость проверки! ибо даж если
бpать SPI-flash и выжимать по полной (если склероз не изменяет для
spi avr два такта на бит) + минимум 16 тактов на каждый байт
данных! - Aleksey_75(27.01.2021 00:42)
- Кто знает набор инструкций avr? Как насчёт брать байты из
сканируемого массива, превращать их в индекс 0...255 в массиве в
ОЗУ, записывать туда что-нибудь по этому индексу. После
сканирования заглянуть в массив, станет понятно, какой максимальный
индекс встречался. - SciFi(26.01.2021 21:18)
- думаете это будет быстрее прямого сравнения ?? :)) - Adept(26.01.2021 21:45)
- от этого вашего чудо-авра всего можно ожидать :-) - SciFi(26.01.2021 21:48)
- Сравнение двух 16 битных регистровых переменных 2 такта. Codavr(96 знак., 27.01.2021 00:28)
- в лучшем случае + 4 такта на загрузку! - Aleksey_75(27.01.2021 00:37)
- А куда деваться. Зато авээрок можно сто штук впараллель поставить
сравнивать и жрать они все равно будут меньше :) - Codavr(27.01.2021 00:47)
- жрать они будут меньше , кого ??? прибавляем накладные расходы на
синхру сто аверок и все это превращается лютый ад .. - Aleksey_75(27.01.2021 00:50)
- 12mA XMEGA@32MHz 3.3V (т.е. 36mW) - 100шт, чуть менее 4W, при
суммарной производительности (без учёта IO операций для данных)
соответсвенно около 3GIPS (это какбы 3K MIPS :) - тока что сам
узнал :))) (чт-то мне подсказывает, что даже не самый топовый ARM в
каком-нить смартфоне будет мягко говоря пошустрее, да и похолоднее
пожалуй:)) Adept(384 знак., 27.01.2021 01:05 - 01:24, ссылка)
- Ой блин 20 мегагерц раскидать на сотню камней, как 2 пальца. Порвут
любой топовый хоть под виндой, хоть под линухом, а сожрут при этом
полтора ампера. - Codavr(27.01.2021 00:58)
- "отнюдь, батенька, отнюдь..." (С) - Adept(27.01.2021 01:27, ссылка)
- Не силен я в MIPSах нынешних х86, но что-то мне подсказывает, что
дутые они, и как раз на такой тупой задачке сдуются на порядок, а
то и больше. - Codavr(27.01.2021 01:33)
- "Носители" хромают из этого и реальные мисы не померить - Aleksey_75(27.01.2021 01:38)
- Я малость тупанул, когда про "топовые" сказал. У них нынче по 64
ядра на борту. Куда сотне АВРок до них. Их тока обновление винды
может остановить :) - Codavr(27.01.2021 01:43)
- это да :) в страшном сне мне не могло приснится, когда я перешёл с
люительского ОРИОНа на Z80 :) на первый пень 90МГц, что вот через
25 лет (блин, людистоканеживут :(( - как давно это было оказывается) при увеличившейся на три
порядка производительности, буду ждать когда прогрузится ОСь
минутами а уж про обновления 10-ки смущённо промолчу :)) Adept(805 знак., 27.01.2021 02:04 - 05:34)
- Как раз сегодня сижу жду важного звонка, втыкаю между делом в инет
на мабиле. Тут звонок, а за мгновение до того нажал на ссылку в
яндексе и начинается загрузка ихнего ебучетормозного дзена. Я
истошно пытаюсь переключиться с оперы на звонок, но не тут то было,
случайно попадаю пальцем в яндекс-навигатор и начинает грузиться
уже он. Упорно пытюсь добраться до кнопки с зеленой трубой и сцуко
попадаю на автоматичекий ответ, где по умолчанию всякая хуйня типа
я вам перезвою или Codavr(196 знак., 27.01.2021 02:35)
- во-во вот это лютыпесдетс до того меня слегка подз@ёб, что ну их
нахрен со своими "десятками", андроидофонами и прочим трешем :P Adept(958 знак., 27.01.2021 02:44)
- С того момента, как неподалеку от моего дома открылся Глобус, а это
уже лет 10, я подхожу к весам в овощном отделе заранее успокаивая
себя - не надо, крепись, тебе же всегда хватало воли не расхеачить
их, ну и что, раза с восьмого-дестого удастся ввести нужную цифру,
ну и что, что придется каждый раз снимать пакет с весов, тут весов
много, хоть на одних да получится. Шоб он сдох падла, кто эти весы
спректировал, я его НЕНАВИЖУ. Эта тварь отняла у человечесва многие Codavr(294 знак., 27.01.2021 03:17 - 03:23)
- Мне вот такая статейка про вояджеры недавно попалась. КМОП память с
питанием напрямую от радиоизотопного гнератора. Просто писк. - Codavr(27.01.2021 02:17, ссылка)
- типа Tpoeшник(112 знак., 26.01.2021 21:26)
- Мне не нравится. Но за досрочный выход - плюсик от Троешника. - Tpoeшник(26.01.2021 21:14)
- На AVR цивилизация ничего лучшего не придумала. Но на более крутых
процессорах (скажем x86/64) появились SIMD-инструкции, позволяющие
совмещать сравнение с условным копированием за один такт, в том
числе и параллельно с целыми блоками элементов, взятыми из массива
в том же порядке. - Kceния(26.01.2021 22:58 - 23:15)
- использовать быструю сортировку, она же быстрая :), Если len
степень 2, можно попробовать что-нибудь рекурсивное с половинным
сравнением. А если немножко подумать, задача решается для
произвольного len. Типа так IBAH(283 знак., 26.01.2021 22:10)
- тонкий троллинг :)))) а я-то повелся :)))))))) Adept(132 знак., 26.01.2021 21:58)
- Числа всякий раз полностью новые, я надеюсь? :) - Cкpипaч(26.01.2021 21:00)
- КМК неплохо было бы массив разместить с выравниванием на 256 и ещё
помочь в оптимизации доступа Vit(162 знак., 26.01.2021 20:29)
- Дело Тумосца живет ;) - Гyдвин(26.01.2021 20:26)
- Если нужно быстро-быстро, то убираем avr :-) - SciFi(26.01.2021 19:36)
- А как Вы представляете алгоритм без сравнения с каждым? Можно
максимально оптимизировать ваш код avr. - kaf1(26.01.2021 19:16)
- Если ваш массив не упорядочен, не имеет еще каких-то особенностей,
а совершенно случайный, то ни чего лучше не найдете. Возможна
только оптимизация самого процесса перебора, но проще доверить это
компилятору. - AlexBi(26.01.2021 19:07)
- Массив совершенно случайный. Особенностей нет никаких. - Tpoeшник(26.01.2021 19:09)
- Молитва о чуде говорят помогает в таких случаях. - Codavr(26.01.2021 19:13)
- Тады без вариантов. Для N чисел будет (N-1) операций сравнения - LightElf(26.01.2021 19:12)
- Вдогонку еще один вопрос. Возможно немного глупый: если массив
состоит из 1млр значений и записан на внешнюю флешку, карту и тд.
АВР может посоревноваться с ПК в скорости поиска максимального? - Tpoeшник(26.01.2021 19:14)
- Разве что найти исключительно тормозную флешку. Даже очень плохая
uSD легко отдает 10МБ/с на чтение. AVR столько просто не прожует, а
писюк - вполне - LightElf(26.01.2021 19:39)
- отдать то может она и отдаст, вот только кто их примет! даж с 16к
буфером посчитате накладные расходы! у меня получается правда с
STM, с буфером 8к spi флеш с обработкой получается порядка 800К в
сек! - Aleksey_75(27.01.2021 01:13)
- То есть: если я буду тащить из файла данные и сравнивать с
максимальным, то получу 10МБ/с? Можно ведь написать код например на
Си и определить время за сколько код найдет максимальное значение.
И получится что за 1 сек ПК 10М раз выполнит if с байтом
очередным!? Или 10МБ/с это переброс по шине в ОЗУ?! - Tpoeшник(26.01.2021 19:53)
- Типа того. Но это должна быть реально плохая/древняя флешка или
очень древний/унылый контроллер SD. Скорее и карта и контроллер
умеют в 50МГц и выдадут порядка 20МБ/с, что для писюка -
несущественная мелочь. Для оценки дури современных писюков: Core
i7-9700K одним ядром сжимает данные алгоритмом LZ4 (а это нифига не
максимум найти) со скоростью 780МБ/с. - LightElf(29.01.2021 21:27)
- при условии уже наличия массива данных в памяти, быстрый
беспонтовый линейный код на иксмеге@32МГц не дотягивает и до 5МБайт/сек,
увы:(( Более красивый и хоть как-то полезный циклический - при тех
же условиях - чуть меньше 3,5Мбайт/сек. Однако в свете последних
достижений :)) удалось достичь почти 8,8МБайт/сек :) - Adept(27.01.2021 18:35, ссылка, ссылка)
- LightElf фсе врет, если винда в это время начнет обновляться, то в
АВРку можно отчасового кварца тактировать, и то она быстрее успеет
:) - Codavr(27.01.2021 00:05)
- Нет. У ПК шина быстрее, регистры длиннее, куча ядер и есть SIMD.
Ничего из этого нет у AVR - lloyd(26.01.2021 19:16)
"Коллекция археологических находок, обнаруженных на территории
Московского зоопарка, готова к передаче в музейный фонд. В ней 152
артефакта". Этo_Я(2 знак., 12.02.2021 12:19, Off, ссылка, картинка, полностью)
Утилита bom2xls здесь имеется, какой порядок полей входного файла
ей нужен? - Visitor(11.02.2021 08:30, dao, полностью)
2.4 Ghz Sniffer, такое есть? Moлoдoй кoллeгa(257 знак., 22.09.2020 20:34, RFID, полностью)
- Немного продвинулся... Moлoдoй кoллeгa(977 знак., 11.02.2021 10:21, картинка, картинка)
- Продолжаем разговор.. Moлoдoй кoллeгa(456 знак., 08.01.2021 10:57, ссылка, ссылка)
- Программа SimSmith =AK=(64 знак., 13.01.2021 03:40, ссылка, ссылка)
- Ну так там есть конкретная методика - посмотрю отпишусь - забыл уже - OlegPowerC(08.01.2021 20:42)
- Мне тоже дошел, но пока в столе лежит. Советую и в стастье на хабре
ссылка на калькулятор Andreas(53 знак., 08.01.2021 12:55, youtube, ссылка)
- Спасибо. - Moлoдoй кoллeгa(27.01.2021 21:44)
- 1.стабы убрать. 2.с8,с9,с10 - по методичке совсем не кондеры.
3.всё-таки почитать методичку. - фyтбoлиcт(08.01.2021 11:35,
, ссылка)
- HackRF? - lloyd(04.11.2020 20:18)
- Заваял свою плату, с XN297L разобрался, всё работает. Но.. Moлoдoй кoллeгa(399 знак., 04.11.2020 09:29 - 19:32, ссылка, картинка)
- Можно для начала измерить то, что получилось, если есть чем. - s_h_e(04.11.2020 15:16, ссылка)
- Такая антенна даже с текстолитом работает когда вокруг антенны
убрана металлизация на каком-то расстоянии. И даже если в
текстолите ты сделаешь круглый вырез (уберешь металлизацию) в
центре, то это не будет работать, пока его размеры хотя бы не будут
сопоставимы с длиной волны и больше (т.е. больше всего прибора).
Обычно такую аннтенну размещают сбоку печатной платы поэтому -- ну
почитай инструкцию по применению. У тебя на мой взгляд единственный
вариант -- сделать fk0(622 знак., 04.11.2020 13:59)
- Посмотрел теперь внимательней, антенна -- по сути аналог
четвертьволнового штыря, у которого вертикальная поляризация и
диаграмма направленности вытянута в плоскости земли (плоскости
печатной платы): fk0(2190 знак., 05.11.2020 13:38, картинка, картинка)
- Помимо "лампочки" я сделал "пульт" для управления лампочкой. Пульт
сделан на том же XN297L, но на текстолите. Залил в пульт прошивку
от лампочки, то есть сделал его приемником, поставил рядом с
лампочкой и наблюдал что лампочка перестает работать на рассоянии
1.5м, а "перешитый" в приемник пульт работаеи и на 6м, это при
минимальной мощности передатчика -23dBm. Собственно так я пришел к
выаоду что с лампочкой проблемы :) Moлoдoй кoллeгa(971 знак., 05.11.2020 20:51, картинка)
- Четвертьволновому штырю нужна земля с обратной стороны. в шите об
этом говорится - хоть где-то снизу, но 15х15мм. Прелесть в том, что
нет привязке к толщине платы, но у ТС снизу вообще проводящая
плоскость никуда не подключенная, возможно в этом проблема. Andreas(303 знак., 05.11.2020 16:05)
- Лампочка, но не сильно умная. Так дешевле, проще. Нордик дороже,
BLE не нужен. Очень не хочется сюда ещё одну плату городить. - Moлoдoй кoллeгa(04.11.2020 19:37)
- На 2,4 бывают антенны, рассчитанные на установку прямо на полигон
без вырезов. Но готовый модуль сейчас имхо проще. - s_h_e(04.11.2020 14:05)
- На алюминиевой? А разводку чипа, что, с текстолита копировал? Nikolay_Po(518 знак., 04.11.2020 13:03)
- Посмотри ещё ссылки: fk0(209 знак., 04.11.2020 13:26, ссылка, ссылка)
- Спасибо. - Moлoдoй кoллeгa(04.11.2020 19:49)
- Пользуюсь STMовским свистком SPZB и wire shark. - PlainUser(30.09.2020 19:21)
- На Хабре народ похожими вещами баловался успешно. - Visitor(22.09.2020 21:20)
- Какая-то древняя версия nRF24L01 умела захватывать сырые пакеты, но
только на низкой скорости (1МБит) и там ещё какие-то сложности.
Вообще захват пакетов возможен обычным нордиком, если поставить
короткую преамбулу и угадать её значение (там вначале 0xAA/0x55
ставится для того). См. обе ссылки по ссылке: - fk0(22.09.2020 20:42, ссылка)
Частная компания Фантом Спейс забабахала еще одну ракету. В
фотошопе. - Codavr(12.02.2021 00:28, Off, youtube, полностью)
Укололся час назад. Так что по характеру постов сможете отмечать
влияние вакцины на мозги пациента :-) - Kpoк(11.02.2021 15:26, Off, полностью)
Есть спецы по тензомостам? заложился на дешевый китайский тензик
(см. картинку). А он, падла, имеет выходной сигнал не только на
изгиб, но на сжатие растяжение!!! Сука! Причем сигнал и сжатия, и
растяжения одного знака! И в десятки раз больше сигнала изгиба. Я
то думал - мост, все паразиты скомпенсируются. Существуют ли
нормальные тензомосты, в близком габарите и форм-факторе или это
"не баг, а фича". - IBAH(08.02.2021 20:40, SCH, картинка, полностью)
А сейчас можно ездить на советских номерах? - kaf1(11.02.2021 20:23, Off, полностью)
А никто тут гидравликой не увлекается ? Ведь наверно можно сделать
триггер на гидравлике ? А раз так, то и процессор :) - scorpion(28.01.2021 12:28, Tech, youtube, полностью)MBedder
- Пусть не совсем гидравлика... Пневмоника преподавалась в нашем
заштатном политехе 30 с лишним лет назад. Логические элементы были
литыми из прозрачного пластика, соединялись гибкими трубками. OldHobo(73 знак., 09.02.2021 22:06,
)
- Лучше не надо... Вот конечный автомат с несколькими состояниями IBAH(39 знак., 09.02.2021 20:40, картинка, картинка)
- в МИЭТе нам преподавали пневматическую логику. То есть, простые
логические устройства на пневмопитании :) - =L.A.=(30.01.2021 19:59)
- Гидроинтегратор Лукьянова - 1936 год. Говорят, Госплан не гнушался
модельки на таком считать. - Evgeny_CD(30.01.2021 16:20, ссылка)
- До прихода мелкоконтроллеров все взрывоопасные производства на
пневматике работали. Да и сейчас где-нить осталось. Там тебе и
триггеры, и элементы И и ИЛИ, НЕ, усилители, интеграторы, все шо
душе угодно. Я как раз застал переход в 90-е. До сих пор "печатные
платы" из оргстекла в закромах валяются. В листах профрезерованы
каналы и листы склеены меж собой. А на этом бутерброде уже вся
пневмологика крепится. Кстати Вова как раз на эти приблуды ссылку
дал. А крантик с 6 Codavr(100 знак., 29.01.2021 21:33, ссылка)
- Я не увлекался, но по служебной необходимости эксплуатировал.
Работой реактивного мотора на самолёте Су-17М3 управляло вот это
гидромеханическое вычислительное устройство, посложнее
какого-нибудь Кортекса. - Kpoк(28.01.2021 23:38, ссылка)
- Забавно - scorpion(30.01.2021 12:11)
- круто - LordN(29.01.2021 02:25)
- Все можно. Бери и собирай - Boвa(28.01.2021 12:38, ссылка, ссылка)
Помогите опознать модуль на adau1701 и msp430. По всей видимости,
это что-то типа SOM, и среди EVB/EVM я его не нашел MBedder(64 знак., 10.02.2021 15:14 - 11.02.2021 19:43, SCH, картинка, картинка, полностью)
Чёй-то fk0 не видно. Неужто работать начал?... POV_(34 знак., 10.02.2021 23:25,
, Off, полностью)
Есть ли разница в COM или SPP COM порту? Почему одни программы
(TeraTerm или PuTTY) открывают порт, а некоторые не открывают?
Работаю с bluetooth модулем HC-06. - michas(09.02.2021 15:58, RFID, полностью)
Был вчера в магазине... :-) il-2(1 знак., 15.01.2021 09:33, zen, картинка, полностью)
Allwinner обещается в этом году выкатить жЫрный RISC-V - LightElf(09.02.2021 21:45, MCU, ссылка, полностью)