Цепочка так же сильна, как и ее самое слабое звено, а ваша инфраструктура AI/ML работает настолько же быстро, насколько быстро ваш самый медленный компонент. Если вы обучаете модели машинного обучения с помощью графических процессоров, то вашим слабым звеном может стать решение для хранения данных. Результатом является то, что я называю «проблемой голодающего графического процессора». Проблема голодания графического процессора возникает, когда ваша сеть или ваше решение для хранения данных не могут достаточно быстро передавать обучающие данные в вашу логику обучения, чтобы полностью использовать ваши графические процессоры. Симптомы довольно очевидны. Если вы следите за своими графическими процессорами, вы заметите, что они никогда не приближаются к полной загрузке. Если вы инструментировали свой обучающий код, то вы заметите, что в общем времени обучения преобладает ввод-вывод.
К сожалению, есть плохие новости для тех, кто борется с этой проблемой. Давайте посмотрим на некоторые достижения в области графических процессоров, чтобы понять, что в ближайшие годы эта проблема будет только усугубляться.
Графические процессоры становятся быстрее. Не только улучшается производительность, но также увеличиваются объем памяти и пропускная способность. Давайте посмотрим на эти три характеристики новейших графических процессоров Nvidia.
графический процессор | ПРОИЗВОДИТЕЛЬНОСТЬ | ОБЪЕМ ПАМЯТИ | ПРОПУСКНАЯ СПОСОБНОСТЬ ПАМЯТИ |
---|---|---|---|
А100 | 624 терафлопс | 40 ГБ | 1555 ГБ/с |
Н100 | 1979 терафлопс | 80 ГБ | 3,35 ТБ/с |
Н200 | 1979 терафлопс | 141 ГБ | 4,8 ТБ/с |
В приведенной выше таблице используются статистические данные, соответствующие данным разъема PCIe (Peripheral Component Interconnect Express) для A100 и разъему SXM (серверный модуль PCI Express) для H100 и H200. Статистики SXM для A100 не существует. Что касается производительности, для сравнения используется статистика Tensor Core с плавающей запятой 16.
Стоит привести несколько замечаний по поводу приведенной выше статистики. Во-первых, H100 и H200 имеют одинаковую производительность (1979 терафлопс), что в 3,17 раза выше, чем у A100. У H100 в два раза больше памяти, чем у A100, и пропускная способность памяти увеличена на такую же величину — что имеет смысл, иначе графический процессор будет голодать. H200 может обрабатывать колоссальные 141 ГБ памяти, а пропускная способность его памяти также увеличена пропорционально по сравнению с другими графическими процессорами.
Давайте рассмотрим каждую из этих статистических данных более подробно и обсудим, что она означает для машинного обучения.
Производительность . Терафлоп (TFLOP) равен одному триллиону (10^12) операций с плавающей запятой в секунду. Это 1 с 12 нулями после нее (1 000 000 000 000). Трудно приравнять TFLOP к требованию ввода-вывода в гигабайтах, поскольку операции с плавающей запятой, которые происходят во время обучения модели, включают в себя простую тензорную математику, а также сначала вычисляют функцию потерь (т.н. градиенты). Однако относительное сравнение возможно. Глядя на приведенную выше статистику, мы видим, что H100 и H200, которые оба работают с производительностью 1979 терафлопс, в 3 раза быстрее - потенциально потребляют данные в 3 раза быстрее, если все остальное будет соответствовать этому уровню.
Память графического процессора — также известна как видеопамять или графическая память. Память графического процессора отделена от основной памяти системы (ОЗУ) и специально разработана для выполнения интенсивных задач графической обработки, выполняемых видеокартой. Память графического процессора определяет размер пакета при обучении моделей. Раньше размер пакета уменьшался при переносе логики обучения с ЦП на ГП. Однако по мере того, как память графического процессора догоняет память процессора по емкости, размер пакета, используемого для обучения графического процессора, будет увеличиваться. Одновременное увеличение производительности и объема памяти приводит к увеличению количества запросов, при которых каждый гигабайт обучающих данных обрабатывается быстрее.
Пропускная способность памяти . Подумайте о пропускной способности памяти графического процессора как о «магистрали», соединяющей память и вычислительные ядра. Он определяет, какой объем данных может быть передан в единицу времени. Точно так же, как более широкое шоссе позволяет проехать большему количеству автомобилей за определенный промежуток времени, более высокая пропускная способность памяти позволяет перемещать больше данных между памятью и графическим процессором. Как видите, разработчики этих графических процессоров увеличили пропускную способность памяти для каждой новой версии пропорционально объему памяти; следовательно, внутренняя шина данных чипа не будет узким местом.
В августе 2023 года NVIDIA
Хотя все характеристики суперчипа Grace Hopper являются улучшением по сравнению с предыдущими чипами, наиболее важным нововведением для инженеров AI/ML является унифицированная память. Грейс Хоппер предоставляет графическому процессору полный доступ к памяти процессора. Это важно, поскольку в прошлом инженерам, желающим использовать графические процессоры для обучения, приходилось сначала извлекать данные в системную память, а затем оттуда перемещать их в память графического процессора. Grace Hopper устраняет необходимость использования памяти ЦП в качестве буфера возврата для передачи данных в графический процессор.
Простое сравнение нескольких ключевых статистических данных графического процессора, а также возможностей Грейс Хоппер должно быть немного пугающим для любого, кто отвечает за обновление графических процессоров и следит за тем, чтобы все остальное работало. Решение для хранения данных обязательно должно будет обслуживать данные с большей скоростью, чтобы идти в ногу с улучшениями графического процессора. Давайте посмотрим на общее решение проблемы голодного графического процессора.
Существует распространенное и очевидное решение этой проблемы, которое не требует от организаций замены или обновления существующего решения для хранения данных. Вы можете сохранить существующее решение хранения данных в неизменном виде и воспользоваться всеми преимуществами корпоративных функций, которые требуются вашей организации. Это решение для хранения данных, скорее всего, представляет собой озеро данных, в котором хранятся все неструктурированные данные вашей организации, поэтому оно может быть довольно большим, и необходимо учитывать общую стоимость владения. Он также имеет множество функций, обеспечивающих резервирование, надежность и безопасность, которые влияют на производительность.
Однако что можно сделать, так это настроить решение для хранения данных, которое находится в том же центре обработки данных, что и ваша вычислительная инфраструктура — в идеале, оно должно находиться в том же кластере, что и ваши вычисления. Убедитесь, что у вас высокоскоростная сеть с лучшими доступными устройствами хранения данных. Оттуда скопируйте только те данные, которые необходимы для обучения машинному обучению.
Amazon недавно объявила
Общее решение, которое я описал выше, требовало от AWS адаптации своего решения для хранения данных S3, предлагая специальные корзины по повышенной цене. Кроме того, некоторые организации (не являющиеся клиентами MinIO) покупают специализированные решения для хранения данных, которые выполняют описанные выше простые задачи. К сожалению, это усложняет существующую инфраструктуру, поскольку для решения относительно простой проблемы необходим новый продукт.
Ирония всего этого заключается в том, что у клиентов MinIO всегда была такая возможность. Вы можете сделать именно то, что я описал выше, с новой установкой MinIO в высокоскоростной сети с дисками NVMe. MinIO — это программно-определяемое решение для хранения данных: один и тот же продукт работает на «голом железе» или в выбранном вами кластере с использованием различных устройств хранения. Если ваше корпоративное озеро данных использует MinIO на «голом железе» с жесткими дисками и отлично работает со всеми вашими данными, не относящимися к ML, то нет причин его заменять. Однако если наборы данных, используемые для машинного обучения, требуют более быстрого ввода-вывода, поскольку вы используете графические процессоры, рассмотрите подход, который я изложил в этом посте. Обязательно сделайте копию своих данных ML для использования в высокоскоростном экземпляре MinIO — золотая копия всегда должна существовать в защищенной установке MinIO. Это позволит вам отключить такие функции, как репликация и шифрование, в вашем высокоскоростном экземпляре MinIO, что еще больше повысит производительность. Копировать данные легко с помощью MinIO.
MinIO способен обеспечить производительность, необходимую для питания ваших голодных графических процессоров.
Скачать
Также появляется здесь .