Machine learning 在Pytorch中,应该在哪里调用torch.distributed.destroy_进程_组()?

Machine learning 在Pytorch中,应该在哪里调用torch.distributed.destroy_进程_组()?,machine-learning,neural-network,pytorch,conv-neural-network,distributed-computing,Machine Learning,Neural Network,Pytorch,Conv Neural Network,Distributed Computing,我注意到文档没有这个功能。因此,现在还不清楚应该在哪里称呼它。是否必须: 在每个工作代码末尾调用它(即mp.spawn内部) 或者在mp.spawn之外调用它,即通过主进程 注意,有一个问题要求将此功能放在文档上: 这是2的含义示例: def test_setup(): print('test_setup') if torch.cuda.is_available(): world_size = torch.cuda.device_count() else:

我注意到文档没有这个功能。因此,现在还不清楚应该在哪里称呼它。是否必须:

  • 在每个工作代码末尾调用它(即mp.spawn内部)
  • 或者在mp.spawn之外调用它,即通过主进程
  • 注意,有一个问题要求将此功能放在文档上:

    这是2的含义示例:

    def test_setup():
        print('test_setup')
        if torch.cuda.is_available():
            world_size = torch.cuda.device_count()
        else:
            world_size = 4
        master_port = find_free_port()
        mp.spawn(setup_process, args=(world_size, master_port), nprocs=world_size)
        dist.destroy_process_group()
        print('successful test_setup!')