Глубокое обучение с графическими процессорами
Максимальное использование графических процессоров для вашего проекта глубокого обучения
Графические процессоры (GPU), изначально разработанные для ускорения обработки графики, могут значительно ускорить вычислительные процессы для глубокого обучения. Они являются неотъемлемой частью современной инфраструктуры искусственного интеллекта, и новые графические процессоры были разработаны и оптимизированы специально для глубокого обучения.
Читайте дальше, чтобы понять преимущества графических процессоров для проектов глубокого обучения, разницу между графическими процессорами потребительского уровня, графическими процессорами центров обработки данных и серверами графических процессоров, а также узнать о нескольких способах оценки производительности вашего графического процессора.
Это часть обширной серии руководств по технологии искусственного интеллекта.
В этой статье вы узнаете:
- Принципы вычислений на GPU
- Преимущества использования графических процессоров для глубокого обучения
- Варианты технологии GPU для глубокого обучения
- Основные показатели производительности GPU для глубокого обучения
Принципы вычислений на GPU
Графические процессоры (GPU) — это специализированные вычислительные ядра, которые можно использовать для ускорения вычислительных процессов. Эти ядра изначально были предназначены для обработки изображений и визуальных данных. Однако в настоящее время графические процессоры используются для улучшения других вычислительных процессов, таких как глубокое обучение. Это связано с тем, что графические процессоры можно эффективно использовать параллельно для массовых распределенных вычислительных процессов.
Режимы параллелизма
Основным преимуществом графических процессоров является параллелизм или одновременная обработка частей целого. Для реализации параллельной обработки используются четыре архитектуры, в том числе:
- Одна инструкция, одни данные (SISD)
- Одна инструкция, несколько данных (SIMD)
- Несколько инструкций, одни данные (MISD)
- Несколько инструкций, несколько данных (MIMD)
Большинство ЦП являются многоядерными процессорами, работающими с архитектурой MIMD. Напротив, графические процессоры используют архитектуру SIMD. Это различие делает графические процессоры подходящими для процессов глубокого обучения, которые требуют выполнения одного и того же процесса для множества элементов данных.
Программирование графического процессора общего назначения
Что касается первоначальной цели графических процессоров, эти процессоры ранее требовали от пользователей понимания специализированных языков, таких как OpenGL. Эти языки использовались только для графических процессоров, что делало их непрактичными для изучения и создавало барьер для использования.
В 2007 году с запуском фреймворка NVIDIA CUDA этот барьер был преодолен, что обеспечило более широкий доступ к ресурсам графического процессора. CUDA основан на C и предоставляет API, который разработчики могут использовать для применения обработки графического процессора к задачам машинного обучения.
Как современные фреймворки глубокого обучения используют графические процессоры
После того, как NVIDIA представила CUDA, было разработано несколько сред глубокого обучения, таких как Pytorch и TensorFlow. Эти фреймворки абстрагируются от сложностей программирования непосредственно с помощью CUDA и сделали обработку GPU доступной для современных реализаций глубокого обучения.
Узнайте, как использовать графические процессоры в популярных фреймворках глубокого обучения, в наших руководствах по графическим процессорам PyTorch и графическим процессорам TensorFlow.
Зачем использовать графические процессоры для глубокого обучения?
Графические процессоры могут выполнять несколько одновременных вычислений. Это позволяет распределять процессы обучения и может значительно ускорить операции машинного обучения. С графическими процессорами вы можете аккумулировать много ядер, которые используют меньше ресурсов, не жертвуя при этом эффективностью или мощностью.
При разработке архитектуры глубокого обучения ваше решение о включении графических процессоров зависит от нескольких факторов:
- Пропускная способность памяти — в том числе графические процессоры могут обеспечить пропускную способность, необходимую для размещения больших наборов данных. Это связано с тем, что графические процессоры включают в себя выделенную видеопамять (VRAM), что позволяет вам сохранять память ЦП для других задач.
- Размер набора данных— Параллельные графические процессоры легче масштабируются, чем центральные, что позволяет быстрее обрабатывать большие наборы данных. Чем больше ваши наборы данных, тем большую выгоду вы можете получить от графических процессоров.
- Оптимизация— недостатком графических процессоров является то, что оптимизация длительных отдельных задач иногда сложнее, чем с центральными процессорами.
Варианты технологии GPU для глубокого обучения
При включении графических процессоров в ваши реализации глубокого обучения существует множество вариантов, хотя NVIDIA доминирует на рынке. В рамках этих вариантов вы можете выбирать между графическими процессорами потребительского уровня, графическими процессорами для центров обработки данных и управляемыми рабочими станциями.
Графические процессоры потребительского уровня
Потребительские графические процессоры не подходят для крупномасштабных проектов глубокого обучения, но могут стать отправной точкой для реализации. Эти графические процессоры позволяют дешево дополнять существующие системы и могут быть полезны для построения моделей или низкоуровневого тестирования.
- NVIDIA Титан V— в зависимости от выпуска этот графический процессор обеспечивает от 12 ГБ до 32 ГБ памяти и производительность от 110 до 125 терафлопс. Он включает тензорные ядра и использует технологию NVIDIA Volta.
- NVIDIA Титан RTX— обеспечивает 24 ГБ памяти и производительность 130 терафлопс. Он включает в себя технологии Tensor и RT Core и основан на архитектуре NVIDIA Turing GPU.
- NVIDIA GeForce RTX 2080 Ti— обеспечивает 11Gb памяти и производительность 120 терафлопс.Он предназначен для любителей игр, а не для профессионального использования, и также основан на архитектуре графического процессора NVIDIA Turing.
Графические процессоры центров обработки данных
Графические процессоры центров обработки данных являются стандартом для производственных реализаций глубокого обучения. Эти графические процессоры предназначены для крупномасштабных проектов и могут обеспечить производительность корпоративного уровня.
- NVIDIA A100 — обеспечивает 40 ГБ памяти и производительность 624 терафлопс. Он предназначен для высокопроизводительных вычислений, анализа данных и машинного обучения и включает технологию многоэкземплярного графического процессора (MIG) для масштабного масштабирования.
- NVIDIA v100— обеспечивает до 32 Гб памяти и 149 терафлопс производительности. Он основан на технологии NVIDIA Volta и предназначен для высокопроизводительных вычислений (HPC), машинного обучения и глубокого обучения.
- NVIDIA Тесла P100— обеспечивает 16 ГБ памяти и производительность 21 терафлопс. Он предназначен для высокопроизводительных вычислений и машинного обучения и основан на архитектуре Pascal.
- NVIDIA Тесла K80— обеспечивает до 24 ГБ памяти и производительность 8,73 терафлопс. Он предназначен для анализа данных и научных вычислений и основан на архитектуре Kepler.
- Блоки обработки тензоров Google (TPU)— хотя Google TPU не являются графическими процессорами, они представляют собой альтернативу графическим процессорам NVIDIA, которые обычно используются для рабочих нагрузок глубокого обучения. TPU — это облачные или чиповые специализированные интегральные схемы (ASIC), предназначенные для рабочих нагрузок глубокого обучения. TPU были разработаны специально для Google Cloud Platform и для использования с TensorFlow. Каждый из них обеспечивает 128 ГБ памяти и производительность 420 терафлопс.
DGX-серверы
Серверы NVIDIA DGX — это решения корпоративного уровня с полным стеком. Эти системы разработаны специально для машинного обучения и операций глубокого обучения. Системы работают по принципу plug-n-play, и их можно развертывать на «голых» серверах или в контейнерах.
- ДГХ-1—предоставляет два ЦП Intel Xeon и до восьми тензорных ядер V100, каждое с 32 ГБ памяти. Он основан на ОС Ubuntu Linux Host.DGX-1 включает в себя набор инструментов CUDA, SDK NVIDIA для глубокого обучения, утилиту Docker Engine и учебное приложение для глубокого обучения DIGITS.
- ДГХ-2— предоставляет два ЦП Xeon Platinum и 16 графических процессоров V100 с тензорными ядрами, каждый с 32 ГБ памяти. Он обеспечивает значительную масштабируемость и параллелизм и основан на сетевой структуре NVSwitch для обучения в 195 раз быстрее, чем DGX-1.
- ДГХ А100— два 64-ядерных процессора AMD и восемь графических процессоров A100, каждый с памятью по 320 ГБ, что обеспечивает производительность в пять петафлопс. Он предназначен для обучения машинному обучению, логических выводов и аналитики и полностью оптимизирован для CUDA-X. Вы можете объединить несколько блоков DGX A100 для создания суперкластера.
Узнайте больше в нашем руководстве по графическим процессорам NVIDIA для глубокого обучения, в котором объясняется, как выбрать правильный графический процессор для ваших проектов глубокого обучения.
Основные метрики для оценки производительности GPU с глубоким обучением
Графические процессоры — это дорогостоящие ресурсы, которые необходимо оптимизировать для обеспечения устойчивой рентабельности инвестиций. Однако многие проекты глубокого обучения используют только 10-30% своих ресурсов графического процессора, часто из-за неэффективного распределения. Чтобы убедиться, что вы используете свои инвестиции в GPU эффективно, вы должны отслеживать и применять следующие показатели.
Использование графического процессора
Показатели использования графического процессора измеряют процент времени, в течение которого работают ваши ядра графического процессора (т. е. использование вашего графического процессора). Вы можете использовать эти метрики для определения требований к мощности графического процессора и выявления узких мест в конвейерах. Вы можете получить доступ к этому показателю через интерфейс управления системой NVIDIA (NVIDIA-smi).
Если вы обнаружите, что недостаточно используете ресурсы, возможно, вы сможете более эффективно распределять процессы. Напротив, максимальное использование означает, что вы можете извлечь выгоду из добавления графических процессоров к своим операциям.
Доступ к памяти графического процессора и ее использование
Доступ к памяти графического процессора и показатели использования измеряют процент времени, в течение которого используется контроллер памяти графического процессора. Сюда входят как операции чтения, так и записи.Вы можете использовать эти показатели, чтобы оптимизировать размер пакета для обучения и оценить эффективность вашей программы глубокого обучения. Вы можете получить доступ к полному списку показателей памяти через NVIDIA-smi.
Энергопотребление и температура
Показатели энергопотребления и температуры позволяют измерять интенсивность работы вашей системы, а также прогнозировать и контролировать энергопотребление. Эти показатели обычно измеряются на блоке питания и включают ресурсы, используемые вычислительными блоками и блоками памяти, а также элементы охлаждения. Эти метрики важны, поскольку чрезмерные температуры могут привести к перегреву, замедляющему вычислительные процессы, или к повреждению оборудования.
Время решения
Время до решения — это целостный показатель, который позволяет вам определить желаемый уровень точности и посмотреть, сколько времени вам потребуется, чтобы обучить модель для достижения этого уровня точности. Это время обучения будет разным для разных графических процессоров, в зависимости от используемой модели, стратегии распространения и набора данных. Выбрав настройку графического процессора, вы можете использовать измерение времени до решения для настройки размеров пакетов или использовать оптимизацию со смешанной точностью для повышения производительности.
Эффективное управление GPU для глубокого обучения с помощью Run:AI
Run:AI автоматизирует управление ресурсами и оркестровку рабочих нагрузок для инфраструктуры машинного обучения. С помощью Run:AI вы можете автоматически запускать столько экспериментов с интенсивными вычислениями, сколько необходимо.
Вот некоторые возможности, которые вы получаете при использовании Run:AI:
- Расширенная видимость— создать эффективный конвейер совместного использования ресурсов путем объединения вычислительных ресурсов графического процессора.
- Больше никаких узких мест— вы можете установить гарантированные квоты ресурсов GPU, чтобы избежать узких мест и оптимизировать биллинг.
- Более высокий уровень контроля—Run:AI позволяет динамически изменять распределение ресурсов, гарантируя, что каждое задание получит необходимые ресурсы в любой момент времени.
Run:AI ускоряет глубокое обучение на графическом процессоре, помогая специалистам по данным оптимизировать дорогостоящие вычислительные ресурсы и повышать качество своих моделей.
Узнайте больше о GPU для глубокого обучения
Еще многое предстоит узнать о графических процессорах для глубокого обучения. Чтобы продолжить исследование, ознакомьтесь с остальными нашими руководствами по этой теме.
Лучший графический процессор для глубокого обучения
Графические процессоры могут сэкономить время и деньги при реализации инфраструктуры глубокого обучения. Узнайте, как оценить графические процессоры, чтобы определить, какой из них лучше всего подходит для вашей модели глубокого обучения. Откройте для себя типы графических процессоров глубокого обучения для потребителей и центров обработки данных.
Графический процессор PyTorch: работа с CUDA в PyTorch
Начните работу с PyTorch для графических процессоров — узнайте, как PyTorch поддерживает стандарт NVIDIA CUDA, и получите краткие технические инструкции по использованию PyTorch с CUDA.
Графический процессор NVIDIA с глубоким обучением
Узнайте, что такое SDK NVIDIA для глубокого обучения, какие графические процессоры NVIDIA лучше всего подходят для глубокого обучения и какие рекомендации следует применять при использовании графических процессоров NVIDIA.
ПЛИС для глубокого обучения
Чипы программируемой пользователем вентильной матрицы (FPGA) позволяют перепрограммировать логические вентили. FPGA для реализации глубокого обучения предоставляет возможности для оптимизации пропускной способности и адаптации ресурсов графического процессора в соответствии с потребностями архитектуры. В этой статье объясняется разница между FPGA и GPU, а также способы использования FPGA для глубокого обучения. Включая плюсы и минусы технологии FPGA.
Графический процессор TensorFlow: настройка, основные операции и использование нескольких графических процессоров
TensorFlow — это популярная платформа машинного обучения с открытым исходным кодом от Google. Его можно использовать для выполнения математических операций на процессорах, графических процессорах и собственных процессорах Google Tensorflow (TPU). Графические процессоры обычно используются для обучения и вывода моделей глубокого обучения.
Узнайте, как TensorFlow работает с графическими процессорами, выполняя основные операции, такие как размещение и область действия устройств, а также как запускать свои модели на нескольких графических процессорах.
Keras GPU: использование Keras на одном GPU, Multi-GPU и TPU
Графические процессоры обычно используются для глубокого обучения, чтобы ускорить обучение и логические выводы для моделей с интенсивными вычислениями. Keras — это API глубокого обучения на основе Python, который работает поверх платформы машинного обучения TensorFlow и полностью поддерживает графические процессоры.
Научитесь создавать и обучать модели на одном или нескольких графических процессорах (GPU) или процессорах TensorFlow (TPU) с помощью Keras и TensorFlow.
8 лучших рабочих станций для глубокого обучения: локально и в облаке
Рабочая станция глубокого обучения (DL) — это выделенный компьютер или сервер, поддерживающий ресурсоемкие рабочие нагрузки искусственного интеллекта и глубокого обучения. Он предлагает значительно более высокую производительность по сравнению с традиционными рабочими станциями за счет использования нескольких графических процессоров (GPU).
Откройте для себя лучшие варианты рабочих станций для глубокого обучения от таких поставщиков, как NVIDIA, Lenovo, Amazon Web Services и Google Cloud.
Ознакомьтесь с нашими дополнительными руководствами по ключевым темам инфраструктуры искусственного интеллекта
Мы разработали подробные руководства по нескольким другим темам инфраструктуры искусственного интеллекта, которые также могут быть полезны при изучении мира графических процессоров для глубокого обучения.
млн операций в секунду
В сегодняшней высококонкурентной экономике предприятия обращаются к искусственному интеллекту в целом и машинному и глубокому обучению в частности, чтобы преобразовать большие данные в полезную информацию, которая может помочь им лучше обращаться к своей целевой аудитории, улучшать свои процессы принятия решений и оптимизировать свои цепочки поставок. и производственные процессы, и это лишь некоторые из множества возможных вариантов использования. Однако, чтобы оставаться на шаг впереди и в полной мере использовать ML, компании должны стратегически использовать MLOps.
См. популярные статьи в нашем руководстве по MLOps:
- Машинное обучение Ops: что это такое и зачем оно нам нужно
- Автоматизация машинного обучения: ускорение конвейера обработки данных
- Рабочий процесс машинного обучения: оптимизация конвейера машинного обучения
Ознакомьтесь с нашими дополнительными руководствами по ключевым темам технологий искусственного интеллекта
Вместе с нашими партнерами по контенту мы создали подробные руководства по нескольким другим темам, которые также могут быть полезны при изучении мира технологий искусственного интеллекта.
Глубокое обучение для компьютерного зрения
- TensorFlow CNN: создание вашей первой CNN с помощью Tensorflow
- PyTorch ResNet: основы и краткое руководство
- Понимание глубоких сверточных нейронных сетей
CUDA NVIDIA
- Программирование CUDA: углубленный взгляд
- CUDA против OpenCL
- NVIDIA cuDNN: тонкая настройка производительности графического процессора для нейронных сетей
Инженер по машинному обучению
- Инфраструктура машинного обучения: компоненты эффективных конвейеров
- Автоматизация машинного обучения: ускорение конвейера обработки данных
- Рабочий процесс машинного обучения: оптимизация конвейера машинного обучения
млн операций в секунду
- Apache Airflow: варианты использования, архитектура и рекомендации
- Edge AI: преимущества, варианты использования и модели развертывания
- JupyterHub: практическое руководство
Мульти GPU
- Keras Multi GPU: Практическое руководство
- PyTorch Multi GPU: объяснение четырех методов
- Tensorflow с несколькими графическими процессорами: 5