How to specify GPU devices for parallel computing using "parfor"?

I have a workstation with four GPUs, and I want to run a parfor loop using specific two or three GPUs to share the workstation with other users. If you know how to specify gpu devices for parallel computing using "parfor", I would appreciate it if you could let me know.

 Accepted Answer

The documentation here describes how you might do this in general. Things get a little more complicated if you want to run more workers than the number of GPUs you're accessing, but the principle is the same - set things up using gpuDevice inside an spmd block. That then sets the GPU in use by the worker process, and parfor loops will continue to use that device.

1 Comment

Thank you very much! The documentation and your anwer were very helpful. The following code specifies GPUs #2, #3, #4 to workers #1, #2, #3, respectively, and then following parfor loop uses the specified GPUs.
useGPUs = [2 3 4];
spmd
gpuDevice(useGPUs(labindex));
end
parfor
...
end

Sign in to comment.

More Answers (0)

Categories

Find more on Parallel Computing Toolbox in Help Center and File Exchange

Tags

Asked:

ts
on 20 Dec 2021

Commented:

ts
on 20 Dec 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!