Search
Write a publication
Pull to refresh
60
0
Иван Подогов @ginkage

Lead Staff Software Engineer

Send message

Была! Боже, когда мы с папой на Митинском радиорынке нашли Creative Labs 3D Blaster Voodoo2 за какие-то удивительно вменяемые деньги (в валюте, что характерно... да и расплачивались тогда в валюте), это было такое эпичное событие...

Как щас помню, она была прям в такой большой коробке, как будто чтобы подчеркнуть значимость этого компонента. А может, это я тогда был маленький, и всё казалось большим.

И да, в итоге Quake 2 я помню именно таким, как на видео справа. И первый Tomb Raider тогда тоже заиграл новыми красками, и прочее...

Ох, как же давно это было.

Все бы хорошо, но если она привязана к старому аккаунту, то ничего не поделать — использовать ее не выйдет.

Чой-та? Я знаю аж две альтернативных опенсорсных прошивки для этой камеры (и её клонов).

Таки нет: и то, и другое всё же Mali, просто одно из них использует древний самопальный драйвер, а другое — официальный драйвер ARM.

Но даже между этими драйверами разница может составлять от трёх и более раз, в зависимости от сложности рендера (Aquarium в этом смысле — так себе тест, на самом деле, это почти 2D).

Канонический пример — эмулятор Dolphin, особенно с игрой F-Zero GX. У меня она работает на 60 fps, тогда как с Panfork'ом это был диафильм.

Или вот, Half-Life 2. Оговорюсь, что здесь я использовал проект Source Engine, а не Steam (тот ставить долго, а Source у меня уже был собранный). Но на скорость графики это влиять не должно.

Ссылки на коммиты? Извольте: дистрибутив, ядро.

Мои наработки в ROCKNIX: раз, два.

Vulkan проверялся играми из Steam.

Разве что llvmpipe, т.е. софтверно. Нет, в образе Joshua-Riek пока не поддерживается Vulkan, см. issue раз и два. Да, эти образы устарели, Joshua выгорел и больше не работает над ними так, как раньше. Поэтому, да, в них старое ядро и старые драйверы (и, повторюсь, Vulkan всё же не поддерживается).

как мне "включить правильное аппаратное ускорение" для образа который я использовал

Для этого надо удалить все следы Mesa и таки поставить вышеуказанные пакеты. Но, да, нужно более новое ядро, т.к. Joshua специально удалял коммиты, которые обновляют драйвер ядра Mali, чтобы поддерживать совместимость с Panfork — в ущерб производительности. Кстати, сам создатель Panfork в своё время выкладывал инструкцию, как использовать правильные драйверы. Однако, перелопачивать конкретно образ Joshua-Riek, хоть и возможно, но заметно дольше и трудозатратнее, чем просто взять новый дистрибутив с новым ядром.

Что касается игр — таки да, результаты именно что будут кратно выше. Я специально занимался именно юзкейсом игр в рамках проекта Retro Lite CM5, точно знаю, о чём говорю.

Мой вопрос про скриншот glmark2-es2-wayland имеет совершенно конкретную причину: если у вас в тесте terrain результат около 100 или ниже, то это ничто. Если 300 или выше, то — поздравляю, вы наконец-то используете ускоритель Mali G610 (и, собственно, процессор RK3588) по назначению. Но я уже знаю, каким будет ваш ответ. Отсюда, например, бессмысленность утверждения о преимуществе N100 в 2.6 раза.

А включить-то просто: поставьте Armbian последних сборок с Noble, плюс установите libmali (можно сборки tsukumijima, но если хочется на практике использовать Vulkan, то лучше мои). Вас, возможно, удивит, но я — один из мэйнтейнеров Armbian, именно для этого процессора.

Проект ROCKNIX — вот тут: https://rocknix.org/ (неужели вас уже и в гугле забанили?)

Я серьёзно. Дайте скриншот с glmark2-es-wayland, например? А ещё лучше, с vkcube-wayland?

Panfork — это древний форк Mesa, едва ли пригодный для чего либо. Правильно использовать либо Panthor (если вы любите опенсорс), либо libmali (если хотите максимальную производительность, раза в 2-3 быстрее). Оба умеют рендерить GNOME аппаратно, без вот этого "Software Rendering".

Да, я разобрался, как включить аппаратное ускорение. Я разобрался, как включить Vulkan. Этими моими наработками активно пользуется, например, проект ROCKNIX.

Видео в H265 — это вообще другое, там другие драйверы и другие ядра процессора.

Учитывая то, что автор не разобрался, как включить аппаратное ускорение графики (для этого есть аж два разных драйвера), все тесты производительности в статье бессмысленны.

