AnsweredAssumed Answered

Can opencl devices be correlated via the ADL?

Question asked by ckolivas on Jan 23, 2012
Latest reply on Apr 1, 2012 by ckolivas

I have basically 3 questions about iterating devices in both opencl and via the ADL.


I maintain software that uses opencl for sha calculations (cgminer ). It also uses the ATI Display Library to keep track of temperatures, fan speeds etc. I am unable to find a way of correlating devices returned by the opencl code and those returned by the display library. I iterate over them and correlate them entirely by the order they appear in the respective code. This mostly works, but with the opencl code I get two devices if two monitors are connected to one GPU, whereas the ADL returns only one. I also cannot discriminate dual GPU cards (like the 6990) from two separate GPUs.


First question:


1. Using clGetDeviceIDs is there a way to only return discrete physical devices?

clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 0, NULL, &numDevices);

This returns 2 devices if a GPU is connected to two monitors and clGetDeviceInfo gives no distinguishing info to tell us they're virtual devices belonging to the same physical device as far as I can tell.


2. Is there a way to correlate devices returned by by the opencl code and those returned by the ADL?

ADL_Adapter_AdapterInfo_Get (lpInfo, sizeof (AdapterInfo) * iNumberAdapters)

None of the values in the AdapterInfo struct appear to correlate with those returned by the cl code.



3. Is there a way to detect that two unique devices returned by the ADL are actually one physical dual GPU device?

ADL_Adapter_AdapterInfo_Get returns values for the two GPUs that for all intents could be separate devices

ADL_Overdrive5_ThermalDevices_Enum returns 0 for iDomainIndex for the ADLThermalControllerInfo struct.


Thanks in advance.