handle scenario when GPU support is not available and p2p_access_pattern is empty...
authorDeepali Chourasia <deepali@us.ibm.com>
Tue, 19 Mar 2019 06:06:03 +0000 (23:06 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Tue, 19 Mar 2019 06:11:54 +0000 (23:11 -0700)
Summary:
Observed that when there is no GPU support available `workspace `sets `GetGpuPeerAccessPattern `to `[]` in
https://github.com/pytorch/pytorch/blob/master/caffe2/python/workspace.py#L79
and this case is not handled in https://github.com/pytorch/pytorch/blob/master/caffe2/python/data_parallel_model.py#L1065.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/17974

Differential Revision: D14517066

Pulled By: ezyang

fbshipit-source-id: 186911d95c07e9a55ab82a41d0c7c919e4281bb4

caffe2/python/data_parallel_model.py

index 3abe401..455b3dc 100644 (file)
@@ -1062,7 +1062,7 @@ def _AllReduce(devices, model, net, param, use_nccl=False, control_input=None):
             for i, peer in enumerate(devices):
                 if i == 0:
                     continue  # Skip the first device
-                if p2p_access_pattern is not None and not p2p_access_pattern[
+                if p2p_access_pattern is not None and p2p_access_pattern.size and not p2p_access_pattern[
                     devices[0], peer
                 ]:
                     # Copy from peer to d0