Originally posted by: oscarbarenys1 searching binaries and headers i found cl_amd_region_address_space extension so this will be used for fusion also I see
#define CL_MEM_USE_PERSISTENT_MEM_AMD (1 << 6) // Alloc from GPU's
so seems related to fusion or a way to use host mem accesible from GPU directly?
Consider discrete GPUs. The local memory on the GPU is too large to map into the CPU's address space due to 32-bit limitations (we can't assume 64-bit yet, unfortunately). So, only a portion of it is mapped into the CPU's address space. If you call clCreateBuffer() with the PERSISTENT flag, we will attempt to allocate the memory from the portion of GPU memory that is accessible by the CPU. This way, when you call clEnqueueMapBuffer(), you can update the memory directly and avoid copies.
Note that this flag is unsupported for SDK 2.3 and will have no effect.