
Когда слышишь про i.mx93 SOM, первое, что приходит в голову — очередной ?универсальный солдат? от NXP для IoT. Но на практике всё оказывается сложнее. Многие думают, что раз это продолжение линейки i.MX, то можно просто взять и встроить, как предыдущие поколения. Ошибка. Особенно когда речь заходит о реальных проектах периферийных вычислений, где важна не только производительность NPU, но и вся экосистема питания, тепловыделения и поддержки конкретных интерфейсов. У нас в компании, ООО Шэньчжэнь Энтаймс Технолоджи, которая как раз фокусируется на аппаратном развертывании для периферийного интеллекта, этот модуль прошел через несколько итераций оценок. И не всё было гладко.
Выбор платформы для краевых устройств — это всегда компромисс. С одной стороны, есть более мощные варианты, с другой — более дешёвые. i.MX93 интересен тем, что пытается занять нишу, где нужен баланс между энергопотреблением и наличием аппаратного ускорителя для простых моделей ИИ. В наших проектах, скажем, для промышленных контроллеров или медицинских датчиков, часто не нужна гигантская вычислительная мощь, но обязательна низкая задержка и предсказуемость. Вот здесь i.mx93 SOM выглядит логично — особенно с его подсистемой Ethos-U65 и двумя ядрами Cortex-A55.
Но есть нюанс, который часто упускают из виду в datasheet. Реальная производительность NPU сильно зависит от того, как организован доступ к памяти и какой инструментарий используется для компиляции моделей. Мы потратили недели, пытаясь выжать из него стабильные 0.5 TOPS для нашей задачи классификации изображений с камеры в реальном времени. Оказалось, что ?из коробки? конфигурация SOM от некоторых вендоров не совсем оптимизирована для параллельной работы CPU и NPU. Пришлось глубоко лезть в настройки прерываний и кэширования.
И ещё момент по поводу ?универсальности?. В нашей компании, которая занимается проектированием отраслевых продуктов, мы часто видим запросы на кастомизацию. Например, для робототехнических платформ или беспилотных аппаратов нужны специфические интерфейсы вроде CAN-FD или несколько портов Gigabit Ethernet с TSN. Базовая референсная схема i.MX93 этого не покрывает, поэтому SOM приходится дорабатывать — а это уже вопрос к поставщику модуля, насколько его дизайн позволяет такие модификации без полного перепроектирования.
Когда мы получили первые образцы от одного из партнёров, энтузиазм был большим. На бумаге всё сходилось: умеренная цена, поддержка Linux и реального времени, заявленная совместимость с нашими предыдущими разработками на i.MX8M. Но жизнь внесла коррективы. Первая же попытка запустить наш стандартный набор тестов для периферийных интеллектуальных вычислений упёрлась в проблему с питанием.
Конкретно — в динамическом масштабировании напряжения (DVFS). При активной работе NPU и одном загруженном Cortex-A55 система начинала вести себя нестабильно, возникали просадки напряжения, которые приводили к сбросам периферии. Это критично для, например, медицинского оборудования, где отказ датчика недопустим. Пришлось совместно с инженерами партнёра пересматривать разводку PCB и выбирать более качественные PMIC. Это добавило к стоимости, но без этого i.mx93 SOM нельзя было рассматривать для серии.
Другая история — тепловыделение. В спецификациях указан типичный диапазон, но при работе в замкнутом корпусе промышленного контроллера, да ещё и с активной вентиляцией от соседних компонентов, температура на кристалле легко уходила за 90°C, после чего начиналось троттлингование. Решение оказалось на стыке механического и программного дизайна: пришлось проектировать нестандартный радиатор и более агрессивно управлять частотами через драйверы. Это тот случай, когда опыт ?в поле? важнее красивых графиков в презентации.
Одно дело — лабораторные испытания, другое — серийный продукт. В ООО Шэньчжэнь Энтаймс Технолоджи мы как проектная компания проходим весь цикл. Возьмём, к примеру, направление головных дисплеев (HMD). Там требуется и графика, и низкая задержка обработки сенсоров, и небольшой форм-фактор. i.MX93 с его GPU Vivante и поддержкой MIPI-DSI выглядел привлекательно. Но при интеграции выяснилось, что одновременная работа дисплейного конвейера и NPU для трекинга взгляда создаёт конфликты в шине. Проблему решили, но только на уровне конкретной ревизии SOM — пришлось заказывать партию с изменённым таймингом памяти.
Для беспилотных летательных аппаратов история немного иная. Там ключевым стал вопрос надёжности связи и обработки данных с нескольких камер в реальном времени. Здесь SOM на базе i.MX93 показал себя хорошо, особенно после того, как мы настроили стек программного обеспечения для работы с реальным временем (использовали патчи PREEMPT_RT). Но опять же, не обошлось без сюрпризов: встроенный контроллер Ethernet не всегда стабильно работал с некоторыми типами радиомодемов, требовалась дополнительная буферизация на уровне драйвера.
А вот в робототехнике, особенно для мобильных платформ, важным оказался другой аспект — энергопотребление в режиме ожидания. Многие конкурирующие модули проигрывали здесь i.MX93, у которого действительно хорошо реализованы низкоэнергетические режимы. Это позволило нам создать прототип автономного патрульного робота, который на одном заряде работает на несколько часов дольше. Но и тут есть ?но?: выход из глубокого сна иногда занимал больше времени, чем хотелось бы, что для некоторых сценариев аварийного реагирования неприемлемо.
Любой инженер знает, что железо — это только половина дела. Вторая половина — доступность, документация и поддержка. С i.mx93 SOM ситуация неоднозначная. С одной стороны, NXP предоставляет хороший базовый набор драйверов и Yocto BSP. С другой — когда нужна кастомизация под конкретный продукт (а в нашей деятельности проектирования отраслевых продуктов интеллектуальных вычислений это правило), часто упираешься в необходимость самостоятельного патчинга ядра или ожидания обновлений от сообщества.
Мы сотрудничаем с несколькими поставщиками готовых системных модулей, и качество сопровождения у них разное. Где-то быстро дают ответы по схемам и предоставляют отладочные патчи, где-то приходится неделями ждать. Для компании, которая разворачивает аппаратное обеспечение под жесткие сроки проекта, это критичный фактор. Иногда проще выбрать менее производительную, но более предсказуемую платформу, чем рисковать срывом сроков из-за проблем с ПО.
И ещё один практический момент — долгосрочная доступность компонентов. После пандемии цепочки поставок стали головной болью. i.MX93 — относительно новая платформа, и пока сложно сказать, как будет обстоять дело с поставками через 3-5 лет. Для промышленных и медицинских продуктов, которые мы разрабатываем, это важнейший вопрос. Приходится заранее продумывать альтернативные варианты или договариваться о страховых запасах чипов с дистрибьюторами.
Так стоит ли игра свеч? С моей точки зрения, i.mx93 SOM — это крепкий ?середнячок? с хорошим потенциалом для определённых ниш. Он не совершит революцию, но может стать надёжной рабочей лошадкой для массовых проектов периферийного интеллекта, где не нужна экстремальная производительность, но важны баланс и предсказуемость. Особенно если ваш продукт, как и многие проекты нашей компании, попадает в категорию промышленных контроллеров, систем безопасности или медицинских мониторов.
Главный урок, который мы извлекли: не стоит воспринимать его как готовое решение ?под ключ?. Это платформа для глубокой адаптации. Успех внедрения на 70% зависит от компетенции инженерной команды в низкоуровневом программировании, знании особенностей Linux BSP и умении решать аппаратные проблемы. И на 30% — от выбора правильного партнёра-поставщика самого модуля.
Лично я продолжаю следить за развитием экосистемы. Видно, что NXP вкладывается в этот направление, появляются новые инструменты для оптимизации моделей ИИ под Ethos-U. Если устранят ?детские болезни? с питанием и теплом в следующих ревизиях, а сообщество нарастит базу готовых решений, то i.mx93 имеет все шансы стать одним из бестселлеров для краевых вычислений. Но сегодня работать с ним — это всё ещё работа для тех, кто не боится копаться в даташитах и исходном коде драйверов, а не для тех, кто ищет простой путь.