Нейронные сети являются по сути параллельными алгоритмами. Можно использовать в своих интересах этот параллелизм при помощи Parallel Computing Toolbox™, чтобы распределить обучение на многожильных центральных процессорах, графические блоки обработки (графические процессоры) и кластеры компьютеров с несколькими центральными процессорами и графических процессоров.
Обучение глубоких сетей чрезвычайно в вычислительном отношении интенсивно, и можно обычно ускорять обучение при помощи высокоэффективного графического процессора. Если у вас нет подходящего графического процессора, можно обучаться на одном или нескольких ядрах процессора или арендовать графические процессоры в облаке. Можно обучить сверточную нейронную сеть на одном графическом процессоре или центральном процессоре, или на нескольких графических процессорах или ядрах процессора, или параллельно в кластере. Используя графический процессор или любую параллельную опцию требует Parallel Computing Toolbox.
Совет
Поддержка графического процессора является автоматической. По умолчанию, trainNetwork
функционируйте использует графический процессор при наличии.
Если вы имеете доступ к машине с помощью нескольких графических процессоров, просто задаете опцию обучения 'ExecutionEnvironment','multi-gpu'
.
Если вы хотите использовать больше ресурсов, можно увеличить обучение глубокому обучению к облаку.
Учебный ресурс | Настройки | Узнать больше |
---|---|---|
Один графический процессор на локальной машине | Автоматический. По умолчанию, | |
Несколько графических процессоров на локальной машине | Задайте | |
Несколько ядер процессора на локальной машине | Задайте С настройками по умолчанию, | |
Кластер или в облаке | После установки кластера по умолчанию задайте Обучение выполняется в кластере и возвращает встроенный график прогресса в ваш локальный 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.