Увеличьте глубокое обучение в параллели и в облаке

Глубокое обучение на нескольких графических процессорах

Нейронные сети являются по сути параллельными алгоритмами. Можно использовать в своих интересах этот параллелизм при помощи Parallel Computing Toolbox™, чтобы распределить обучение на многожильных центральных процессорах, графические блоки обработки (графические процессоры) и кластеры компьютеров с несколькими центральными процессорами и графических процессоров.

Обучение глубоких сетей чрезвычайно в вычислительном отношении интенсивно, и можно обычно ускорять обучение при помощи высокоэффективного графического процессора. Если у вас нет подходящего графического процессора, можно обучаться на одном или нескольких ядрах процессора или арендовать графические процессоры в облаке. Можно обучить сверточную нейронную сеть на одном графическом процессоре или центральном процессоре, или на нескольких графических процессорах или ядрах процессора, или параллельно на кластере. Используя графический процессор или любую параллельную опцию требует Parallel Computing Toolbox.

Совет

Поддержка графического процессора является автоматической. По умолчанию, trainNetwork функционируйте использует графический процессор при наличии.

Если вы имеете доступ к машине с помощью нескольких графических процессоров, просто задаете опцию обучения 'ExecutionEnvironment','multi-gpu'.

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

Глубокое обучение встроенная параллельная поддержка

Учебный ресурсНастройкиУзнать больше

Один графический процессор на локальной машине

Автоматический. По умолчанию, trainNetwork функционируйте использует графический процессор при наличии.

Среда выполнения

Создайте простую сеть глубокого обучения для классификации

Несколько графических процессоров на локальной машине

Задайте 'ExecutionEnvironment','multi-gpu' с trainingOptions функция.

Среда выполнения

Выберите Particular GPUs to Use for Training

Несколько ядер процессора на локальной машине

Задайте 'ExecutionEnvironment','parallel'.

С настройками по умолчанию, 'parallel' использует локальный кластерный профиль. Только используйте центральные процессоры, если у вас нет графического процессора, потому что центральные процессоры обычно намного медленнее, чем графические процессоры для обучения.

Среда выполнения

Кластер или в облаке

После установки кластера по умолчанию задайте 'ExecutionEnvironment','parallel' с trainingOptions функция.

Обучение выполняется на кластере и возвращает встроенный график прогресса в ваш локальный MATLAB®.

Обучите сеть в облаке Используя автоматическую параллельную поддержку

Обучите несколько глубоких сетей параллельно

Учебный сценарийРекомендацииУзнать больше
В интерактивном режиме на вашей локальной машине или в облакеИспользуйте a parfor цикл, чтобы обучить несколько сетей и результатов графика с помощью OutputFcn. Запуски локально по умолчанию, или выбирают различный кластерный профиль.Используйте parfor, чтобы Обучить Несколько Нейронных сетей для глубокого обучения
В фоновом режиме на вашей локальной машине или в облакеИспользование parfeval обучаться, не блокируя ваш локальный MATLAB и результаты графика с помощью OutputFcn. Запуски локально по умолчанию, или выбирают различный кластерный профиль.

Обучите нейронные сети для глубокого обучения параллельно

Используйте parfeval, чтобы Обучить Несколько Нейронных сетей для глубокого обучения

На кластере, и выключают вашу локальную машинуИспользуйте batch функция, чтобы отправить учебный код в кластер. Можно закрыть MATLAB и выбрать результаты позже.Отправьте пакетное задание глубокого обучения кластеризироваться

Глубокое обучение в облаке

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

Сконфигурируйте глубокое обучение в облакеПримечанияУзнать больше
Настройте учетные записи Amazon и MathWorks Cloud CenterОдноразовая настройка.Начало работы с центром облака
Создайте кластерИспользуйте Центр Облака, чтобы настроить и запустить кластеры в облаке Amazon. Для глубокого обучения выберите тип машины с помощью графических процессоров, таких как P2 или экземпляры G3.Создайте кластер облака
Загрузите данные на облакоЧтобы работать с данными в облаке, загрузите на Amazon S3. Используйте хранилища данных, чтобы получить доступ к данным в S3 от вашего настольного клиента MATLAB, или от ваших кластерных рабочих, не изменяя ваш код.Загрузите данные о глубоком обучении на облако

Усовершенствованная поддержка быстрого мультиузла коммуникация графического процессора

Если вы используете Linux, вычисляют кластер с быстрыми межсоединениями между машинами, такими как Infiniband, или быстро соединяет между графическими процессорами на различных машинах, таких как GPUDirect RDMA, вы можете смочь использовать в своих интересах быструю поддержку мультиузла в MATLAB. Включите эту поддержку на всех рабочих в вашем пуле путем установки переменной окружения PARALLEL_SERVER_FAST_MULTINODE_GPU_COMMUNICATION к 1. Установите эту переменную окружения в Кластерном менеджере по Профилю.

Этой функцией является часть библиотеки NVIDIA NCCL для коммуникации графического процессора. Чтобы сконфигурировать его, необходимо установить переменные новой среды задавать протокол сетевого интерфейса, особенно NCCL_SOCKET_IFNAME. Для получения дополнительной информации см. документацию NCCL и в частности раздел по Переменным окружения NCCL.

Похожие темы