I am trying to learn OpenCL on Intel FPGAs. I have a question on my mind. I know that the platform term for OpenCL refers to -not exactly but- vendors. If I have AMD CPU and AMD GPU, I have an AMD platform. However, I want to learn, if I have AMD CPU, Intel FPGA and NVIDIA GPU, does that mean I have 3 platforms? Instead of AMD CPU, if it was Intel CPU, does that mean platform number reduced to 2? Can someone clarify for what the platform term is used? Thanks.
1 Answers
1
votes
You are right, OpenCL platforms refer to vendors, or rather, vendor OpenCL runtime drivers. With 1 Intel CPU, 2 Nvidia GPUs and 1 AMD GPU, you will have 3 Platforms, one for Intel, one for Nvidia and one for AMD. With an AMD CPU and AMD GPU, you will have a single Platform for both. Same with Intel CPU and Intel GPU/FPGA, also 1 Platform only.
Here an example for an exception to the Platforms=vendors rule: There is 1 Intel CPU in the system, but the Intel OpenCL runtime and also POCL OpenCL runtime installed. Then you have 2 Platforms (Intel and POCL), each with the same Intel CPU as device.
As for detecting all available devices on the system regardless of their Platform, see here.