You can't use arbitrary memory spaces with buffers, currently the code will only allows using one or two memory spaces if the execution space is host or device. For example with cuda you can only use device or pinned memory for communication buffers.