4 Replies Latest reply on Sep 1, 2017 11:11 AM by fogbank

    Two identical AMD platforms when enumerating




      First of all, I'll write something about me, because that's what the header told me to do.


      I'm a mostly .NET developer and I work for a firm which does something similar to financial business, but not quite; my contract actually forbids me to tell what it is. We ran against a performance wall with the CPUs we have and I said: "Why don't we use the GPU?"; in my opinion, our problem is highly parallelizable. Now, I was aware of something called "OpenCL", but I've programmed in C very little and I've programmed even less in C++; I can understand the first when I read it, but the complex syntax of the second often baffles me. At work, I use C# and a little (Iron)Python. So bear with me if I ask stupid questions, because nearly *all* of this is new to me and it still looks like Greek.


      That said, I'll describe something that happens on my home machine and that looks odd to me: when I call clGetPlatformIDs and clGetPlatformInfo with the results, I get two AMD platforms that look exactly the same. Both are "Advanced Micro Devices, Inc. AMD Accelerated Parallel Processing: FULL_PROFILE, OpenCL 2.0 AMD-APP (2348.3), Extensions: {cl_khr_icd, cl_khr_d3d10_sharing, cl_khr_d3d11_sharing, cl_khr_dx9_media_sharing, cl_amd_event_callback, cl_amd_offline_devices}".

      I have installed the AMD APP SDK 3.0 and I've launched the clinfo.exe utility, which returns the same results, so I don't think it's a programing error on my part.

      On my PC there is an Intel CPU, which gets correctly identified, an Intel integrated graphics card, which doesn't get identified, and a single AMD Radeon HD 7700 graphics card.


      Is this a normal behavior? If this is the case, which of the two platforms should I use?


      Thanks in advance, and let me know if I have to provide more information.

        • Re: Two identical AMD platforms when enumerating

          Hi Roberto,

          Welcome to this community. You've been whitelisted now. Moving this thread to OpenCL forum.

          In general, a single OpenCL platform is recognize against each vendor implementation (say AMD, Intel etc) installed on the system. Please share the clinfo output and code snippet used for the above testing. Please also mention about the OS and driver (if any).

          Here one point to note. Only CPU runtime comes with the APP SDK package so, without proper driver support, clinfo reports CPU devices only. You need to install compatible driver in order to work with AMD GPUs (Download Drivers). Btw, AMD OpenCL platform does not recognize any Intel GPUs.



            • Re: Two identical AMD platforms when enumerating

              Hi dipak,


              First of all, how can I show my username instead of my real name? I thought that setting my account properties to hide my real name was enough, but apparently it is not so.


              As for my issue, if you want C code you'll have to give me a bit of time. Looking at the C# code I'm dealing with, however, it seems it just makes two clGetPlatformIDs() calls, one to get the number of entries and one to get the actual data, and then a bunch of clGetPlatformInfo() calls (again, one to get the size of the result and another to get the actual result), one for each attribute: vendor, name, extensions and so on.

              You can find the relevant code on https://github.com/fogbank/NOpenCL/blob/master/NOpenCL/UnsafeNativeMethods.Platforms.cs


              I'm attaching the result of clinfo. As you can see, there's an Intel platform which has two devices, the CPU and the integrated GPU (I was wrong, it does get identified), and two identical AMD platforms which have two devices, the GPU and the "GenuineIntel" CPU.


              The test code I've run, based on a simple time benchmark, seem to indicate that the CPU, the Intel GPU and the Radeon do indeed run their kernels as they should, there seem to be no mixups or anything, the results I get are consistent with that. So, for now, there are no real problems; I'm just curious and a bit afraid that this is something that might bite me later on.


              Oh, and I do have AMD graphics card drivers, of course. The info panel in the settings says: "Radeon Software Version 17.1.1. OpenCL™ Version". My OS is Windows 10 version 10.0.15063.



                • Re: Two identical AMD platforms when enumerating

                  Seems you already set it under Privacy Tab. You can preview your profile to see what your profile looks like to other people using: Preview your profile (right side of the same page)

                  [Btw, with admin privilege, I saw your real name and mentioned it in the last reply.]


                  Now, coming to the duplicate platform issue. You don't need to share any code for this. It's clearly seen from the attached clinfo output itself. I haven't come across this issue earlier, so can't point out anything particular. I've a suggestion though. A more recent driver is available now. Please try the latest one and share your observation. If the issue still persists, I'll report it to the concerned team.



                  1 of 1 people found this helpful