Если у вас есть доступ к нескольким графическим процессорам, можно выполнить вычисления на нескольких графических процессорах в параллели с помощью параллельного пула.
Чтобы определить количество графических процессоров, которые доступны для использования в 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
активированные функции в ваших расчетах, эти функции работают на графическом процессоре рабочего. Для получения дополнительной информации смотрите функции 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).
Как лучшая практика, и для лучшей эффективности, присваивают различный графический процессор каждому рабочему.
Когда вы закончите с вашими расчетами, закрытием параллельный пул.