Matching nvidia-smi and OpenCL devices


I have a list of OpenCL devices in my C++ code. My task is to display their load. Assuming there are only Nvidia GPU devices I wanted to use nvidia-smi tool to measure gpu/memory usage etc. The problem is how can I match these OpenCL devices with a list of GPUs got from nvidia-smi?

The only identifiers returned by OpenCL are the name of the card and the card’s vendor but they are not unique. If there are 2 same e.g. Nvidia GTS 450 cards, they won’t be usable. The nvidia unique identifier is GPU UUID which is not given by OpenCL. There is even no bus id.

Any help appreciated, cheers