HetCCL заставляет кластерные AI-акселераторы Nvidia и AMD эффективно работать друг с другом через «RDMA»

Hetccl Nvidia Amd ии Rdma гетерогенные вычисления

HetCCL — предлагаемая вычислительная библиотека, которая может заставить ускорители ИИ Nvidia и AMD работать вместе в одном кластере, объединяя оборудование обеих компаний через RDMA.

В любом дата-центре, будь то для ИИ или нет, быстрая сетевая связь между узлами так же важна, как и скорость самих узлов. При работе с ИИ разработчики ориентируются на проприетарные сетевые библиотеки, такие как NCCL от Nvidia или RCCL от AMD. Теперь в новой статье группа южнокорейских ученых представила новую библиотеку под названием HetCCL — независимый от поставщика подход, позволяющий кластерам, состоящим из GPU обоих производителей, работать как единое целое.

Хотя ее можно просто использовать для связи между несколькими GPU в одной установке, коллективные вычисления в дата-центре часто используют проверенный временем Remote Direct Memory Access (RDMA), чтобы приложения могли передавать данные на GPU, находящийся где-то еще в сети. Представьте себе отправку сетевых пакетов непосредственно в память устройства (в данном случае VRAM GPU), вместо того чтобы проходить через драйвер, стек TCP/IP, сетевой уровень ОС и сжигать тонны процессорного времени в процессе.

Авторы статьи утверждают, что HetCCL является первой в мире заменой «из коробки» для проприетарных CCL, одновременно решающей несколько задач: обеспечение кроссплатформенной связи и балансировки нагрузки. Главное достижение HetCCL заключается в том, что она делает развертывания с использованием нескольких поставщиков жизнеспособными, позволяя разработчикам использовать совокупную вычислительную мощность серверных стоек Nvidia и AMD для конкретной задачи.

Во-вторых, HetCCL позиционируется как прямая замена библиотек, требующая, по-видимому, лишь того, чтобы разработчики связали свое приложение с кодом HetCCL вместо CCL их поставщика. Лучшая аналогия здесь — замена DLL в игре для вставки эффектных фильтров постобработки. Таким образом, не должно потребоваться никаких изменений в исходном коде, от приложения до драйверов, — факт, которым команда HetCCL с гордостью делится.

В-третьих, она косвенно добавляет поддержку любых будущих новых поставщиков GPU, поскольку после связи с HetCCL код приложения не должен беспокоиться о том, действительно ли его вызовы передачи данных, скажем, к NCCL, в конечном итоге попадут на GPU Nvidia. И последнее, но определенно не менее важное: HetCCL достигает всего этого с минимальными накладными расходами, иногда даже превосходя оригинальный CCL благодаря лучшим параметрам настройки по умолчанию.

Чтобы проиллюстрировать это, ученые провели тесты на четырехузловом кластере с 2×4 GPU Nvidia и 2×4 GPU AMD. Следует отметить, что результаты не предназначены для кросс-вендорных бенчмарков, а скорее для демонстрации потенциала HetCCL при ограниченных тестовых ресурсах. В конце концов, система Nvidia имела GPU с PCI 3.0, в то время как системы AMD имели блоки PCIe 4.0; все это уже устаревшее оборудование.

Во многих случаях результаты достигают своих теоретических максимумов, бездумно суммируя вычислительную мощность Nvidia и AMD, что является впечатляющим достижением, хотя, естественно, это может сильно варьироваться в зависимости от конфигураций и рабочих нагрузок. При правильных условиях HetCCL может привести к снижению затрат на обучение моделей, поскольку эффективное одновременное использование GPU Nvidia и AMD означает, что задачи больше не нужно разделять между кластерами и в конечном итоге ждать друг друга. Также возможна экономия человеко-часов при управлении этими задачами.

Основные недостатки, вероятно, заключаются в том, что трудно представить себе развертывание кросс-вендорного ИИ-дата-центра, учитывая, что выбор поставщика GPU также подразумевает выбор экосистемы программного обеспечения, а на данный момент предложения Nvidia являются стандартом. Кроме того, системные администраторы по своей природе консервативны и предпочитают придерживаться одного поставщика для простоты обслуживания и поддержки.

Другое замечание заключается в том, что абстрагирование сетевого уровня — это только один шаг. Обучение моделей и практически любая задача, связанная с ИИ, выполняемая на уровне дата-центра, включает в себя множество специфичного для GPU кода и оптимизаций настройки. Это ограничение все равно будет существовать, независимо от того, насколько удобно кроссплатформенным будет сетевой уровень.

С учетом всего вышесказанного, вся суть HetCCL заключается в том, чтобы показать, что устранение основного препятствия для внедрения гетерогенных конфигураций возможно, и другие могут последовать ее примеру.

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

В тренде:


Похожие новости: