Комментарии 57
Их версии с житкостным охлаждением так вообще красота.
![image](https://habrastorage.org/getpro/habr/comment_images/644/d11/762/644d1176251ab0e1d9737ab078e02d5a.jpg)
Но это всё же не совсем embedded. Тут скорее устройства в дом/в машину.
Zotac это по сути такие же китайцы, только более известные + которые экспортируют в Россию. В реальности, если партия более 100 штук, можно выходить на любого такого производителя и пробовать
Если вопрос «что кроме Зотака можно купить в России» — не знаю. В некоторых проектах люди брали IntelNUC. С дискретной карточкой, да под OpenVino он иногда даёт интересный результат.
![image](https://habrastorage.org/webt/-c/gi/bo/-cgibofktguglwccvdo44wkxpey.jpeg)
M100-Nano-AI-enabled Embedded NVR Powered by NVIDIA® Jetson Nano
1) Это не по теме статьи даже. 1.3 кг, pci-e, 80 ВТ — это не эмбеддед и не рядом.
2) для «МС127.05» и «TensorFlow|Caffe|PyTorch» нет упоминания ни в одной статье совместного. Для 1879ВМ8Я две статьи где не понятно есть что-то или в разработке всё. Нет ничего с гайдами и мануалами.
3) Работать с любой окологосударственной конторой в поле «инновационные технологии» это блин… За гранью добра и зла… Это очевидные процессоры для военки/госзаказа. Если бы было не так — были бы цены, был бы маркетинг, был бы хоть один репозиторий на GitHub…
1.3 кг, pci-e, 80 ВТ — это не эмбеддед и не рядом.
Мне кажется в Acromag или Aitech с Вами не согласятся.
Для 1879ВМ8Я две статьи где не понятно есть что-то или в разработке всё. Нет ничего с гайдами и мануалами.
Как обычно — информация по запросу. На сколько я знаю есть коммерческое исполнение и уже продается.
2) Современное ML комьюнити работает немного не так: «информация предоставляется по запросу». Ни в один из десятков проектов где я консультирую/консультировал — я бы такую штуку не посоветовал. А всё что перечислил в статье — возможно. Именно из за того что и так слишком много вариантов/особенностей чтобы ещё возиться с «информация предоставляется по запросу». Они даже не пишут базовых параметров для сравнения. В мире 10-15 лет назад это могло работать. Сейчас нет.
3) Вы привели пример производителей корпусов. Достаточно большая разница между корпусами и алгоритмами/продакшном. Если бы вы привели пример продуктов не военного назначения — это другое…
Embedded — это компьютер, который является частью большей системы и предназначенный для выполнения определенной функции в этой системе (т.е. встроенный в нее), в отличии от обычного компьютера, который является "вещью в себе".
Потребляемая мощность в 80 Вт и 1,3кг не имеют значения, например, для embedded системы в составе автомобиля или самолета.
Как тот, кто занимается эмбеддед, спрошу:
- Можете привести пример решений AI, которые реально дошли до того, что их можно запихнуть в embedded железяку и
получать профитпредоставить пользователю какую-то фичу, за которую он готов тратить деньги? Чтобы понять объёмы и целевую стоимость таких устройств. Вы писали что-то про распознавание номеров — это явно не та штука, где сто баксов на железо что-то решают. - Что у автомобильных производителей в этом плане?
- Может стоит плюнуть на все эти Jetsonы и использовать ПЛИС? По потреблению и цене, конечно, не айс, но зато с задачей справятся и не зависнут. Удивило, что вы их даже не рассматриваете, в то время как они серьезно решили скинуть Nvidia с этого пьедестала. Тот же Openvino в обязательном порядке включает ПЛИС, как ускорители. Они скорей всего просто пытаются упростить их использование за счет библиотек, которые за вас будут генерить HDL код.
а) распознавание автономеров и всё с ними связанное. Там важно энергопотребление зачастую (удалённые точки). Я знаю несколько российских фирм которые свои решения сейчас на Jetson'ах делают. Да и по бюджету на один комплекс там весьма ограниченно зачастую. 100у.е. может трепит, а лишние 300-400 далеко не факт. Так же распознавание номеров есть не на трассах, а на въезде во дворы/супермаркеты/парковки. И там уже чем дешевле тем лучше. там и 50 баксов может решить. Мы как-то хотели сделать на RPi, но из-за ужаса в плане продакшна так и не собрались…
б) Artec Leo, который я упоминал — тоже на каком-то из TX1|Tx2 джетсонов
в) Биометрия, различные её применения — лица (2д/3д), радужка. Там без нейронок можно, но качество не очень и юзабилити. А с нейронками всё ок.
г) В CherryHome это аналитика и мониторинг пожилых людей. Там embedded конечно в рамках квартиры, но именно он обеспечивает высокий уровень конфиденциальности данных.
д) Системы подсчёта людей/учёта трафика
е) Мы не участвовали, но я видел применение в рекламе имено на embedded устройствах (марка авто/пол/возраст)
2. С авто я плохо знаком. Видел как люди полноценные видюхи ставят. Nvidia очень для этого продвигает и Jetson AGX Xavier. Вроде ещё какие-то решения аппаратные есть. Но с авто вариаций больше.
3. Когда плисы доберуться до того же уровня «production ready» в плане разработки — можно говорить. Но пока любая разработка которую я видел в реальности — это было год-полтора, без нормального выхлопа. Те ПЛИСы где смогли сделать нормальные хорошие и удобные интерпретаторы нейронок — называются gyrfalcon|google coral) И это уже не плисы а кристалы)
Я не видел пока ни одного серьёзного и удобного проекта где была бы хорошая поддержка современных нейрсетевых наработок.
Это не факт что оно не появиться. Но пока всё как-то очень уныло…
Ок. Спасибо. Из указанных задач, какие-то имеют реал-таймовые требования? Ну то есть, что надо получить результат ну вот за столько -то миллисекунд и если медленнее — результат уже нафиг никому не нужен? Вы же вроде о скорости писали — значит это важный фактор?
То есть то, что вы ищете или разрабатываете — это акселератор для AI, который бы мог работать в составе встраиваемых систем.
С этой точки зрения ваш подход к embedded с PyTorch и TensorFlow не очень хорош. Это пакеты, которые больше предназначены для компьютеров и неспешного решения AI задач на них. В embedded они попали только потому, что все больше и больше людей думают "а давай запустим этот linux(windows, PyTorch и т.д. нужное вычеркнуть) на вот этой железяке — мощности ведь хватит?" При этом получается никак не embedded решение, а тот же компьютер, только в формате кредитной карты (и с огромным вентилятором впридачу), который в железяку поставить может только очень смелый инженер или тот, кому наплевать на надежность. "Падает? Ну так сделаем ватчдог, чтобы каждый день перезагружал!"
Зато опенсоурс. Но вот вы видели много опенсоурсных прошивок, например, на embedded системы для самолетов или автомобилей? Или даже в телевизоре Sony или навигаторе Garmin — опенсоурсная прошивка?
Поэтому production ready в плане разработки — это больше миф, придуманный АйТишниками. Если вы не видите хороших решений в embedded нейросетях — это не значит, что их не существует. Они есть, как те же прошивки для телевизоров, но, конечно, это не опенсоурс и никто вам их так легко не покажет. Вам останется только удивляться, когда кто-то выпустит на рынок железяку, которая хоть и не будет блистать последними технологиями, зато будет работать как надо.
Если вернуться к ПЛИС — я вот посмотрел на круг ваших задач, и по распознаванию автономеров поиск выдал кучу линков по реализации этой нейросети на ПЛИС. Конечно, это не то, что вам надо, это не то, что заработает из коробки. Это не то, что вы называете "production ready", так как над этим надо поработать с годик, чтобы сделать свой проект. Но разве это хуже, чем потратить тот же годик на изучение платформы, которая вам не подходит и через год может вообще исчезнуть с рынка? В результате вы получите свое ноухау и свой очень быстрый хардварный акселератор для AI — то что вам надо.
Тут возникает вопрос в специалистах, конечно. По ПЛИСам их очень мало, но никогда не поздно учиться.
Основная причина того что ПЛИСы сейчас не работают в ML — в том что для ML задач сейчас парадигма разработки лежит в плоскости Software 2.0. Это динамическая, постоянно изменяющаяся структура постановки задачи и находимого решения. Вчера вы могли считать что ваш продукт — распознавание номеров. Завтра, что ваш продукт — распознавание номеров + контроль соблюдения логики ПДД, включая контроль пешеходов. Послезавтра — что ваш продукт это номера+пдд, но реально ваша цель — сбор информации о том какие марки авто в этом районе.
Эти задачи можно просто и быстро решать когда у вас быстрый продакшн. Например в CherryHome мы можем поменять курс развития или протестировать новые идеи за месяц.
Рынок систем распознавания номеров захватила система которая была сделана на Jetson. Именно из-за простоты и быстроты разворачивания. Её ребята продавали через 4 месяца после начала разработки (не скажу что оно у них хорошо работало, но что-то показывали).
Когда мы лицензировали нашу системы распознавания номеров, то оказалось что заказчику нужно распознавать британские номера. Мы переобучили всё за пару недель.
Я могу сказать десятки других случаев когда системы спасла именно возможность динамически перестроиться/изменить рабочий концепт.
И тратить год времени на то чтобы сделать прототип — это не вариант.
Конечно, я понимаю, что есть ситуации когда ПЛИСы могут иметь смысл. Ну, например, когда вы монополист захвативший рынок распознавания номеров — вы хотите более дешёвого и стабильного решения. Тогда можно существующую системы переписать на ПЛИСы.
Про ваш пример:
Но вот вы видели много опенсоурсных прошивок, например, на embedded системы для самолетов или автомобилей
Я могу сказать лишь одно. OpenSource зачастую имеет выше качество чем продуктовый код. А для вашего условного самолёта нет разницы что за железо и что за софт вы используете. Единственная критичная точка — это как вы тестируете/как вы резервируете. Сделать это можно и в парадигме «делать логику на ПЛИСах» и в парадигме «воткнём 3 резервирующих Jetson'а».
Тут возникает вопрос в специалистах, конечно. По ПЛИСам их очень мало, но никогда не поздно учиться.
Специалистов по ПЛИСам мало. Но их и не требует рынок. В отличие от того же ML. Если бы в ПЛИСах было много работы и денег — было бы куча курсов по ним. Люди бы на них ходили. А так — я лет 13-14 назад был одним из немногих кто на нашем курсе МФТИ пошёл на курс по ним. Все остальные выбрали другие варианты. И это при том что половина нашей группы имела базу в МЦСТ
Сейчас в МФТИ 20 курсов машинного обучения, они забиты. На них сложно попасть к хорошим препам.
А ребята кто умел ПЛИСы прогать с нашего курса — почти все поменяли направление работы. И это не потому что там какой-то Rocket Science.
OpenSource зачастую имеет выше качество чем продуктовый код
А кто этот код поддерживать будет 10-20лет, сообщество? А сертификация?
В embedded не просто сделать и забыть — это прежде всего ответственность.
Вот например вы говорите «год разработки». Но это не так. Я видел 3-4 примера как что-то разрабатывали на ПЛИСах задачи машинного зрения/интеллектуального управления. И это всегда года два в лучшем случае.
Эти задачи можно просто и быстро решать когда у вас быстрый продакшн.
Например в CherryHome мы можем поменять курс развития или протестировать новые идеи за месяц.
Именно из-за простоты и быстроты разворачивания.
И тратить год времени на то чтобы сделать прототип — это не вариант.
То есть вас в ПЛИСах больше всего не устраивает скорость разработки? Есть хорошие новости — благодаря автоматической генерации кода и HLS, разработка под них уменьшилась по времени раза в 2, а то и три за последние годы. Многие про это не знают.
Основная причина того что ПЛИСы сейчас не работают в ML — в том что для ML задач сейчас парадигма разработки лежит в плоскости Software 2.0. Это динамическая, постоянно изменяющаяся структура постановки задачи и находимого решения. Вчера вы могли считать что ваш продукт — распознавание номеров. Завтра, что ваш продукт — распознавание номеров + контроль соблюдения логики ПДД...
И это проблема сегодняшнего подхода к разработке встроенного ПО и на этом ваш Software 2.0 скорей всего закончится, когда народ начнет получать штрафы за нарушения ПДД, которые они не совершали, а AI посчитал по другому или если он не правильно распознал номер. AI can “silently fail” — не очень хорошая опция для настоящего embedded, особенно, если от его решений будет зависеть судьба человека или дорогое оборудование. Качественный OpenSource тоже в этом деле не очень хорош, когда вы будете просить поддержки у Community. IoTшники к этому еще придут и будет откат на 10 лет.
Вы как-то очень странно и к интеграции OpenSource в продукт относитесь. Естественно, там свой форк делается, который тестами обкладывается. И естественно, нужна свои программисты которые эту ветку потом держат. 99% того что вы вокруг видите (включая кодеки на вашем компе/прошивку вашего телефона) — использует наработки OpenSource проектов… В тех же самолётах вся мультимедийная системы из открытых сборок линукса…
Вы как-то очень странно и к интеграции OpenSource в продукт относитесь.
У меня просто достаточно большой опыт life cycle — менеджмента встраиваемых систем. И поэтому когда я слышу про "быстрый продакшн" или "успешный продукт за пару месяцев", меня это как минимум улыбает. Это критерий успешности только в мире софта, а в мире embedded — это только начало очень длинного пути, в котором сама разработка — это от силы 30% ресурсов и времени.
Естественно, там свой форк делается, который тестами обкладывается. И естественно, нужна свои программисты которые эту ветку потом держат.
Ага, а еще это стоит бабок и в итоге получается совсем не open-source. Если это не учитывать, то появляются такие embedded проекты, которые выстреливают в воздух сырой продукт, а через год фирмы уже нет, поддержки нет, и есть только open-source community.
99% того что вы вокруг видите (включая кодеки на вашем компе/прошивку вашего телефона) — использует наработки OpenSource проектов…
Вы имеете ввиду мой комп на Windows, который ни разу не ембеддед, и мой телефон iPhone, в котором стоит проприетарная iOS?
И по плисам есть много всего. Просто ваш машинлернинг сейчас мейнстрим, только и всего.
Когда плисы доберуться до того же уровня «production ready» в плане разработки
Вроде как в случае нейронок производители ПЛИС последние пару лет в этом направлении серьезно рыли и уже добрались. Xilinx не так давно кое-что по теме выкатил. Не знаю как обстоят дела в действительности, обещали, что знать «железячную» часть при работе с этим инструментом не придется. Intel/Altera имеют свой аналог — упомянутый ранее OpenVino.
Может это какая-то другая ревизия, конечно (pro, как я понимаю). Но NPU модуль вроде тот же. И в целом плата та же…
Но что больше RAM — Это, безусловно, хорошо. 2 (как у нас было), да даже 4 — это издевательство
У вас на обычном rk3399, но есть отдельно npu Gyrafalcon NPU SPR2801S который подключен на самом деле по usb, как пишут, просто это всё разведено на плате. Возможно ее и сделали потому что замучились ждать, когда выйдет обещанный RK3399Pro.
А та, что я кинул на rk3399pro без отдельного npu, оно там часть SoC.
Вот такой benchmark ещё нашел, это не от firefly плата, но тоже на rk3399pro
Но тут такая штука, что Gyrfalcon слишком не определён и не предсказуем. Его создатели заявляют: «У нас конвертится TensorFlow, PyTorch, Caffe». А потом в драйверах лежит какая-то специфичная GNet, которая в 10 раз меньше по весу чем Мобилнет и подписано «почти не хуже чем Mobilnet». И для неё нет никаких нормальных файлов для разработки ни на TF ни на PT. В инете информации практически нет. Вся информация от разработчиков почти закрыта.
И как результат — надо пробовать, и лишь после этого будет понятно что он из себя представляет. Пока всё что я слышал — разговоры и полузакрытая документация на половину на китайском.
Документация как и положено у китайцев — её едва нет.
Вот есть описание API, и тут же примеры. Это похоже на Gyrfalcon?
Пока готовил эту статью, натолкнулся на эту embedded платформу. По ней очень мало информации. Как я понимаю — нулевая поддержка. Продуктивность тоже на нуле… И ни одного теста по скорости…
Что-то не очень глубоко вы копали. Под модуль, который на паян на плате, есть MicroPython, есть демки. В самом чипе — аппаратная считалка свёрточных (если не ошибаюсь) нейросетей. К тому же, Grove AI HAT — не единственное исполнение: есть и другие платы с тем же модулем на борту (искать на том же сайте по "sipeed"), в том числе с экраном и камерой для обработки картинки в реальном времени.
На каждом втором сайте коменты по типу такого:
I bought 2, the support is null, check well the few documents that there is in seeed, If that is enough for you, grat buy it,and you are a god of coding and electronics, for the rest, just avoid any k210 or riscV until adafruit release something with with support and comunity.
Примеров использования — ноль. Документацию полистал сам — она ужасна. Примеров инференса сложных сеток нет. Я даже не понял как на него портировать onnx или какой-либо другой формат нейронок. Как следствие — я не верю что оно хоть как-то работает с современным стеком AI технологий. Если я ошибаюсь — покидайте ссылок, думаю всем будет полезно.
Показать видео где что-то обрабатывается — может каждый… Нейронку свою написать очень просто… А вот поддержать все существующие на современный день трюки, функции активаций, ReLU юнитов, и.т.д…
www.seeedstudio.com/Sipeed-Maixduino-Kit-for-RISC-V-AI-IoT-p-4047.html
github.com/kendryte
было бы интересно услышать если кто уже сталкивался.
К сожалению, я не очень в теме нейронок, чтобы говорить о том, как это стыкуется с современным стеком. Навскидку:
https://github.com/kendryte/nncase
https://github.com/kendryte/caffe-workspace
https://github.com/kendryte/tensorflow-workspace
А так — я бы брал этот процессор в последнюю очередь, после всего упомянутого в статье. Производительность у него, судя по всему не лучше чем у RPI.
Не, с многими платформами из этой статьи данный чип не сможет тягаться в принципе, но для простых применений — почему бы и нет, тем более что стоит сравнительно недорого. Меня он больше как платформа для embedded интересует: всё-таки, два приличных ядра, 6МБ оперативки и FPIOA — такое не на каждом углу встретишь. Ну и RISC-V, со всеми его плюсами.
А ещё вам нужно будет его развести (материнок для него пока нет)
Их мало, но они есть. Например, от Auvidea. Неприятная особенность заключается в том, что хоть сам Jetson Nano и меньше по размеру, чем Jetson TX2, но вместе с материнкой Nano проигрывает по размерам.
Плохая поддержка от Nvidia в плане технических вопросов. Слышал очень много ругани что на запросы отвечают что либо это секретная информация, либо ответы по месяцу.
У нас почти все вопросы решалась либо через devtalks, либо напрямую с ConnectTech (мы используем их материнки). Да, у Nvidia есть штуки, которые доступны только их партнерам. Например, калибровочные данные для MIPI камер/сенсоров. Но их можно запросить, написав напрямую таким партнерам.
Наверное, еще стоит добавить, что у AGX Xavier есть специальные ускорители для нейронок.
А также, что Jetson'ы в целом умеют еще во много что другое. Например, аппаратный энкодинг/декодинг видео и кучу различных интерфейсов. А для кровавого энтерпрайза есть модули TX2i, с расширенным температурным диапазоном и устойчивостью к ударам.
Самый большой минус, конечно — это цена.
У нас почти все вопросы решалась либо через devtalks, либо напрямую с ConnectTech (мы используем их материнки). Да, у Nvidia есть штуки, которые доступны только их партнерам. Например, калибровочные данные для MIPI камер/сенсоров. Но их можно запросить, написав напрямую таким партнерам.
Я скорее говорит про разводку плат. В Artec3D сначала пробовали на своей плате развести TK1 и это был ужас. Там только NVIDIA знала как это делать.
Сейчас да, чаще отправляют к партнёрам. Тут один проект с которым мы работали NVIDIA почти прямо сказала «вот эти ребята у нас отреверсинжинерили, обращайтесь к ним, они дадут платные консультации».
Но для TX1/TX2, по-моему, все не так сложно. Вся документация есть, достаточно зарегистрироваться у Nvidia на сайте в качестве разработчика.
Про TX1|TX2 я согласен что там достаточно пристойно. Особенно в сравнении с всеми другими упомянутыми платформами. Но что «просто» я бы не сказал. Artec почти год разрабатывал свой сканер. Но они самыми первыми в России кто стартанул на них разработку. Возможно с тех пор стало проще.
калибровочные данные для MIPI камер/сенсоровпоясните, пожалуйста, что вы имеете в виду?
Мини-компьютер AAEON Boxer-8310AI оснащён VPU-чипом Intel Movidius Myriad X
Кстати, по цене достаточно адекватен + вроде по начинке разумен. Единственное, хочется верить что Movidius там на пате, а не по USB воткнут. А то пока гуглил натыкался на похожий, где просто в корпусе была флешка.
У платы с 8 х Movidius, используются PCIe — USB3.0 мосты. В варианте выше, скорее всего, тоже. На мой взгляд, это необходимое зло, с учетом желания Intel, иметь большой ассортимент плат с Movidius на борту, и при этом, унифицировать их взаимодействие с OpenVINO. https://software.intel.com/ru-ru/iot/hardware/vision-accelerator-movidius-vpu
Возможно достойны упоминания ещё и VIM3 от Khadas а также
Hi3559av100
Lattepanda 4G
И вот еще что появилось https://www.cnx-software.com/2020/01/28/buy-asus-tinker-edge-t-ai-sbc/amp/
Интересно, а вы хоть дату этой публикации посмотрели? Советую зайти на мой канал в YouTube и посмотреть актуальную ситуацию.
Ультимативное сравнение embedded платформ для AI