Декодировать весь поток на CPU и потом отправлять его весь на инференс большая нагрузка.
(1) Декодируйте H264 на GPU. либо только IFRAME на CPU при помощи того же pyav, при наличии движения в кадре можете начинать Декодировать B кадры на промежуток времени и делать полный инференс.
Таким образом во многих сценах уменьшите нагрузку на CPU/GPU в разы.
В контексте ML для обучения простых моделей даже 1080ti 11gb и A4000 с 16gb мало памяти, лучше не экономить и брать хотя бы 3090, 24gb. Для постоянного инференса например видеопотоков память особо не нужна, но что 1080 - 175W, 16nm что 2060 160w,12nm съедят за год электричества на 9000RUR. Тогда уже A2000 можно брать за 18k. Отобьется за год и на порядок мощнее в FP16, как и 2060. Из дешевого ML наверное альтернатив 3060/3060ti пока нет.
Для обучения сколько бы ни стоила 4090, работает она как 6шт 1080, 4шт 1080ti, 1.5-3090. Всё это в одном слоте без танцев с бубнами с распределенным обучением.
Если пропустил P фрэйм, жди следующего I фрэйма и декодируй стрим дальше. В частности можешь держать поток в сонном режиме делая demux и раскодируя только I кадры. Если обнаружил движение между I - начинай декодировать полностью.
4218R всего 8 камер...?HEVC?FULL HD 25FPS?Както маловато...
У меня DL380GEN8, 4x4650v2 120 камер вывозит без GPU с процессингом в OpenCv, на питоне но правда с трюком... Часть камер декодит только I фрэймы через PyAv, но в целом заключение верное Python,GIL, смерть. У меня LXC контейнер поднят под каждый процессинг. Нейронки.. Triton, TRT, ONNX на отдельном сервере. Но 600FPS nvdec с "1650" вы правы грех не использовать).
Для многопоточного инференса если сетка в 16gb помещается из таблицы явно видно что лидер A4000 в силу однослотовости. Сравнивая что с A100 что с 3090. Я в ASUS ESCR4000-E10 могу вставить 8мь A4000 которые дадут результат на инференсе приблизительно как 4xA100. А по цене будут чуть больше одной.
Дааааа.При вашем масштабе и количестве нужно было быстро запускаться, бить шишки и потиху уже неспешно расширять функционал и архитектуру. У нас в компании 500, поэтому таких проблем не было, поэтому сосредоточились больше на функционале.
лайфхак интересный?? Nvidia подтвердила что в системе есть change request на поддержку gpu memory temperature в nvml на уровне драйверов, но за год воз и ныне там( вопрос частично политический, не хотят показывать людям детали какова ситуация в реальности.
По обучению как понимаете все весьма двояко. Все зависит от вашего кода (используете ли вы tensorrt, тренируется ли в параллели,итд) IMHO: Если не заморачиваться то наверное всегда проще и выгоднее арендовать сервер на 8*A100/ V100 вы все равно 24/7 свое оборудование не загрузите. Приватность датасетов тоже в большинстве случаев - паранойя.
A10ю пока не купил( пока решаю и для принятия решения наверное арендую на тест.
Как-то мыслей и цифр много но... Начнем с того что у нас в принципе 2 разные задачи - обучение и продакшн инференс. На обучение нужна одна конфигурация сервера и одни карты. На инференс как у меня на 500+ камер совсем другая конфигурация...
По тестированию в статье от селектел всё более четко понятно про A10, A4000,... И из реального опыта A4000 плохо ставятся в вплотную к друг к другу даже в Gpu сервер аля Asus Esc4000a. Они засасывают воздух сверху и снизу, при установке вплотную это не работает и карты перегреваются даже при 100+ cfm от двух Delta 80mm 16000 Rpm. Нужна конструкция как у A10 или 3090 с турбиной без кожуха и турбины с забором воздуха сзади.
Что вижу из своей практики.
Декодировать весь поток на CPU и потом отправлять его весь на инференс большая нагрузка.
(1) Декодируйте H264 на GPU. либо только IFRAME на CPU при помощи того же pyav, при наличии движения в кадре можете начинать Декодировать B кадры на промежуток времени и делать полный инференс.
Таким образом во многих сценах уменьшите нагрузку на CPU/GPU в разы.
В контексте ML для обучения простых моделей даже 1080ti 11gb и A4000 с 16gb мало памяти, лучше не экономить и брать хотя бы 3090, 24gb. Для постоянного инференса например видеопотоков память особо не нужна, но что 1080 - 175W, 16nm что 2060 160w,12nm съедят за год электричества на 9000RUR. Тогда уже A2000 можно брать за 18k. Отобьется за год и на порядок мощнее в FP16, как и 2060. Из дешевого ML наверное альтернатив 3060/3060ti пока нет.
Для обучения сколько бы ни стоила 4090, работает она как 6шт 1080, 4шт 1080ti, 1.5-3090. Всё это в одном слоте без танцев с бубнами с распределенным обучением.
Если пропустил P фрэйм, жди следующего I фрэйма и декодируй стрим дальше. В частности можешь держать поток в сонном режиме делая demux и раскодируя только I кадры. Если обнаружил движение между I - начинай декодировать полностью.
Через pyav я такой подход реализовывал.
4218R всего 8 камер...?HEVC?FULL HD 25FPS?Както маловато...
У меня DL380GEN8, 4x4650v2 120 камер вывозит без GPU с процессингом в OpenCv, на питоне но правда с трюком... Часть камер декодит только I фрэймы через PyAv, но в целом заключение верное Python,GIL, смерть. У меня LXC контейнер поднят под каждый процессинг. Нейронки.. Triton, TRT, ONNX на отдельном сервере. Но 600FPS nvdec с "1650" вы правы грех не использовать).
Вопрос задачи...
Для многопоточного инференса если сетка в 16gb помещается из таблицы явно видно что лидер A4000 в силу однослотовости. Сравнивая что с A100 что с 3090. Я в ASUS ESCR4000-E10 могу вставить 8мь A4000 которые дадут результат на инференсе приблизительно как 4xA100. А по цене будут чуть больше одной.
Дааааа.При вашем масштабе и количестве нужно было быстро запускаться, бить шишки и потиху уже неспешно расширять функционал и архитектуру. У нас в компании 500, поэтому таких проблем не было, поэтому сосредоточились больше на функционале.
лайфхак интересный?? Nvidia подтвердила что в системе есть change request на поддержку gpu memory temperature в nvml на уровне драйверов, но за год воз и ныне там( вопрос частично политический, не хотят показывать людям детали какова ситуация в реальности.
По обучению как понимаете все весьма двояко. Все зависит от вашего кода (используете ли вы tensorrt, тренируется ли в параллели,итд) IMHO: Если не заморачиваться то наверное всегда проще и выгоднее арендовать сервер на 8*A100/ V100 вы все равно 24/7 свое оборудование не загрузите. Приватность датасетов тоже в большинстве случаев - паранойя.
A10ю пока не купил( пока решаю и для принятия решения наверное арендую на тест.
На 100% согласен что про обучение и tradeoff между 3090 и А5000.
При не постановке вплотную теряется смысл, приходим к тем же 4ре А5000 вместо 8 А4000)
А10 при двойной цене от А4000 в инференсе не дает двойного прироста(
Как-то мыслей и цифр много но... Начнем с того что у нас в принципе 2 разные задачи - обучение и продакшн инференс. На обучение нужна одна конфигурация сервера и одни карты. На инференс как у меня на 500+ камер совсем другая конфигурация...
По тестированию в статье от селектел всё более четко понятно про A10, A4000,... И из реального опыта A4000 плохо ставятся в вплотную к друг к другу даже в Gpu сервер аля Asus Esc4000a. Они засасывают воздух сверху и снизу, при установке вплотную это не работает и карты перегреваются даже при 100+ cfm от двух Delta 80mm 16000 Rpm. Нужна конструкция как у A10 или 3090 с турбиной без кожуха и турбины с забором воздуха сзади.