Тоже как-то покоробило... Но на этом автор ведь не остановился:

...с ускорителем Arm NEON

А это, простите, что за зверь?

Точно не умеет. Да, там только h265. :)

Собственно, я потому и упомянул Rock 5C, что у него видео-декодер великолепный, да и NPU ничего так (6 TOPS), но с Hailo-8L (13 TOPS) он был бы ещё интереснее. Но так ли это на практике? ;)

Про Frigate я заикнулся в том смысле, что это уже готовое решение, которое (в теории!) несложно подстроить под несколько разных платформ, т.к. плагины уже есть, и протестировать на однотипных примерах — что мы получим на самом деле? Тут проверилась бы и простота сборки, и производительность, и разные ботлнеки вскрылись бы (как тот же Coral через USB отличается от Coral по M2).

Кастомные решения — это, в общем, тоже интересно, особенно когда нижний сегмент корпоративных решений начинает пересекаться с просьюмерским: можно ли за относительно небольшие деньги получить производительную систему для домашнего использования, и как?

Ну да ладно, я понимаю, что немного раскатал губу, просто статья в целом была уж очень многообещающей. :)

О, такая табличка — это уже что-то, спасибо.

Мне, например, любопытна чисто практическая сторона для домашнего использования: типа, YOLO на Frigate, с одной или нескольких камер, на чём-то вроде RK3588 vs. Hailo-8L на RPi 5 vs. A311D (через драйвер etnaviv, в идеале).

В таком сценарии можно рассмотреть и лёгкость подключения, и минусы самих решений (например, RPi 5 не умеет аппаратно декодировать h264), и интересные способы достижения максимальной производительности за вменяемые деньги (а что если Hailo-8L подключить к Rock 5C?).

Судя по статье, я уверен, что у вас (в отличие от меня) достаточно опыта и навыков для создания подобного обзора. :)

Например на RPi только 1 линия (официально PCI-e(1), но на практике PCI-e(2))

Позанудствую: на RPi 5 по умолчанию PCIe2x1, но можно включить PCIe3x1. Там же можно через PCIe-свитч завести какой-нибудь двуядерный Coral M2, но тогда только PCIe2.

Статья понравилась, но раз уж обзор, какие-нибудь бенчмарки были бы уместны ("не очень быстрая плата" — это довольно расплывчато), в идеале с указанием заявленных TOPS и реальной скорости инференса.

Про то, что нельзя unordered_map — почему-то не верю, учитывая фидбек: "most folks just default to standard hash tables" — как бы намекает, что так можно было. Опять же, после уточняющих вопросов наверняка бы выяснилось, что можно и тупо массивом (хотя, потом всё равно сказали бы, что а давайте теперь у нас юникод, так что хэш-таблица понадобится всё равно).

Такой вот code golf, например, быстрее 99% решений
class Solution {
public:
    string minWindow(string s, string t) {
        int diff = 0;
        int count[128];
        memset(count, 0, sizeof(count));

        for (const char &c : t)
            diff += ((count[c])++ == 0);

        char *start = s.data(), *end = start + s.size();
        char *pi = start, *pj = start;
        int ri = -1, minLen = s.size() + 1;

        while (pj < end) {
            while (pj < end && diff != 0)
                diff -= (--(count[*pj++]) == 0);

            while (pi < pj && diff == 0) {
                int len = pj - pi;
                if (len < minLen) {
                    minLen = len;
                    ri = pi - start;
                }

                diff += ((count[*pi++])++ == 0);
            }
        }
        
        return ri >= 0 ? s.substr(ri, minLen) : "";
    }
};

Кстати, мне эту задачу давали на скрининге в G десять лет назад, тогда там точно можно было unordered_map.

В этом кроется весь смысл архитектуры: переход от активации нейронов – к граням нейросети.

Таки к граням, или всё же к рёбрам?

Всё так. При желании можно было бы даже ZigBee использовать, с той же ESP32-C6, и всё равно было бы столь же недорого, плюс стандартные протоколы для климат-контроля.

А вот Raspberry Pi Zero тут откровенно избыточно.

Девайс поддерживает работу сразу с двумя 8К-дисплеями

М-м, не поддерживает. Один 8K через HDMI, плюс один 2K через MIPI DSI.

Rockchip ещё официально не выпустила SDK для ядра 6.1, хотя обещали ещё в декабре. Если повезёт, примерно завтра выпустят (видимо, китайский новый год внёс дополнительные задержки), и вскоре появятся сборки для Armbian. Предрелизные сборки уже существуют (одна такая у меня на Rock 5A крутится), но релиза пока не было.

1
23 ...

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity