We have the global, constant, local and the register address space. Are these logical address spaces on the same device memory chip or are they implemented on separate memory chips? For example, since local represents the memory that is accessible by a work group, local memory is mapped on a compute unit's own separate memory chip. Or is it upto the GPU vendor to come up with the kind of implementation they want?