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