Embedded Doka
Semiconductors chips shortage Наверняка многие читали эту статью с кучей красивой инфографики. У меня же глаз зацепился за эту иллюстрацию (в оригинале она интерактивная - с выплывающими комментариями и цифрами). Так вот любопытно что крупные чипмейкеры…
Дальше, выше, сильнее..
"Градообразующее предприятие" вновь задаёт моду...
Но вот что интересно - в презентации люди бродят в офисе по опенспейсу со стационарными макинтошами, тут невольно возникает вопрос - как же они на макОСи чипы разрабатывают - ни в буткампе, ни нативно (macOS) не запустишь $CDNS и $SNPS 🤷♂️
@embedoka
"Градообразующее предприятие" вновь задаёт моду...
Но вот что интересно - в презентации люди бродят в офисе по опенспейсу со стационарными макинтошами, тут невольно возникает вопрос - как же они на макОСи чипы разрабатывают - ни в буткампе, ни нативно (macOS) не запустишь $CDNS и $SNPS 🤷♂️
@embedoka
Крайне разочарован работой комитета Bluetooth SIG. Ну как же так господа-стандартизаторы: столько версий BLE за последние 10 лет выкатили, а профиля UART в BLE как не было, так и нет 😭😭😭
Каждый вендор лепит свой велосипед. Особенно это заметно в автомобильных BLE-адаптерах (клонах ELM327), которые пытаются по-прежнему в АТ-команды, но это (древняя спека АТ-команд из такого же древнего даташита ELM327) единственное что их объединяет 🤷♂️
Забавный deadlock:
▫️ Железячники продолжают делать поддержку АТ-команд ELM327 потому что "каждая программа это поддерживает"
▫️ Программисты стонут от того, что помимо того что приходится тащить это дерьмо мамонта (АТ-команды ELM327) еще и приходится каждую железку тестировать и добавлять ручками, потому что в BLE без указоненного ( Bluetooth SIGом) UARTа - каждый железячник кто во что горазд
Пример outdated технологии, революцию в которой никто не смог/не захотел возглавить.
@embedoka
Каждый вендор лепит свой велосипед. Особенно это заметно в автомобильных BLE-адаптерах (клонах ELM327), которые пытаются по-прежнему в АТ-команды, но это (древняя спека АТ-команд из такого же древнего даташита ELM327) единственное что их объединяет 🤷♂️
Забавный deadlock:
▫️ Железячники продолжают делать поддержку АТ-команд ELM327 потому что "каждая программа это поддерживает"
▫️ Программисты стонут от того, что помимо того что приходится тащить это дерьмо мамонта (АТ-команды ELM327) еще и приходится каждую железку тестировать и добавлять ручками, потому что в BLE без указоненного ( Bluetooth SIGом) UARTа - каждый железячник кто во что горазд
Пример outdated технологии, революцию в которой никто не смог/не захотел возглавить.
@embedoka
Forwarded from Serjio
Вообще, очень больная тема для меня, но имхо BLE это просто фиаско.
Кое что похожее уже было с USB, с его дескрипторами "контроллер симулятора полета магического ковра", но там всё обошлось без особых потерь. BLE же решил повторить, но в этот раз уже обосраться по полной, чтобы прям другим завидно было. Возможно наличие универсального battery profile прикольна, но примерно на этом всё и заканчивается. Была допущена тривиальная ошибка человека что "вчера стал мидлом" - провален свой технический долг, нагромождена туча бессмысленных и бесполезных абстракций, и тут уже не ясно, делали ли это неопытные дети что пытались потешить свое эго, либо специально сделали BLE настолько ужасным, чтобы все разработчики с IQ менее 9000 ушли в тильт и не могли работать. Стек BLE не для людей, он для пришельцев и для разработчиков BLE. Мне нужен просто 1) способ идентификации устройств и настройки соединения 2) поток байт + разумная его сегментация. 3) Какая-никакая ПРОСТАЯ стандартизация в духе HID была бы не лишней. ВСЁ. Пиздеть не мешки ворочать. Никому не сдались эти GAP GAT, жалкие потуги сделать универсальное решение что приведет только к боли, страданию и отчаянию. 90% разработчиков просто костылят свой последовательный порт поверх всего что есть. И имхо это архитектурно верное решение что уменьшает сложность, а следовательно время разработки, количество багов и сожженных нервов.
Возможно комитет это понимает и поэтому давит на свой альтернативный "правильный" подход со своими говенными характеристиками, вместо того чтобы просто сделать uart - разработчики бы пользовались исключительно им, сделав бесполезным всё что было нагромождено, включая сам комитет.
Кое что похожее уже было с USB, с его дескрипторами "контроллер симулятора полета магического ковра", но там всё обошлось без особых потерь. BLE же решил повторить, но в этот раз уже обосраться по полной, чтобы прям другим завидно было. Возможно наличие универсального battery profile прикольна, но примерно на этом всё и заканчивается. Была допущена тривиальная ошибка человека что "вчера стал мидлом" - провален свой технический долг, нагромождена туча бессмысленных и бесполезных абстракций, и тут уже не ясно, делали ли это неопытные дети что пытались потешить свое эго, либо специально сделали BLE настолько ужасным, чтобы все разработчики с IQ менее 9000 ушли в тильт и не могли работать. Стек BLE не для людей, он для пришельцев и для разработчиков BLE. Мне нужен просто 1) способ идентификации устройств и настройки соединения 2) поток байт + разумная его сегментация. 3) Какая-никакая ПРОСТАЯ стандартизация в духе HID была бы не лишней. ВСЁ. Пиздеть не мешки ворочать. Никому не сдались эти GAP GAT, жалкие потуги сделать универсальное решение что приведет только к боли, страданию и отчаянию. 90% разработчиков просто костылят свой последовательный порт поверх всего что есть. И имхо это архитектурно верное решение что уменьшает сложность, а следовательно время разработки, количество багов и сожженных нервов.
Возможно комитет это понимает и поэтому давит на свой альтернативный "правильный" подход со своими говенными характеристиками, вместо того чтобы просто сделать uart - разработчики бы пользовались исключительно им, сделав бесполезным всё что было нагромождено, включая сам комитет.
💯2🔥1
Эмейзинг Амазон факап
Сейчас занят тем, что переношу некоторый payload на AWS F1 (FPGA EC2 instance) и очень удивился, что по заветам ветерана отрасли в лице VCU1525 амазон таки-поставил 4 слота DIMM DDR4, но напрочь лишил свою F1 сетевых возможностей и даже порта UART (прости VCU1525!) 😱😱😱
Конфиг, в котором они предлагают 8хFPGA совершенно бестолковый: нет экономии по стоимости, а "быстрый" линк между FPGA в виду отсутствия всех сортов [Q]SFP[28] реализован "как смогли" (см.картинку).
Т.е. если мне надо разрезать дизайн на несколько FPGA, то вместо пересылки (почти в RAW) с минимальной задержкой через мультигигабитные трансиверы буду тратить LUTы на обслуживание PCIe стека 🙄
И это при том, что для GPU инстансов у них всё чётенько спроектировано: для конфига из мульти-GPU они коннектятся to each other через NVLink:
▫️ up to 1600 GBit/s (Volta V100)
▫️ up to 4800 GBit/s (Ampere A100)
@embedoka
Сейчас занят тем, что переношу некоторый payload на AWS F1 (FPGA EC2 instance) и очень удивился, что по заветам ветерана отрасли в лице VCU1525 амазон таки-поставил 4 слота DIMM DDR4, но напрочь лишил свою F1 сетевых возможностей и даже порта UART (прости VCU1525!) 😱😱😱
Конфиг, в котором они предлагают 8хFPGA совершенно бестолковый: нет экономии по стоимости, а "быстрый" линк между FPGA в виду отсутствия всех сортов [Q]SFP[28] реализован "как смогли" (см.картинку).
Т.е. если мне надо разрезать дизайн на несколько FPGA, то вместо пересылки (почти в RAW) с минимальной задержкой через мультигигабитные трансиверы буду тратить LUTы на обслуживание PCIe стека 🙄
И это при том, что для GPU инстансов у них всё чётенько спроектировано: для конфига из мульти-GPU они коннектятся to each other через NVLink:
▫️ up to 1600 GBit/s (Volta V100)
▫️ up to 4800 GBit/s (Ampere A100)
@embedoka
Embedded Doka
Как многие знают, Амазон в числе первых запустил FPGA-as-a-Service, благодаря чему сделал доступными даже для энтузиастов чипы с listed price >$40k (согласно дижикей), а недавно такая возможность появилась и в MS Azure. Так вот Амазон проапгрейдила шелл…
Пару слов об этом компактном шелле для AWS F1:
Сам шелл для интеграции в пользовательский проект поставляется (точнее скачивается скриптом с AWS S3) в виде файла Design CheckPoint as as 🤷♂️
В минималистичном сетапе компактный шелл занимает около 10% LUT (в VU9P, Карл!!!), выкинуты были:
▫️DDR4 ctrl
▫️XDMA (его там и не было, но предлагается альтернатива в виде SDE)
▫️VirtualJTAG, VIO, ILA
▫️IRQ logic
@embedoka
Сам шелл для интеграции в пользовательский проект поставляется (точнее скачивается скриптом с AWS S3) в виде файла Design CheckPoint as as 🤷♂️
В минималистичном сетапе компактный шелл занимает около 10% LUT (в VU9P, Карл!!!), выкинуты были:
▫️DDR4 ctrl
▫️XDMA (его там и не было, но предлагается альтернатива в виде SDE)
▫️VirtualJTAG, VIO, ILA
▫️IRQ logic
@embedoka
Заметил за собой особенность: раз в несколько недель стабильно гуглю AsciiTable. А как часто Вам приходится заглядывать в таблицу символов?
Anonymous Poll
4%
Да каждый божий (т.е. рабочий) день!
6%
Пару раз в неделю
19%
Пару раз в месяц
51%
Несколько раз в год
7%
AsciiTable - для слабаков, тру-эмбеддерщик помнит её наизусть!
1%
Ха! У меня плагин для IDE (c AsciiTable пожизни)!
12%
AsciiTable - что ты такое?
Audible Notification
Во всех этих многочасовых сборках проектов я наконец понял чего мне так не хватало на воркстейшен: чтобы из мейка проигрывался звук, что сборка готова (#WHF рулит!).
Поискал как из консоли проигрывать: есть
Кстати говоря при сборке на AWS у Амазона есть возможность использовать уведомления на почту по факту окончания сборки - олдовенькое решеньице :-/
@embedoka
Во всех этих многочасовых сборках проектов я наконец понял чего мне так не хватало на воркстейшен: чтобы из мейка проигрывался звук, что сборка готова (#WHF рулит!).
Поискал как из консоли проигрывать: есть
play (из пакета sox), но он не понимает формата m4r/m4a, так что остаётся ffplay (только не пытайтесь делать ffplay --help!) - добавил последней строчкой в цель мейка.Кстати говоря при сборке на AWS у Амазона есть возможность использовать уведомления на почту по факту окончания сборки - олдовенькое решеньице :-/
@embedoka
Audio
Directed By Robert B. Weide
ffplay -hide_banner -nodisp -autoexit directed_by_robert_b_weide.mp3 >/dev/null 2>&1@embedoka
Еще один шажок экспансии FPGA в облака
На сей раз в амазон завезли Xilinx® Alveo™ U30 card для рилтайм-транскодинга видео (Amazon EC2 VT1).
Hardware-accelerated video-transcoding-as-a-service ✌🏻
@embedoka
На сей раз в амазон завезли Xilinx® Alveo™ U30 card для рилтайм-транскодинга видео (Amazon EC2 VT1).
Hardware-accelerated video-transcoding-as-a-service ✌🏻
@embedoka
Embedded Doka
Гонения Master & Slave. Now in HW. Ну всё, приплыли, сушите вёсла. Это было прикольно когда не затрагивало HW индустрию: почитывать новости про выпиливание терминов из питона или смена дефолтного названия ветки на гитхаб, по похоже на то, что добрались до…
Сначала запретили мастеров и слейвов, казалось бы на этом закончится, но нет - теперь альянс за соц.справедливость среди роботов? 🙄
@embedoka
@embedoka
Какие-то непонятки с DDR5 DIMM.
Везде пишут что вроде как ЕСС обязателен и "встроен", но на картинках самих модулей виден только встроенный DC-DC. Получается ЕСС в самих чипах?
А десктопные процы Интела 12го поколения имеют поддержку DDR5, но не поддерживают ЕСС 🤷♂️
Вот пытаюсь понять как это всё состыкуется, а то год от года с ростом ОЗУ даже на десктопе без ЕСС всё хуже и хуже.
@embedoka
Везде пишут что вроде как ЕСС обязателен и "встроен", но на картинках самих модулей виден только встроенный DC-DC. Получается ЕСС в самих чипах?
А десктопные процы Интела 12го поколения имеют поддержку DDR5, но не поддерживают ЕСС 🤷♂️
Вот пытаюсь понять как это всё состыкуется, а то год от года с ростом ОЗУ даже на десктопе без ЕСС всё хуже и хуже.
@embedoka
Рубрика: идеи стартапа
Было бы круто иметь сервис, который по принципу социальной сети экспертов подбирал людей на основе компетенций для узкоспециализированных консультаций (конечно же - на основе нейросетей).
Вот кейс: допустим, у пользователя есть документ и нужен кто-то шарящий в предметной области, чтобы перевести с птичьего на человеческий, собственно за то, что понимание написанного занимает 5мин, а не час и платятся деньги. Сам эксперт подбирается из пула на основе парсинга документа и результата работы всяких NLP-like сеточек.
Потому что сегодня пожалуй потратишь больше времени на поиск человека с ключевой компетенцией, чем потребуется на самостоятельное раскуривание документа 🤷♂️
@embedoka
Было бы круто иметь сервис, который по принципу социальной сети экспертов подбирал людей на основе компетенций для узкоспециализированных консультаций (конечно же - на основе нейросетей).
Вот кейс: допустим, у пользователя есть документ и нужен кто-то шарящий в предметной области, чтобы перевести с птичьего на человеческий, собственно за то, что понимание написанного занимает 5мин, а не час и платятся деньги. Сам эксперт подбирается из пула на основе парсинга документа и результата работы всяких NLP-like сеточек.
Потому что сегодня пожалуй потратишь больше времени на поиск человека с ключевой компетенцией, чем потребуется на самостоятельное раскуривание документа 🤷♂️
@embedoka
Новый уровень импортозамещения (всегда интересовало сколько это стоит).
Это вам не наклейки в подворотнях переклеивать!
@embedoka
Это вам не наклейки в подворотнях переклеивать!
@embedoka
Куча битстримов: бессмысленных и беспощадных
Вот о какой вещи думаю последние недели для связки FPGA+хост: В битстрим можно заимпринтить timestamp сборки и даже автоматический номер ревизии, но всё равно это неудобно, когда собираются версии с какими-то минорными изменениями и этих сборок много 😱.
Приходится всё равно вести где-то табличку с описанием какие дефайны были установлены на момент сборки, чтобы в хостовом приложении установить идентичные (такое действительно часто бывает нужно). Но что-то меня это немного подзадолбало и вот до чего я додумался.
Регистр в адресном пространстве содержимое которого задаётся статично препроцессором на синтезе. И значения эти определяются примерно так:
Велосипед или есть какое-то готовое решение?
Кто как решает проблему?
@embedoka
Вот о какой вещи думаю последние недели для связки FPGA+хост: В битстрим можно заимпринтить timestamp сборки и даже автоматический номер ревизии, но всё равно это неудобно, когда собираются версии с какими-то минорными изменениями и этих сборок много 😱.
Приходится всё равно вести где-то табличку с описанием какие дефайны были установлены на момент сборки, чтобы в хостовом приложении установить идентичные (такое действительно часто бывает нужно). Но что-то меня это немного подзадолбало и вот до чего я додумался.
Регистр в адресном пространстве содержимое которого задаётся статично препроцессором на синтезе. И значения эти определяются примерно так:
`ifdef CAPABILITY_OPT2Соответственно на хосте в рантайме считываем регистр с Capability и делаем либо разные ветки выполнения, либо просто печатаем весь список установленных в RTL фич (для сравнения потребления разных битстримов, например).
assign opt_reg = `SET_CAPABILITY(opt_reg,`CAPABILITY_OPT2);
`endif
Велосипед или есть какое-то готовое решение?
Кто как решает проблему?
@embedoka