Parallel processing 在tensorflow中进行模型并行的正确方法是什么?
我有多个4GB GPU节点,所以我想让它们并行运行大型模型。我希望通过适当的设备作用域将层拆分成几个部分只会启用模型并行性,但事实证明,这并不会减少主节点(任务0)的内存占用。(10节点配置-主节点:20g,从节点:2g,1节点配置-主节点:6~7g) 可疑的一点是梯度并没有分布,因为我没有为它们设置正确的设备范围 我的型号在github上提供。()Parallel processing 在tensorflow中进行模型并行的正确方法是什么?,parallel-processing,tensorflow,distributed,Parallel Processing,Tensorflow,Distributed,我有多个4GB GPU节点,所以我想让它们并行运行大型模型。我希望通过适当的设备作用域将层拆分成几个部分只会启用模型并行性,但事实证明,这并不会减少主节点(任务0)的内存占用。(10节点配置-主节点:20g,从节点:2g,1节点配置-主节点:6~7g) 可疑的一点是梯度并没有分布,因为我没有为它们设置正确的设备范围 我的型号在github上提供。() 设备放置日志在这里:所以好消息是,您将colocate_gradients_与_ops一起使用,这意味着您正在确保在放置ops的同一设备上计算渐变
设备放置日志在这里:所以好消息是,您将colocate_gradients_与_ops一起使用,这意味着您正在确保在放置ops的同一设备上计算渐变。() 读取设备放置日志有点困难,因此我建议使用TensorBoard来尝试可视化图形。它具有能够可视化节点在设备上的放置方式的选项 其次,您可以尝试查看操作的大小如何映射到设备上——最大的层(最大激活或最大权重)可能会不成比例地放置在某些节点上,而不是其他节点上。您可以尝试使用来分析图形,以便更好地了解图形中需要资源的位置
从长远来看,我们希望尝试自动解决其中一些放置问题,但到目前为止,模型并行性需要注意精确地放置东西。好消息是,您使用了colocate_gradients_和_ops,这意味着您要确保在放置ops的同一设备上计算坡度。() 读取设备放置日志有点困难,因此我建议使用TensorBoard来尝试可视化图形。它具有能够可视化节点在设备上的放置方式的选项 其次,您可以尝试查看操作的大小如何映射到设备上——最大的层(最大激活或最大权重)可能会不成比例地放置在某些节点上,而不是其他节点上。您可以尝试使用来分析图形,以便更好地了解图形中需要资源的位置 从长远来看,我们希望尝试自动解决其中一些放置问题,但到目前为止,模型并行性需要谨慎地精确放置东西