Машинное обучение позволяет компьютерам извлекать данные, находить закономерности и принимать решения на их основе в различных отраслях. Например, в медицине его используют для анализа рентгеновских снимков и МРТ. Автономные транспортные средства с их помощью строят маршруты, а в финансисты прогнозируют рыночные тенденции.

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

В этом материале мы рассказали, на какие параметры графических ускорителей стоит обращать внимание, если планируете работать с машинным обучением.

Объем памяти графического процессора

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

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

Оптимальный объем памяти зависит от конкретных задач машинного обучения. Для стандартных задач машинного обучения, таких как классификация изображений или обработка текста, 8-16 Гб памяти может быть достаточно. Для более сложных, таких как обучение глубоких нейронных сетей на больших наборах данных, рекомендуется выбирать GPU с памятью от 40 Гб. В задачах, где требуется обучение больших моделей в Transformer или в сверточных нейронных сетях, лучше выбирать GPU c память 80 Гб.

Наличие тензорных ядер

Тензорные ядра — это специализированные аппаратные компоненты, которые присутствуют в современных GPU от NVIDIA, таких как архитектуры Volta и Ampere. Эти ядра разработаны для ускорения операций с матрицами и тензорами. Как раз их активно используют для алгоритмов машинного обучения.

Тензорные ядра существенно ускоряют процесс обучения глубоких моделей. Они отлично справляются с выполнением вычислений смешанной точности в масштабных задачах машинного обучения. За счет этого организации могут экономить время штатных разработчиков и вычислительные ресурсы.

Необходимое количество тензорных ядер в GPU зависит от конкретных задач машинного обучения и масштабов проектов.

  • Небольшие задачи. Для небольших задач и базовых рабочих нагрузок глубокого обучения подойдут GPU с 16 или 32 тензорными ядрами.

  • Задачи среднего масштаба. Для средних проектов и моделей GPU с 64 до 128 тензорными ядрами могут обеспечить хороший баланс между стоимостью и производительностью.

  • Крупномасштабные и исследовательские проекты. Для масштабных задач машинного обучения, исследований глубокого обучения или обучения современных моделей подойдут GPU с 256 и более тензорными ядрами.

Пропускная способность памяти

Пропускная способность видеопамяти определяет скорость, с которой GPU может читать и записывать данные. Чем выше пропускная способность, тем быстрее GPU может получать доступ, что критически важно для многих задач машинного обучения.

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

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

Для большинства стандартных задач машинного обучения, таких как классификация изображений или анализ текста, подойдут GPU с пропускной способностью от 300 до 500 ГБ/с. Для более интенсивных задач, таких как обучение глубоких нейронных сетей на больших объемах данных или работа с медиаданными высокого качества, лучше выбирать GPU с пропускной способностью выше 1 ТБ/с.

Вычислительная мощность

Машинное обучение часто требует одновременного выполнения большого числа математических операций. GPU как раз спроектированы для параллельных вычислений, и вычислительную мощность видеокарты можно определить с помощью количества ядер CUDA (NVIDIA) или процессоров на ней (AMD). Чем больше ядер, тем больше операций можно выполнить параллельно.

Также скорость обучения моделей машинного обучения тоже напрямую зависит от вычислительной мощности GPU. Мощные GPU способны обрабатывать данные быстрее и выполнять больше вычислений за то же время. Вычислительная мощность также влияет на размер пакета обработки данных (batch size), а также большое количество ядер CUDA необходимо при работе с большими и сложными моделями машинного обучения.

Оптимальная вычислительная мощность зависит от требований проекта. Например, для классификации изображений или анализа текста подойдут GPU с 500-1000 ядрами CUDA. Однако для более сложных и вычислительно интенсивных задач, таких как обучение глубоких нейронных сетей, рекомендуется выбирать GPU с более высокой вычислительной мощностью и большим количеством ядер от 4000 штук.

Поддержка специализированных библиотек и фреймворков

Аппаратная совместимость со специализированными библиотеками, такими как CUDA или ROCm от AMD, позволяют программистам ускорить моделирование и тренировочные процессы машинного обучения.

Библиотеки поддерживают популярные фреймворки, такие как TensorFlow, PyTorch и MXNet. Это позволяет использовать GPU для обучения и выполнения прогнозирования с моделями, созданными с использованием этих фреймворков. У некоторых GPU есть аппаратные оптимизации, разработанные для ускорения определенных операций машинного обучения, таких как свертки в нейронных сетях. 

Работа с библиотеками обеспечивает высокую совместимость между GPU и программными решениями в области машинного обучения. Также библиотеки помогают оптимизировать использование аппаратных ресурсов, таких как ядра CUDA и память GPU. Это позволяет добиться наилучшей производительности и эффективности при обучении моделей машинного обучения.

