I can try to reproduce the other day. Yes, they have same SG2002 SoC, but maybe they have difference in SD card initialization or some other low-level differences. But, anyway, I will try
В итоге, приехала мне LuckFox Pico Max, процессор RV1106G3 и на Yolov8 с изображениями 640x640 он выдаёт 14 FPS (чуть больше, чем Luckfox Pico, у которой 11 FPS). К сожалению, это явно не 1 TOPS...
У меня интерес к этой камере есть, но много времени на отладку надо (причём некоторые моменты "в слепую"). На RV1106G3 я тоже полноценного даташита не нашёл.
Пока считать кадр с камеры не удалось. Недавно в issue писал человек, что смог заставить плату "увидеть" камеру, отпаяв 2 подтягивающих резистора. Но у меня от этого никаких изменений не произошло. Но в любом случае пока, к сожалению, она не запустилась.
В общем, пока не понятно, вроде шансы есть (так как все исходники есть), но почему - то ничего не работает. Ну и со стороны Sipeed, к сожалению, никакой помощи нет.
Где - то выше предлагали Radxa zero 3, она чуть больше, но гораздо более производительная. В целом, Python сервер можно и на LicheeRV Nano запустить, работать будет, но тут вопрос в том, какая будет нагрузка
Маленькое количество оперативной памяти, сам интерпретатор заберёт достаточно много. Так же сам процесс получения из кадра итогового массива объектов, обнаруженных через YOLO состоит из нескольких шагов. Инференс происходит на NPU и тут Python сильно не проиграет по скорости, но далее результаты с NPU пост-обрабатываются ещё на процессоре (NMS фильтр). Тут Python сильно тормозит
Жёлтая - мощность в Ватах. Синяя - ток. Слева ось для напряжения, но так как там 5 Вольт, то её нормально не видно. Но соглашусь, что графики не сразу понятны.
В общем я заказал LuckFox pico max 256 с 1106G3, внятного даташита я не нашёл (не совсем понятно точно ли там 1 TOPS на int8, проверю экспериментально). И если там действительно 1 TOPS, то можно будет провести интересный эксперимент: при одинаковой базовой YOLO модели и входных данных сравнить скорость инференса на разных платах (LicheeRV Nano и LuckFox pico max 256). Всё-таки у Rockchip и SOPHGO разные NPU и SDK под них, интересно есть ли разница в "качестве их софта" или, например, обвязка вокруг SoC'а может влиять на скорость работы.
Китайский USB тестер (примерно как на скриншоте ниже). У меня версия с Bluetooth и для него есть приложение под android, которое графики и рисует (и даже в csv вроде может экспортировать), ну и потом я скриншоты немного в GIMP'е обрабатывал (обрезал, текст подписывал) и всё.
Да, памяти действительно мало, но мне кажется, что это очередная попытка китайцев сэкономить. Теперь о сравнении:
WiFi на плате LicheeRV Nano - однозначно плюс, потому что к Luckfox Pico адекватно добавить поддержку WiFi можно только через самодельный шилд/hat. А это не так удобно
Производительность CPU примерно одинаковая у обоих, но возможность выбора ARM/RISC-V под Linux я считаю бесполезной, лучше бы под Linux было 2 ядра и 1 под RTOS
Производительность NPU: у LicheeRV Nano оно быстрее в 2 раза, но что тоже интересно - LicheeRV Nano поддерживает BF16 (пока не завёлся, но я решу эту проблему).
Разработка под NPU. NPU решает очень узкий набор задач, поэтому необходимо портировать модель под него. У LicheeRV Nano TDL SDK опенсурсный, поэтому потенциально есть возможность портировать любую модель (конечно, это только на словах легко). RKNN Toolkit - закрытый, если он не поддерживает какой - то слой/функцию, то кастомную модель придётся переделывать. YOLO и набор основных SOTA нейронок портирован на обоих фреймворках, но портирование кастомных моделей может вызывать трудности (но это в целом проблема всех NPU, заявленная поддержка ONNX моделей не означает, что любую модель можно запустить).
Камеры. У Luckfox Pico "нестандартный" CSI разъём. У LicheeRV Nano хотя бы разъём подходит под камеры Raspberry PI, но с софтом/драйверами пока есть проблемы. На обоих платах сложно завести камеру не от производителя платы. Хотя Luckfox Pico судя по тексту из документации не планируют заниматься поддержкой других камер.
Документация. У LicheeRV Nano она намного хуже (мало тем рассмотрено), чем у Luckfox Pico
Поддержка FreeRTOS на втором ядре однозначно плюс для LicheeRV Nano
GPIO пины: LicheeRV Nano с включенным WiFi фактически не имеет аппаратных SPI и I2C, что очень неприятно
В общем, LicheeRV Nano мне кажется более перспективной платой для более сложных проектов, но маленький объём оперативки и всего одно ядро под Linux - две основные проблемы.
Да, RTOS установить можно, судя по даташиту в процессоре есть MCU, на который как раз должна вставать FreeRTOS. Хотя, в целом есть unix'овые qnx и другие.
On Colab
I can try to reproduce the other day. Yes, they have same SG2002 SoC, but maybe they have difference in SD card initialization or some other low-level differences. But, anyway, I will try
You try to run LicheeRV SD image on Milk V Duo?
Luckfox видимо ещё сами не решили какая производительность у NPU на RV1106G3. В одном месте написано 0.5 для всей линейки:
На странице плат с RV1106 упоминается 1 TOPS:
В итоге, приехала мне LuckFox Pico Max, процессор RV1106G3 и на Yolov8 с изображениями 640x640 он выдаёт 14 FPS (чуть больше, чем Luckfox Pico, у которой 11 FPS). К сожалению, это явно не 1 TOPS...
Да, было бы здорово
А не подскажите, пожалуйста, название/ссылку жёлтой подставки, на которую крепите текстолит в гравере?
У меня интерес к этой камере есть, но много времени на отладку надо (причём некоторые моменты "в слепую"). На RV1106G3 я тоже полноценного даташита не нашёл.
Пока считать кадр с камеры не удалось. Недавно в issue писал человек, что смог заставить плату "увидеть" камеру, отпаяв 2 подтягивающих резистора. Но у меня от этого никаких изменений не произошло. Но в любом случае пока, к сожалению, она не запустилась.
В общем, пока не понятно, вроде шансы есть (так как все исходники есть), но почему - то ничего не работает. Ну и со стороны Sipeed, к сожалению, никакой помощи нет.
Где - то выше предлагали Radxa zero 3, она чуть больше, но гораздо более производительная. В целом, Python сервер можно и на LicheeRV Nano запустить, работать будет, но тут вопрос в том, какая будет нагрузка
Да, примерно такое
Маленькое количество оперативной памяти, сам интерпретатор заберёт достаточно много. Так же сам процесс получения из кадра итогового массива объектов, обнаруженных через YOLO состоит из нескольких шагов. Инференс происходит на NPU и тут Python сильно не проиграет по скорости, но далее результаты с NPU пост-обрабатываются ещё на процессоре (NMS фильтр). Тут Python сильно тормозит
Жёлтая - мощность в Ватах. Синяя - ток. Слева ось для напряжения, но так как там 5 Вольт, то её нормально не видно. Но соглашусь, что графики не сразу понятны.
Спасибо! Попробую потестировать Radxa. Судя по характеристикам, действительно, очень интересная плата
В общем я заказал LuckFox pico max 256 с 1106G3, внятного даташита я не нашёл (не совсем понятно точно ли там 1 TOPS на int8, проверю экспериментально). И если там действительно 1 TOPS, то можно будет провести интересный эксперимент: при одинаковой базовой YOLO модели и входных данных сравнить скорость инференса на разных платах (LicheeRV Nano и LuckFox pico max 256). Всё-таки у Rockchip и SOPHGO разные NPU и SDK под них, интересно есть ли разница в "качестве их софта" или, например, обвязка вокруг SoC'а может влиять на скорость работы.
Китайский USB тестер (примерно как на скриншоте ниже). У меня версия с Bluetooth и для него есть приложение под android, которое графики и рисует (и даже в csv вроде может экспортировать), ну и потом я скриншоты немного в GIMP'е обрабатывал (обрезал, текст подписывал) и всё.
Кстати LuckFox pico max выглядит интересно, надо будет потестировать
Да, памяти действительно мало, но мне кажется, что это очередная попытка китайцев сэкономить. Теперь о сравнении:
WiFi на плате LicheeRV Nano - однозначно плюс, потому что к Luckfox Pico адекватно добавить поддержку WiFi можно только через самодельный шилд/hat. А это не так удобно
Производительность CPU примерно одинаковая у обоих, но возможность выбора ARM/RISC-V под Linux я считаю бесполезной, лучше бы под Linux было 2 ядра и 1 под RTOS
Производительность NPU: у LicheeRV Nano оно быстрее в 2 раза, но что тоже интересно - LicheeRV Nano поддерживает BF16 (пока не завёлся, но я решу эту проблему).
Разработка под NPU. NPU решает очень узкий набор задач, поэтому необходимо портировать модель под него. У LicheeRV Nano TDL SDK опенсурсный, поэтому потенциально есть возможность портировать любую модель (конечно, это только на словах легко). RKNN Toolkit - закрытый, если он не поддерживает какой - то слой/функцию, то кастомную модель придётся переделывать. YOLO и набор основных SOTA нейронок портирован на обоих фреймворках, но портирование кастомных моделей может вызывать трудности (но это в целом проблема всех NPU, заявленная поддержка ONNX моделей не означает, что любую модель можно запустить).
Камеры. У Luckfox Pico "нестандартный" CSI разъём. У LicheeRV Nano хотя бы разъём подходит под камеры Raspberry PI, но с софтом/драйверами пока есть проблемы. На обоих платах сложно завести камеру не от производителя платы. Хотя Luckfox Pico судя по тексту из документации не планируют заниматься поддержкой других камер.
Документация. У LicheeRV Nano она намного хуже (мало тем рассмотрено), чем у Luckfox Pico
Поддержка FreeRTOS на втором ядре однозначно плюс для LicheeRV Nano
GPIO пины: LicheeRV Nano с включенным WiFi фактически не имеет аппаратных SPI и I2C, что очень неприятно
В общем, LicheeRV Nano мне кажется более перспективной платой для более сложных проектов, но маленький объём оперативки и всего одно ядро под Linux - две основные проблемы.
Спасибо за фидбэк! Видимо COCO модель слишком большая для платы и при квантизации она становится непригодной для изображений не из датасета
А я правильно понял, что Yandex DataSphere даёт вычислительные ресурсы бесплатно?
Если да, то какие там ограничения?
Да, RTOS установить можно, судя по даташиту в процессоре есть MCU, на который как раз должна вставать FreeRTOS. Хотя, в целом есть unix'овые qnx и другие.