Two different binaries for gfx804 and gfx900

I am trying to get pre-compiled GPU binaries for different devices with the same way as described in the discussion below.

Cannot compile a binary for gfx901 offline

 

 

I call clGetProgramInfo(CL_PROGRAM_DEVICES) and get the list of the devices whose binary has built by clBuildProgram.

However, some devices in the list seem to have the same name when clGetDeviceInfo(CL_DEVICE_NAME) is called.

In Crimson 17.7.1, there are 2 devices named "gfx804", and in Crimson 17.8.2, 2 more devices named "gfx900".

When I call clGetProgramInfo(CL_PROGRAM_BINARIES) for these devices,

"gfx804" binaries are the same size and they differ only 2 bytes, and "gfx900" binaries are different in size.

 

 

How can I know which binary to execute with which devices of Radeon 500 Series and Radeon Vega Series?