Как выбрать CPU для гаджета

Можно найти тысячу и один гайд, как выбрать проц в домашний комп. Но как выбрать проц в кастом-девайс — инфы ноль. Вот пара нюансов на этом нелёгком пути, если бы вы хотели сделать свой гаджет.

Джеки, я хорошо тебя понимаю
Джеки, я хорошо тебя понимаю

Итак.

0. Требования

Разработка требований — процесс творческий и итеративный. Начинаешь с вижена продукта, под него прикидываешь какой-то доступный проц (часто это Raspberry или Ардуино, зависит от полёта мысли).

Запускаешь mvp, замеряешь перфоманс, читаешь доки, не получается, приходят новые идеи, повторяешь. В конце концов, круг продуктовых задач очерчивается.

На примере моего гаджета Neko, требования такие — это носимое устройство (ограничения по потреблению) на Linux (сразу отлетает Cortex-M). Перфоманс на уровне RPi 4 (надо обрабатывать треки с задержкой 3-5 ms).

Нужен NPU с поддержкой floating point (чтобы запускать современные нейросети, и они помогали играть в real-time). Всякая специфика типа SPI в Slave, чтобы соединить запчасти в единый девайс.

Как догадаться, что вам нужен NPU
Как догадаться, что вам нужен NPU

Отечественные микросхемы сразу игнорируем — они самые большие в мире. Толстый техпроцесс, нет нужной периферии, архитектур, сообщества.

Казалось бы, ну и берите soc (system on chip — процессор) с Raspberry, что тут думать. Но таким бомжам как мы, их не продают. Да и NPU отстутствует.

Зато есть процы от китайских братьев: Allwinner, Amlogic, Rockchip, etc. Вроде бы тоже не проблема — выбирай чип из их линейки, делов то. Но нет.

1. Выбор

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

Не все заграничные коллеги одинаково полезны
Не все заграничные коллеги одинаково полезны

Самый рабочий источник — ваш друг-китаец, владелец китайского дизайн-хауса или ODM (original development manufacture — фабрика кароче). Нет такого? Очень жаль.

Допустим, вы разобрались в линейках, нашли заветный камешек. Что дальше?

2. EOL

Важно понять, не снимут ли его на днях с производства. Как это узнать? Можно догадаться по его популярности — ставят ли в массовые девайсы.

Совет дня — не совершайте эпических ошибок
Совет дня — не совершайте эпических ошибок

Ну или, как в пункте 1 — у того же друга-китайца должен быть друг из вендора проца, не постеснявшийся намекнуть за обедом, попадает ли soc в eol (end of life).

Убедились, что чип внезапно не окажется на свалке истории, прекрасно. Можно открывать шампанское? Конечно же, нет :)

З. Закупка

Чтобы процессоры стоили дёшево, их производят партиями в сотни тысяч или миллионы штук. Ваш заказ в жалкие 5-10к (на который ещё нужно умудриться наскрести денег) никому не интересен.

Не всё можно купить, Ричард. Но ты всё равно хорош
Не всё можно купить, Ричард. Но ты всё равно хорош

Важно понять, с какой периодичностью soc будут производиться, а это связано с заказами крупных игроков. Ну типа Huawei. Или Amazon. Cherry на худой конец.

Сложились удачные обстоятельства, на рынке куча устройств с нашим проциком, берём? Ага, сейчас.

4. Поддержка

В каждом soc куча периферии — гляньте, сколько квадратиков на картинке-диаграмме. Для всех них нужно писать системный софт — драйвера.

Тот самы soc. Тут всё серьёзно
Тот самы soc. Тут всё серьёзно

Обычно, китайская документация не славится с��оей точностью, и приходится уточнять в поддержке, почему всё делаешь по инструкции, а оно не то что не работает, а описанных элементов просто нет.

Поддержке зачастую плевать на запросы каких-то широкоглазых стартаперов.

В Китае есть дела поважнее, чем отвечать на ваши вопросы
В Китае есть дела поважнее, чем отвечать на ваши вопросы

Круто, если процессор популярен среди комьюнити разработчиков, системщики уже всё написали, а процессор поддержан ядром Linux в mainline.

Но даже такое положение дел не отменяет важность адекватной поддержки.

Вариант для Neko

В общем, самым перспективным soc для Neko сейчас выглядит Rockchip RK3576.

Quad-core Cortex-A72 для толстых приложений и Quad-core Cortex-A53 для остального, 6 TOPS NPU@INT8 c поддержкой fp, 8 nm техпроцесс, TDP 1—6 Вт.

Цена, вроде попадает в целевой FOB (Free On Board — цена отгрузки устройства). Есть сообщество, есть частичная поддержка в mainline Linux (но нет NPU, это беда).

Кто шарит? Что думаете? Вдруг, у кого-то есть опыт написания системного софта под Rockchip?

Напишите, плез, в каментах или туть.

Начать дискуссию