pytorch
366c014a - [Resubmit #41318] NCCL backend support for torch bool (#41959)

Commit
4 years ago
[Resubmit #41318] NCCL backend support for torch bool (#41959) Summary: Resubmit of https://github.com/pytorch/pytorch/issues/41318 pushed to ci-all branch. Original description: Closes https://github.com/pytorch/pytorch/issues/24137. This PR adds support for the torch.bool tensor type to ProcessGroupNCCL. For most types we use the existing mapping, but since bool is not supported as a native ncclDataType_t, we add the following logic: Map at::kBool to ncclUint8 During reduction (allreduce for example), if the operation is SUM, we instead override to to a MAX, to avoid overflow issues. The rest of the operations work with no changes. In the boolean case, changing sum to max makes no correctness difference since they both function as a bitwise OR. The reduction logic (for example for reduce/allreduce) is as follows: sum, max = bitwise or product, min = bitwise and Note that this PR doesn't add support for BAND/BOR/BXOR. That is because these reduction ops currently are not supported by NCCL backend, see https://github.com/pytorch/pytorch/issues/41362 Pull Request resolved: https://github.com/pytorch/pytorch/pull/41959 Reviewed By: mrshenli Differential Revision: D22719665 Pulled By: rohan-varma fbshipit-source-id: 8bc4194a8d1268589640242277124f277d2ec9f1
Author
Parents
Loading