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