AnsweredAssumed Answered

The values returned by clGetDeviceInfo() and clGetPlatformInfo() seem to be just a little off. Why?

Question asked by sp314 on Mar 28, 2018
Latest reply on Mar 29, 2018 by sp314

I've got Ubuntu Linux 16.04 with ROCm and AMDGPU-PRO drivers, and an R290x card, which is the only GPU I have on this computer. When I query the device name with clGetDeviceInfo(...CL_DEVICE_NAME...), for some reason, it returns Hawaii, but when I query the number of compute units, it returns 44. Shouldn't Hawaii be Tahiti in this case?


FWIW, clGetPlatformInfo(...CL_PLATFORM_NAME...) returns AMD Accelerated Parallel Processing, and clGetPlatformInfo(...CL_PLATFORM_VERSION...) returns OpenCL 2.0 AMD-APP (2482.3).


Also, when I run clinfo, it reports the board name as a very nice and descriptive AMD Radeon R9 200 Series string, and if I plug this card into a Windows 10 PC and run GPU-Z, it will report R290 as well. Why not 290x, and how can I get the board name with OpenCL anyway?


So, I'm a bit confused. My big question is, how do I get the exact name/model of the card using OpenCL? I suppose I could go through all the cards and build a table that maps the device name combined with the number of compute units to the card name, but perhaps there's a nicer way, or maybe this table already exists somewhere?


Needless to say, and given the nature of this forum, this only needs to work on AMD hardware in my case.