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