正如TensorFlow论文所述,TensorFlow的跨设备通信是通过向设备添加“接收节点”和“发送节点”来实现的。
据我所知,设备(请仅考虑涉及CPU设备)负责执行操作的计算。然而,数据(例如:从操作生成的张量、变量缓冲区)驻留在内存中。我不知道如何在物理上从一个设备传输数据到另一个设备。我猜想数据传输是通过共享内存实现的。这样对吗?
如果有关于数据传输如何实现的任何解释/相应代码,我将不胜感激。 附注: TensorFlow论文链接,图4显示了跨设备通信机制。
据我所知,设备(请仅考虑涉及CPU设备)负责执行操作的计算。然而,数据(例如:从操作生成的张量、变量缓冲区)驻留在内存中。我不知道如何在物理上从一个设备传输数据到另一个设备。我猜想数据传输是通过共享内存实现的。这样对吗?
如果有关于数据传输如何实现的任何解释/相应代码,我将不胜感激。 附注: TensorFlow论文链接,图4显示了跨设备通信机制。
tf.raw_ops.Send/Recv
,但这些都没有成功地在两台机器之间传输张量。请参见https://github.com/tensorflow/tensorflow/issues/47257和https://github.com/tensorflow/tensorflow/issues/47277。 - CQ is not hot