6 Replies Latest reply on Jan 18, 2011 1:34 PM by aj_guillon

    Unique ID of Device - CL_DEVICE_VENDOR_ID wrong on HD5970?

    aj_guillon

      I'm currently looking at how to uniquely identify devices, in case the underlying implementation scrambles the order of the returned cl_device_ids from clGetDeviceIDs().  According to the spec, CL_DEVICE_VENDOR_ID should be a unique ID, so I would expect to be able to use this.  However, on the 5970 I get the value 4098 two times.  If the 5970 is to be recognized as two separate devices, then I would expect CL_DEVICE_VENDOR_ID to be different for each.

       

      A bug?

        • Unique ID of Device - CL_DEVICE_VENDOR_ID wrong on HD5970?
          aj_guillon

          Actually, the second device found was my CPU... and it shares the vendor ID which is even worse

            • Unique ID of Device - CL_DEVICE_VENDOR_ID wrong on HD5970?
              rick.weber

              The vendor ID is a unique ID for the vendor, not the device and will be unique to each vendor, not necessarily each device. If you have a Radeon and an Opteron for example, they're both made by AMD. However, in my experience, once all your OpenCL SDKs are installed, platforms always appear in the same order and then devices always appear in the same order for a given machine. In either case, CL_DEVICE_NAME will give you the actual name of the device in a parseable string.However, this may not even be what you want since I believe it returns the family name (Evergreen for 5xxx series) and not the part number.

              I assume you want to distinguish different types of devices. If you had two Radeon 5870s, you probably don't care which of them you number device 0 and 1, so long as they are labeled in a unique way.

                • Unique ID of Device - CL_DEVICE_VENDOR_ID wrong on HD5970?
                  nou

                  i can say that for example order of platform on linux depend on the filename of ICD registration in /etc/OpenCL/vendors. platform which ICD registration file is alphabetically first.

                  • Unique ID of Device - CL_DEVICE_VENDOR_ID wrong on HD5970?
                    aj_guillon

                    Right, what I require is a unique method of identifying devices that is independent of the process, and is deterministic.  I suppose I parsed the spec differently, since the example gave a PCIe ID, so I interpreted this as meaning that this is the device unique to the vendor (i.e. "this is the ID of the device unique to the vendor").  Instead, I guess this has been interpreted to say "this is the ID of the vendor of the device" which seems to be useful only to determine the vendor, which is covered by CL_DEVICE_VENDOR anyways.

                    I'll post to Khronos to seek clarification on the spec itself.  Further comments on how to get a unique ID that is compliant with the specification?