Иногда возникают идеи без должной проработки на начальном этапе и эти идеи за счёт убедительности их автора кажутся всем членам команды очень перспективными. Итак, некоторое время назад у группы компаний ВИТ и ComBox Technology родилась идея реализации сервера на базе множества микрокомпьютеров. Назначение сервера – исполнение нейронных сетей на CPU и GPU микрокомпьютеров. Предполагаемый форм-фактор будущего сервера – 1U, стоечный вариант. И все бы ничего, только идея включала пассивное охлаждение, так как анонсированное тепловыделение предполагаемых к использованию микрокомпьютеров было 25 Вт. Собственно, предполагаемым микрокомпьютером для реализации был выбран Intel NUC с процессором Intel Core i5 и встроенным GPU Iris Plus 655. 25 Вт, 1U, пассивное охлаждение, сервер – все это звучит ободряюще, но дальше стали всплывать нюансы.
Во-первых, микрокомпьютеров в сервере предполагалось 8 штук. То есть тепловыделение пропорциональное энергопотреблению уже равно 25*8=200 Вт. И уже на этом этапе пассивному охлаждению можно сказать нет, но эксперимент был продолжен. В том числе, из соображений дальнейшей адаптации технологии под исполнение корпусов наружной эксплуатации. Разработка аппаратной части проходила параллельно с ОКР по использованию нужного программного обеспечения. Мы использовали комплекс по детекции и распознаванию номеров и марок/моделей транспортных средств компании ВИТ под названием EDGE. Как оказалось, при замере энергопотребления под 100% нагрузкой, Intel NUC8i5BEK потребляет 46 Вт вместо заявленных 25. При таком подходе энергопотребление и тепловыделение сервера уже становится 46*8=368 Вт. И это без учёта блоков питания и дополнительных компонентов.
В качестве теплосъемника мы использовали медные пластины после шлифовки и специальной гравировки. Далее, медная пластина отдавала тепло алюминиевому теплообменнику на верхней части сервера. Из-за ошибок в расчетах теплообменник занимал 2/3 верхней крышки и располагался с двух сторон параллельно 4 микрокомпьютерам по левой и правой граням сервера. В центральной области размещался блок питания 550 Вт сзади и маршрутизатор Mikrotik 1 Gbit спереди.
Этап проектирования сервера на базе 8 микрокомпьютеров
И результат, который получился:
NUC Server с пассивным охлаждением
Конечно, данная конструкция работала при средней нагрузке, но при 100% продолжала медленно нагреваться и отдавать значительную часть тепла в окружающую среду. Даже в рамках серверного шкафа с горячим и холодным коридором, конструкция неизбежно нагревала вышестоящего «соседа». Уменьшение числа микрокомпьютеров до 4 штук позволяло стабилизировать температуру нагрева и избегать тротлинга даже при 100% нагрузке, но проблема вышестоящего «соседа» оставалась.
Технологический стек решения разошелся по двум направлениям:
Да, да, это много и да, это возможно. Как, спросите вы? Путем объединения множества микрокомпьютеров внутри корпуса 1U на сетевом уровне через маршрутизатор. Конкретно для исполнения нейронных сетей и обработки входящих RTSP-потоков данное решение является оптимальным. Помимо этого, оно позволяет строить масштабируемые системы на базе связки Docker, Docker Swarm и Ansible.
В процессе разработки нам пришлось спроектировать несколько различных версий:
От первоначальной идеи остались хорошо себя зарекомендовавшие медные теплосъемники и алюминиевые радиаторы, но теперь располагающиеся непосредственно на каждом вычислительном узле внутри корпуса. Далее, для снятия тепла использовались по 2 вентилятора, установленные спереди каждого вычислительного модуля, направляющие теплый воздух из холодного коридора в горячий (от лицевой части сервера). Для активного управления вентиляторами были разработаны специальные платы, которые изменяли их скорость исходя из показателей датчиков температуры на каждом микрокомпьютере. Роутер из-за отсутствия необходимости в PoE лишили активного охлаждения перевели на пассивное с тепловыделением не более 10 Вт. Блок питания на первой версии оставался 500 Вт, но устанавливался на специальные крепления с возможностью быстрой замены, но с отключением питания. Для отслеживания состояния вычислительных узлов, на передней панели была добавлена индикация из 8 диодов.
Прототип сервера NUC Server от ComBox Technology, 8 CPU Core i5 и 8 GPU Iris Plus 655 в форм-факторе 1U
Технические характеристики первой версии сервера на Intel NUC:
Как это выглядит в процессе работы:
Продакшн версия претерпела значительные изменения. Вместо одного блока питания на сервере появилось 2 с возможностью их горячей замены. Мы использовали компактные серверные БП 600 Вт от Supermicro. Для вычислительных модулей появились специальные посадочные места и возможность их горячей замены без отключения питания всего сервера. Множество сетевых шлейфов было заменено на стационарные закреплённые и подведенные к посадочным местам шины. Для управления сервером добавлен микрокомпьютер Nano Pi ARM-архитектуры от FriendlyARM, для которого написано и установлено ПО для проверки и отслеживания состояния вычислительных узлов, информирования о неисправностях и аппаратного сброса конкретных вычислительных узлов через GPIO, в случае необходимости. Вентиляторы в продакшн версии устанавливаются за передней панелью по направлению от холодного коридора в сторону горячего, а ребра алюминиевого теплообменника теперь направлены вниз, а не вверх, что сделало доступным память и диски каждого вычислительного узла.
Так как сами микрокомпьютеры не являются промышленными, то для наружной эксплуатации нужен не только корпус, но и соответствующие климатические условия. Нам требовалась защита от пыли и влаги IP66, а также температурный режим эксплуатации от -40 до +50 градусов Цельсия.
Мы проверили две гипотезы для эффективного теплоотведения: теплотрубки и медные пластины в качестве теплосъемника. Последние оказались более эффективными, хотя при большой площади и более дорогостоящими решениями. В качестве теплообменника применяется все также алюминиевая шпала с расчётными размерами ребер.
Для запуска устройства в минусовых температурах мы использовали керамику для подогрева. Для удобства эксплуатации и внедрения в различных сферах были установлены блоки питания широкого диапазона 6-36 В.
Основное назначение полученного устройства: исполнение ресурсоемких нейронных сетей в непосредственной близости от источника данных. К подобным задачам относится подсчет пассажиропотока на транспорте (пассажиравтотранс, железнодорожные составы), а также централизованная обработка данных по детекции и распознаванию лиц в условиях промышленной эксплуатации.
Intel NUC в корпусе для наружной эксплуатации, IP66 с климатическим модулем
Для инференса, обычно, применяется три типа устройств: сервера в ДЦ, камеры с установленным в них ПО для детекции и распознавания объектов и микрокомпьютеры наружной установки (к которым камеры подключены, например, через коммутатор). Далее, с множества устройств (например, 2 сервера, 15 камер, 30 микрокомпьютеров) требуется агрегация и хранение данных (событий).
В наших решениях мы применяем следующую схема агрегации и хранения данных с использованием СХД:
Общая схема работы гибридного инференса
Во-первых, микрокомпьютеров в сервере предполагалось 8 штук. То есть тепловыделение пропорциональное энергопотреблению уже равно 25*8=200 Вт. И уже на этом этапе пассивному охлаждению можно сказать нет, но эксперимент был продолжен. В том числе, из соображений дальнейшей адаптации технологии под исполнение корпусов наружной эксплуатации. Разработка аппаратной части проходила параллельно с ОКР по использованию нужного программного обеспечения. Мы использовали комплекс по детекции и распознаванию номеров и марок/моделей транспортных средств компании ВИТ под названием EDGE. Как оказалось, при замере энергопотребления под 100% нагрузкой, Intel NUC8i5BEK потребляет 46 Вт вместо заявленных 25. При таком подходе энергопотребление и тепловыделение сервера уже становится 46*8=368 Вт. И это без учёта блоков питания и дополнительных компонентов.
В качестве теплосъемника мы использовали медные пластины после шлифовки и специальной гравировки. Далее, медная пластина отдавала тепло алюминиевому теплообменнику на верхней части сервера. Из-за ошибок в расчетах теплообменник занимал 2/3 верхней крышки и располагался с двух сторон параллельно 4 микрокомпьютерам по левой и правой граням сервера. В центральной области размещался блок питания 550 Вт сзади и маршрутизатор Mikrotik 1 Gbit спереди.
Этап проектирования сервера на базе 8 микрокомпьютеров
И результат, который получился:
NUC Server с пассивным охлаждением
Конечно, данная конструкция работала при средней нагрузке, но при 100% продолжала медленно нагреваться и отдавать значительную часть тепла в окружающую среду. Даже в рамках серверного шкафа с горячим и холодным коридором, конструкция неизбежно нагревала вышестоящего «соседа». Уменьшение числа микрокомпьютеров до 4 штук позволяло стабилизировать температуру нагрева и избегать тротлинга даже при 100% нагрузке, но проблема вышестоящего «соседа» оставалась.
Технологический стек решения разошелся по двум направлениям:
- Пассивное охлаждение Intel NUC8i5BEK в корпусе наружного применения
- Активное воздушное охлаждение в серверном корпусе форм-фактора 1U
Сервер 1U, в котором установлено 8 процессоров Core i5 и 8 GPU
Да, да, это много и да, это возможно. Как, спросите вы? Путем объединения множества микрокомпьютеров внутри корпуса 1U на сетевом уровне через маршрутизатор. Конкретно для исполнения нейронных сетей и обработки входящих RTSP-потоков данное решение является оптимальным. Помимо этого, оно позволяет строить масштабируемые системы на базе связки Docker, Docker Swarm и Ansible.
В процессе разработки нам пришлось спроектировать несколько различных версий:
Прототип будущего решения
От первоначальной идеи остались хорошо себя зарекомендовавшие медные теплосъемники и алюминиевые радиаторы, но теперь располагающиеся непосредственно на каждом вычислительном узле внутри корпуса. Далее, для снятия тепла использовались по 2 вентилятора, установленные спереди каждого вычислительного модуля, направляющие теплый воздух из холодного коридора в горячий (от лицевой части сервера). Для активного управления вентиляторами были разработаны специальные платы, которые изменяли их скорость исходя из показателей датчиков температуры на каждом микрокомпьютере. Роутер из-за отсутствия необходимости в PoE лишили активного охлаждения перевели на пассивное с тепловыделением не более 10 Вт. Блок питания на первой версии оставался 500 Вт, но устанавливался на специальные крепления с возможностью быстрой замены, но с отключением питания. Для отслеживания состояния вычислительных узлов, на передней панели была добавлена индикация из 8 диодов.
Прототип сервера NUC Server от ComBox Technology, 8 CPU Core i5 и 8 GPU Iris Plus 655 в форм-факторе 1U
Технические характеристики первой версии сервера на Intel NUC:
- Intel NUC8i5BEK (без корпуса с доработанной системой охлаждения), 8 шт.
- Модули памяти DDR4 SO-DIMM AMD Radeon R7 Performance, 8 Гб, 8 шт.
- Дополнительные модули памяти DDR4 SO-DIMM Kingston, 4 Гб, 8 шт.
- SSD M.2 накопитель WD Green, 240Gb, 8 шт.
- Корпус 1U (собственного производства)
- Маршрутизатор MikroTik RB4011iGS+RM (без корпуса с доработанной системой охлаждения), 1 шт.
- Соединительные провода (патч-корды), 11 шт.
- БП IBM 94Y8187, 550 Вт.
Как это выглядит в процессе работы:
Продакшн версия NUC Server
Продакшн версия претерпела значительные изменения. Вместо одного блока питания на сервере появилось 2 с возможностью их горячей замены. Мы использовали компактные серверные БП 600 Вт от Supermicro. Для вычислительных модулей появились специальные посадочные места и возможность их горячей замены без отключения питания всего сервера. Множество сетевых шлейфов было заменено на стационарные закреплённые и подведенные к посадочным местам шины. Для управления сервером добавлен микрокомпьютер Nano Pi ARM-архитектуры от FriendlyARM, для которого написано и установлено ПО для проверки и отслеживания состояния вычислительных узлов, информирования о неисправностях и аппаратного сброса конкретных вычислительных узлов через GPIO, в случае необходимости. Вентиляторы в продакшн версии устанавливаются за передней панелью по направлению от холодного коридора в сторону горячего, а ребра алюминиевого теплообменника теперь направлены вниз, а не вверх, что сделало доступным память и диски каждого вычислительного узла.
Корпус для наружной эксплуатации Intel NUC
Так как сами микрокомпьютеры не являются промышленными, то для наружной эксплуатации нужен не только корпус, но и соответствующие климатические условия. Нам требовалась защита от пыли и влаги IP66, а также температурный режим эксплуатации от -40 до +50 градусов Цельсия.
Мы проверили две гипотезы для эффективного теплоотведения: теплотрубки и медные пластины в качестве теплосъемника. Последние оказались более эффективными, хотя при большой площади и более дорогостоящими решениями. В качестве теплообменника применяется все также алюминиевая шпала с расчётными размерами ребер.
Для запуска устройства в минусовых температурах мы использовали керамику для подогрева. Для удобства эксплуатации и внедрения в различных сферах были установлены блоки питания широкого диапазона 6-36 В.
Основное назначение полученного устройства: исполнение ресурсоемких нейронных сетей в непосредственной близости от источника данных. К подобным задачам относится подсчет пассажиропотока на транспорте (пассажиравтотранс, железнодорожные составы), а также централизованная обработка данных по детекции и распознаванию лиц в условиях промышленной эксплуатации.
Intel NUC в корпусе для наружной эксплуатации, IP66 с климатическим модулем
Общая схема гибридного инференса
Для инференса, обычно, применяется три типа устройств: сервера в ДЦ, камеры с установленным в них ПО для детекции и распознавания объектов и микрокомпьютеры наружной установки (к которым камеры подключены, например, через коммутатор). Далее, с множества устройств (например, 2 сервера, 15 камер, 30 микрокомпьютеров) требуется агрегация и хранение данных (событий).
В наших решениях мы применяем следующую схема агрегации и хранения данных с использованием СХД:
Общая схема работы гибридного инференса