Если у вас есть доступ к нескольким графическим процессорам, можно выполнять вычисления на нескольких графических процессорах параллельно с помощью параллельного пула.
Чтобы определить количество графических процессоров, доступных для использования в MATLAB, используйте gpuDeviceCount
функция.
Запустите параллельный пул с таким количеством рабочих процессов, как доступные графические процессоры. Для оптимальной эффективности MATLAB по умолчанию присваивает каждый рабочий процессор другому графическому процессору.
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 3).
Чтобы определить, какой графический процессор использует каждый рабочий процесс, вызовите gpuDevice
внутри spmd
блок. The spmd
блок запускается gpuDevice
на каждом работнике.
Используйте функции параллельного языка, такие как parfor
или parfeval
, чтобы распределить ваши расчеты среди работников в параллельном пуле. Если вы используете gpuArray
активизированные функции в ваших расчетах, эти функции выполняются на графическом процессоре работника. Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре. Для получения примера смотрите Запуск функций MATLAB на нескольких графических процессорах.
Когда вы закончите с вашими расчетами, отключите параллельный пул. Можно использовать gcp
функция для получения текущего параллельного пула.
Если вы хотите использовать другой выбор графических процессоров, то можно использовать gpuDevice
для выбора конкретного графического процессора на каждом рабочем месте с помощью индекса устройства графического процессора. Вы можете получить индекс каждого графического процессора в вашей системе, используя gpuDeviceCount
функция.
Предположим, что в вашей системе доступно три графических процессоров, но для расчетов нужно использовать только два. Получите индексы устройств.
Задайте индексы устройств, которые вы хотите использовать.
Запустите свой параллельный пул. Использование spmd
блок и gpuDevice
чтобы связать каждый рабочий процесс с одним из используемых графических процессоров, используя индекс устройства. The labindex
функция определяет индекс каждого работника.
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 2).
В качестве наилучшей практики и для обеспечения оптимальной эффективности назначьте каждому работнику отдельный графический процессор.
Когда вы закончите с вашими расчетами, отключите параллельный пул.