What is the numbering scheme of multiple devices?

If Radeon and Nvidia GPUs exist at the same time

how are they numbered?

Why does acc_set_device_num require to specify the device type?

Does this mean that a Radeon and a NVIDIA GPU can have same device number?

This will cause trouble if I try to launch multiple GPUs with OpenMP - one thread launches one device each.

If Radeon and Nvidia GPUs exist at the same time

This is somewhat hypothetical since I’ve not seen a system which was configured to have both installed. We’ve tried here in the past, but the drivers couldn’t be co-installed.

But the ordering should be per device type and why the “acc_set_device_num” needs both the number and the device type. So there could be two device 0’s, but one of each type.

Do you have a system with such a configuration? If so, can you post the output from “pgaccelinfo”? This will list all the available devices as well as the device numbers.

Note if you don’t call “acc_set_device_num”, then the default device will be used. The default in this case would be the NVIDIA device 0.

  • Mat

No, I don’t have such system. I was assuming, too.

I was writing a preprocessing routine that can distribute workitems properly in any type of environment, and that question rose.

In OpenACC 2.0 reference book, it talks about heterogeneous GPU systems, but for the time being, I’d better not consider such systems.

In OpenACC 2.0 reference book, it talks about heterogeneous GPU systems, but for the time being, I’d better not consider such systems.

Where it will be more relevant is the case when you have a single binary built to support both Tesla and Multi-core x86. So one process could use the Tesla and another use all the x86 core. Though, we don’t have this quite working yet where you can combine these two targets in a single binary. Hopefully soon.

  • Mat