Are there any assumptions I can make about CL_DEVICE_MEM_BASE_ADDR_ALIGN? Without any additional information, if I have to program for multiple devices within a context then I have to ensure things are aligned to the least common multiple of each devices' CL_DEVICE_MEM_BASE_ADDR_ALIGN. However if I knew those values were always powers of two then I would just take the maximum returned value (much simpler ). So far everything I've seen was a power of two, but I don't see that written in the spec.