Кроме фреймворков и библиотек, существуют популярные инструменты машинного обучения, такие как scikit-learn, XGBoost, и Jupyter Notebook, которые предоставляют множество готовых решений и упрощают разработку и проведение экспериментов.

Оптимальный вариант GPU для машинного обучения

Чаще всего для машинного обучения бизнес выбирает графические ускорители от вендоров AMD и NVIDIA. Такие модели, как NVIDIA A100, Tesla V100, предоставляют высокую производительность и гибкость для вычислений в сфере машинного обучения, ИИ и анализа данных.

Единственный минус таких GPU — это высокая стоимость. Например, NVIDIA A100 можно приобрести за 800 тысяч рублей — 1 миллион рублей. Помимо затрат на покупку графических ускорителей, компаниям необходимо тратить свои бюджеты и ресурсы на их администрирование, обслуживание и ремонт. 

Существует альтернативный вариант — арендовать облачный сервис с GPU у провайдера. Так компании могут сэкономить, перейти от капитальных затрат к операционным и освободить время своих сотрудников для более приоритетных проектов.

AI Cloud от ITGLOBAL.COM

ITGLOBAL.COM предоставляет заказчикам сервис AI Cloud — это разновидность публичного облака на базе VMware, где ВМ работают с графическими видеокартами NVIDIA A800. По характеристикам модель идентична NVIDIA A100.

NVIDIA A800 имеет 80 Гб видеопамяти, пропускную способность 2 Тб/с, тензорные ядра, ядра CUDA в количестве 6912 штук и поддерживает специализированные библиотеки. Для клиентов доступно несколько конфигураций vGPU на ВМ: 1vGPU 10GB RAM, 2 vGPU 20GB RAM, 3 vGPU 40GB RAM, 4 vGPU 40GB RAM, 7 vGPU 80GB RAM.

В конце июля директор по развитию сервисов Алина Жигалова и заместитель исполнительного директора по техническому развитию Илья Борняков провели вебинар, где подробно рассказали, как построен сервис AI Cloud от ITGLOBAL.COM.

Комментарии (12)


  1. Rezzet
    24.10.2023 11:22
    +3

    Как выбрать... если домой, у вас есть один вариант - 4090, на А100 и прочие денег не хватит, ценник стартует от 800 тр, стартует(!). В то же время бессмысленно пытаться что-то сделать на 16Гб, ну что-то получится но перф и модели будут маленькие, 4090 - это входной билет по памяти и перфу, цена в 200 тр еще хоть как-то подъемная что бы купить.


    1. atd
      24.10.2023 11:22

      ещё можно попытаться A6000 найти, но это только если надо в небольшой корпус впихнуть (2u например), для остального 4090 безальтернативна, увы :(

      p.s.: v100 — старая рухлядь, стоит брать только если по цене цветмета


  1. basilbasilbasil
    24.10.2023 11:22

    2x3090 + NVLINK


    1. Rezzet
      24.10.2023 11:22

      А stable diffusion умеет их подхватывать обе или надо как-то с бубном танцевать?


      1. basilbasilbasil
        24.10.2023 11:22

        На 11 куде должно


    1. wesker_96
      24.10.2023 11:22
      +1

      Добрый. Расскажите, пожалуйста, по подробнее о вашем решении, слабо понимаю в этой теме. Вы используете gpu в обучении нейронок, вычислениях, что с производительностью? Какой блок питания, на сколько ватт?


  1. vp7
    24.10.2023 11:22
    +6

    Великолепная статья, просто восхитительная!

    Статья в одно предложение для тех, кому лень читать: "Q: Как выбрать GPU? A: Никак, но вы можете арендовать его у нас" ;))


  1. ivanstor
    24.10.2023 11:22
    +4

    Море воды, вылитой ради после абзаца. Хотя бы табличку удосужились сделать, с моделями GPU и из возможностями и то хоть что-то.


  1. zizop
    24.10.2023 11:22

    Подскажите пожалуйста, как можно цены узнать? Тут нет, на вашем сайте тоже.


  1. snakers4
    24.10.2023 11:22

    Очень некачественная реклама. Посмотрите как Selectel пишет рекламу. Посмотрите мои статьи про карточки.


  1. fedurin92
    24.10.2023 11:22

    Да и просто анализ данных очень быстрый на куда ядрах, я, например, недавно пробовал с помощью библиотеки cudf (аналог pandas) на своей 3080ti 12gb сделать csv_read и concat 3 csvишки размером 65 млн строк, %%time показал 9 сек, если это делать просто на мощностях цпу, то родное ядро умирает (у меня 16gb озу)


  1. iamoblomov
    24.10.2023 11:22

    а где народный вариант 48гб через 2x3090? а то все теслы за миллион и тарифы облачных провов...