Как выбрать видеокарту для нейронных сетей и глубокого обучения


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

GPU для машинного обучения

Чтобы выполнять машинное обучение эффективно, важно учитывать количество ядер и размер памяти видеокарты. Так как глубокое обучение представляет собой множество линейных функций, много простых операций происходят одновременно, для него лучше подходят именно графические процессоры. Дело в том, что именно они предназначены для множества параллельных вычислений, в то время как центральные процессоры – для последовательных. В статье поговорим о том, как выбрать GPU для глубокого обучения.

Два ведущих производителя графических чипов: NVIDIA и AMD. Сейчас Intel тоже начинает выпускать на рынок свои карты, но пока они не дают высокую производительность.

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

Для глубокого обучения подойдёт часть карт архитектуры Kepler, модели архитектуры Maxwell и более новые карты.

Основные критерии при выборе

Прежде, чем искать и приобретать подходящую GPU, определитесь с областью применения. Будет ли это Kaggle, компьютерное зрение и т.п. Далее рассмотрим, на какие технические характеристики стоит обратить внимание при выборе видеокарт для глубокого обучения.

Объём памяти

Процесс перемещения данных из памяти и в память замедляет выполнение вычислений, в связи с этим количество встроенной памяти GPU является важным критерием. Чем больше значение памяти, тем предпочтительнее. Для разных задач требуются разные объёмы памяти.

Если перед вами стоит небольшая задача с малым количеством входных параметров, для соревнования в Kaggle достаточно будет менее 10-11 ГБ. Подойдут такие видеокарты, как RTX 3080 и RTX 3070.

Для предобученных моделей архитектуры Transformer (распознавание изображений, исследование компьютерного зрения и др.) потребуется более 11 ГБ. А для больших моделей в Transformer или в сверточных нейросетях – более 24 ГБ.

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

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

Чип видеокарты

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

Такие ядра ощутимо быстрее CUDA, так как на операции нужно меньше циклов. Видеокарты RTX могут выполнять вычисления c низкой точностью, данный режим позволяет обучать модели вдвое большего размера при том же объеме памяти.

Работа на нескольких видеокартах

Для повышения скорости обучения можно устанавливать несколько GPU. При обучении сверточных нейросетей можно получить ускорение в 1,9/2,8/3,5 раза, если использовать 2/3/4 GPU соответственно. Для рекуррентных сетей более важна длина последовательности. Для NLP ускорение будет примерно такое же, как для свёрточных, либо немного слабее.

Использование нескольких GPU также позволит одновременно запускать сразу несколько экспериментов на каждой видеокарте отдельно.


Полезный материал?
2
4
автор: Олег
опубликовано: 05.03.2022
Читайте нас: 
Последние статьи
Вверх!