多设备直接的数据交换

我是菜鸟~~初学CUDA,现在看了《高性能运算之CUDA》里面2.7.1.1的运行时API中的多设备并行,simpleMultiGPU 开启了N个线程来控制N个显卡,但是在计算时,显卡之间没有数据交换,我想问下,

1.如果2个设备之间涉及到数据交换,应该怎么处理?最好给个例子~?

2.如果2个线程之间的数据交换,涉及到时间先后,线程之间如何等待~?