Тема прикольная. Жаль что никак не сочетается с настоящим Сайбертраком в стиле фэмилилук, как в силу недоступности оного верноподданным, так и в силу явного диссонанса Samsung и ЦУ Сайбертрак хотя бы в силу пристрастий пользователей в США. Так что - ну хоть сфотаемся у ламбы… может коллекционная ценность будет…
Даешь S24 в стиле Лады Приоры или Калины. Вот это был бы номер. И все вкруг в черной тонировке.
А еще бывают автопоезда из 5-6 фур, которые, видимо, для экономии бензина встают гуськом и это полная жопа. Бывают еще обгоны в горку, которые очень удобны на быстрой машине, особенно зимой, потому что тормозить гравитация помогает, а обгонять мощный двигатель.
Это не статья, при всем уважении. Более того, я даже не смог императив уловить этого текста. Ну давайте расписывать оверусложненную архитектуру всяких hello-world-ов.
Вы ступаете на скользкий путь. Сомневаюсь, что сможете обосновать чем пул тредов в разных процессах в Linux отличается от нескольких пулов тредов в одном процессе. Плюсы только в отказоустойчивости в силу ограничения области распространения критических ошибок. А так dlopen вполне может и отдельные модули загружать в виде плагинов.
Помимо этого, если встроить такой плагин в последовательность основного пайплайна, мы неизбежно придём к тому, что один кадр станет обрабатываться дольше, а значит упадёт количество FPS (даже если этот плагин будет использовать уже декодированное изображение в RAM GPU). Поэтому описанный сервис работает асинхронно и не затрачивает ресурсы основного пайплайна.
Ну, вообще, разницы особой не вижу, в любом случае, в момент обработки у вас разные модули конкурируют за ресурсы. В рамках пайплайна DS/GStreamer вполне работает трединг, а обработку можно пропускать, а, значит, разницы нет, а эффективность выше.
Вы все классно объясняете, непонятно только как картинки попадают на инференс с камеры и при чем тут REST? Объясните flow.
Я вам объясняю, если вы в сервис распознавания номеров отдаете картинки через RAW RGB, вы абьюзите железку и просто бесполезно тратите ее ресурсы.
Нормальный flow: делать пайплайн, который декодирует весь поток, но обрабатывает только часть данных, если есть типа "внешний трекер". Потому что загрузка RAW RGB в TensorRT выглядит накладной, особенно через RESTful API.
Вот как мы это делаем:
у нас DeepStream
декодинг на NVDEC
внутри ряд модулей паровозиком - какие-то модули делают одно, какие-то другое, но все они работают с одной и той же картинкой заранее аллоцированной в GPU RAM после NVDEC
даже если вызывается, скажем, Triton, то с ним тоже обмен через указатель на память, а через REST только метаданные;
если OpenCV - то OpenCV CUDA, без скачивания в пространство CPU;
если надо веторы считать - CuPy или тензоры CUDA PyTorch, без скачивания тензоров в CPU;
Вот это все - архитектура NVIDIA, которая работает хорошо только тогда, когда вы делаете все правильно, а не абьюзите железку.
В смысле, они пишут, что есть где-то что-то что использует NVDEC и делает декодинг видео, соответственно, у них там и инференс есть. Далее, они вместо того, чтобы делать инференс на этой высокоэффективной железке зачем-то отправляют его на Jetson в форме RAW RGB через REST. Выглядит как бред - или они не умеют нормально объяснять.
Думаю, что Вам стоит изучить устройства алгоритма поиска в векторном пространстве на примере, например, hnswlib. Сможете пересмотреть свое мнение о:
Ну и это, давайте, повторяйте алгоритм в студию. Да так, чтобы в сотне миллионов векторов f32x1024 поиск был быстрым.
Ну и заголовок в духе вашего комментария. Люди просто не понимают разницу.
Так и что по ускорителям ИИ?
Тема прикольная. Жаль что никак не сочетается с настоящим Сайбертраком в стиле фэмилилук, как в силу недоступности оного верноподданным, так и в силу явного диссонанса Samsung и ЦУ Сайбертрак хотя бы в силу пристрастий пользователей в США. Так что - ну хоть сфотаемся у ламбы… может коллекционная ценность будет…
Даешь S24 в стиле Лады Приоры или Калины. Вот это был бы номер. И все вкруг в черной тонировке.
Вряд ли «для обучения»…
В каком регионе проживаете? Добро пожаловать в то, что правее Урала.
А еще бывают автопоезда из 5-6 фур, которые, видимо, для экономии бензина встают гуськом и это полная жопа. Бывают еще обгоны в горку, которые очень удобны на быстрой машине, особенно зимой, потому что тормозить гравитация помогает, а обгонять мощный двигатель.
У мощного автомобиля много преимуществ, в том числе в плане безопасности на дороге. К примеру, меньше время нахождения в полосе встречного движения.
Мне кажется Вы смешали финансовую грамотность и трудовую систему, завязанную на финансовое вознаграждение.
Мне кажется, что подобная материальная мотивация детей - это такое себе решение. Может быть есть какие-то исследование в пользу этого?
Вы же понимаете, что они могли просто оценить прибыли, убытки и принять решение? Американский бизнес очень прагматичен.
ЧСВ?
То есть, деревня в Индии, куда скинули на аутсорс за 5% от реальной стоимости лучше, по вашему? Чем лучше?
Это не статья, при всем уважении. Более того, я даже не смог императив уловить этого текста. Ну давайте расписывать оверусложненную архитектуру всяких hello-world-ов.
А чем не нравятся пластиковые бутылки из тонкого пластика? Мне вот наоборот нравятся - можно смять и места мало занимает в мусорке, да и экологично.
Вы ступаете на скользкий путь. Сомневаюсь, что сможете обосновать чем пул тредов в разных процессах в Linux отличается от нескольких пулов тредов в одном процессе. Плюсы только в отказоустойчивости в силу ограничения области распространения критических ошибок. А так
dlopen
вполне может и отдельные модули загружать в виде плагинов.Ну, вообще, разницы особой не вижу, в любом случае, в момент обработки у вас разные модули конкурируют за ресурсы. В рамках пайплайна DS/GStreamer вполне работает трединг, а обработку можно пропускать, а, значит, разницы нет, а эффективность выше.
Вы все классно объясняете, непонятно только как картинки попадают на инференс с камеры и при чем тут REST? Объясните flow.
Я вам объясняю, если вы в сервис распознавания номеров отдаете картинки через RAW RGB, вы абьюзите железку и просто бесполезно тратите ее ресурсы.
Нормальный flow: делать пайплайн, который декодирует весь поток, но обрабатывает только часть данных, если есть типа "внешний трекер". Потому что загрузка RAW RGB в TensorRT выглядит накладной, особенно через RESTful API.
Вот как мы это делаем:
у нас DeepStream
декодинг на NVDEC
внутри ряд модулей паровозиком - какие-то модули делают одно, какие-то другое, но все они работают с одной и той же картинкой заранее аллоцированной в GPU RAM после NVDEC
даже если вызывается, скажем, Triton, то с ним тоже обмен через указатель на память, а через REST только метаданные;
если OpenCV - то OpenCV CUDA, без скачивания в пространство CPU;
если надо веторы считать - CuPy или тензоры CUDA PyTorch, без скачивания тензоров в CPU;
Вот это все - архитектура NVIDIA, которая работает хорошо только тогда, когда вы делаете все правильно, а не абьюзите железку.
В смысле, они пишут, что есть где-то что-то что использует NVDEC и делает декодинг видео, соответственно, у них там и инференс есть. Далее, они вместо того, чтобы делать инференс на этой высокоэффективной железке зачем-то отправляют его на Jetson в форме RAW RGB через REST. Выглядит как бред - или они не умеют нормально объяснять.
А зачем тогда Jetson?
Именно NVDEC/NVJPEG - те механизмы, которые в инфер позволяют что-то эффективно передавать.