Я не знаком с CUDA или OpenCL, но могу посоветовать вам взглянуть на итоговый IR LLVM, сгенерированный внешним интерфейсом, и посмотреть, какой код генерируется. Также вы можете посмотреть на соответствующий сервер LLVM, чтобы увидеть, как он использует общую / глобальную память.