Can anyone help me understand how the function clCreateBuffer is implemented in multidevice contexts, specifically with respect to the different available flags (USE, COPY, and ALLOC _HOST_PTR).
If I have a multidevice context with 3 discrete GPUs and use the COPY_HOST_PTR flag, to which device is the data physically copied? If it's copied to one device, will it be automatically recopied to another device if I try to use it in another device's command queue?
If I have a multidevice context with a APU (CPU and GPU) and a discrete GPU, what do these flags do? I think (someone correct me if not) COPY and ALLOC result in zero copy for CPU and APU devices, but does the extra discrete GPU change things, especially in light of the previous question about which device the data is copied to?
Thanks in advance!