I think the behaviour is correct.But I need know that how do you know the all read-only objects are copied into both devices?
In my case I used CL_MEM_COPY_HOST_PTR at first and that causes everything to be copied to all the devices.(which is normal) This was because I thought I can have one read-only memory object copied to both cards and wont interfere with running of kernels. But then I had to make separate objects but I forgot to change the type. I cant tell what AMD SDK does, but on Nvidia cards, I am able to use nvidia-smi to see the memory usage so thats how I realized the stuff was being copied all around