? Как выбрать видеокарту для нейронных сетей и глубокого обучения |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2021-12-11 11:21 1. Разница между ЦП и ГП
Центральный процессор (ЦП) не оптимизирован для одновременного выполнения большого количества простых операций. Для параллельных вычислений лучше подходит графический процессор (ГП):
2. Устройство ГП 2.1. CUDA Графический процессор состоит из набора независимых мультипроцессоров, которые включают в себя:
На одном ядре CUDA (архитектура параллельных вычислений от NVIDIA) выполняется одна нить, иначе – поток. Каждому потоку соответствует один элемент вычисляемых данных. Потоки образуют блоки, которые общаются между собой через:
При частоте 1 ГГц процессор делает 109 циклов в секунду. Операции занимают больше времени, чем один цикл, поэтому создается конвейер, где для начала новой операции необходимо дождаться окончания предыдущей. Мультипроцессор на каждом такте выполняет одну и ту же инструкцию над варпом (warp) – группой из 32 потоков. Потоки одного варпа принадлежат одному блоку и могут взаимодействовать только между собой. Каждому потоку и блоку присваивается идентификатор – трехмерный целочисленный вектор:
Блоки группируются в сетки блоков. Размеры блока и сетки блоков задаются переменными
Алгоритм работы технологии CUDA выглядит следующим образом.
2.2. Иерархия памяти Локальная память (local memory):
Разделяемая память (shared memory):
Глобальная память (global memory):
Константная память (constant memory):
Текстурная память (texture memory):
Примечание Подробнее о структуре CUDA читайте в нашей статье «Знакомство с программно-аппаратной архитектурой CUDA». 3. Как выбрать ГП Последовательность шагов при выборе ГП.
3.1. Когда достаточно менее 11 ГБ памяти Базовые навыки в глубоком обучении можно освоить, тренируясь на небольших задачах с малыми входными параметрами, поэтому достаточно RTX 3070 (8 ГБ, GDDR6) и RTX 3080 (10 ГБ, GDDR6X). Для прототипирования лучший выбор – RTX 3080.
3.2. Когда нужно больше 11 ГБ памяти Не менее 11 ГБ памяти нужно при работе с архитектурой Transformer, распознаванием медицинских изображений, компьютерным зрением и работой с большими изображениями. 3.3. Тензорные ядра Тензорные ядра быстрее CUDA-ядер, потому что им требуется меньше циклов для операций с матрицами. В чипах Ampere (линейка RTX 30) стало меньше тензорных ядер, но возросла их производительность.
3.4. Пропускная способность памяти Тензорные ядра быстрые и обычно простаивают до 70% времени, ожидая данные из глобальной памяти. Поэтому выбирайте ГП с максимальной пропускной способностью памяти. Еще нужна большая разделяемая память и кэш L1, чтобы сократить число обращений к внешней памяти и держать данные ближе к АЛУ. Сколько нужно памяти:
3.5. Система охлаждения В конструкции системы охлаждения Reference RTX 30 (NVIDIA) первый вентилятор расположен на верхней стороне видеокарты. Он выдувает воздух в пространство, где расположена оперативная память и процессор. Второй вентилятор выдувает воздух сразу из корпуса (Рис. 12).
Еще нет тестов, подтверждающих эффективность решения и необходимость замены штатной системы охлаждения. Установка нескольких ГП в одном корпусе может негативно сказаться на циркуляции потоков воздуха внутри корпуса и охлаждении видеокарт. 3.6. Электропитание Картам может не хватить мощности блока питания. Четыре карты RTX 3090 потребляют на пике 1400 Вт. Продаются блоки питания на 1600 Вт, но остальным комплектующим 200 Вт может быть недостаточно.
3.7. Рекомендации для кластеров Для кластеров важно надежное электропитание, доступное в дата-центрах, но по лицензионному соглашению карты RTX в них размещать запрещено. Для небольшой системы подойдет Supermicro 8 GPU.
Для кластера из 256+ ГП – NVIDIA DGX SuperPOD.
При 1024+ ГП – Google TPU Pod и NVIDIA DGX SuperPod.
3.8. Не покупайте эти карты Не покупайте более одной видеокарты RTX Founders Editions или RTX Titans, если нет PCIe-удлинителей для решения проблем с охлаждением.
Tesla V100 или A100 рентабельны только в кластерах. Карты серии GTX 16 имеют низкую производительность, так как из них убрали тензорные ядра. Аналоги GTX 16: б/у RTX 2070, RTX 2060 или RTX 2060 Super.
При наличии RTX 2080 Ti и выше, обновление до RTX 3090 невыгодно. Прирост производительности мал, а риск получить проблемы с питанием и охлаждением в картах RTX 30 высокий. Апгрейд оправдан, если для задач требуется больше памяти. 3.9. Нужен ли PCI 4.0? Для бюджетной домашней сборки PCI 4.0 не нужен. PCI 4.0 позволит лучше распараллелить и ускорить передачу данных на 1-7% в сравнении с PCIe 3.0 при использовании более четырех ГП. При работе с большими файлами «узким местом» может оказаться SSD-диск, но не передача данных с ГП на ЦП. 3.10. Необходимы только 8x/16x PCIe-слоты? Использовать исключительно 8x и 16x PCIe-слоты необязательно. Допускается работа двух ГП на слотах 4х. При установке четырех ГП предпочтение отдавайте слотам 8x на каждый ГП, так как производительность слота 4x ниже на 5-10%.
3.11. Можно ли использовать разные карты вместе? Да, можно! Но будет сложно эффективно распараллелить графические процессоры разных типов, т. к. быстрый ГП будет ждать, пока медленный ГП дойдет до точки синхронизации. 3.12. Что такое NVLink и полезно ли это? NVLink – высокоскоростное соединение между ГП. В небольших кластерах (< 128 ГП) он не даст преимущества по сравнению с передачей по PCIe.
3.13. Что делать, если не хватает денег на топовые ГП? Купить подержанные ГП, либо воспользоваться облачными сервисами. Бюджетные варианты (в порядке убывания цены и производительности):
3.14. Итог
Напоследок несколько сравнительных гистограмм характеристик различных GPU.
*** В этом руководстве мы рассмотрели устройство графического процессора и определили параметры, которые влияют на производительность в задачах глубокого обучения. Если запускаете расчет нейросеток время от времени, то апгрейд можно проводить через одно поколение графических процессоров. Источники
Больше полезной информации вы найдете на наших телеграм-каналах «Библиотека программиста» и «Книги для программистов». Интересно, перейти к каналу «Библиотека программиста» Источник: proglib.io Комментарии: |
|