inline ncclDataType_t torchToNcclDtype()

in fairring/utils.h [221:245]


inline ncclDataType_t torchToNcclDtype(c10::ScalarType dtype) {
  switch (dtype) {
    case c10::ScalarType::Byte:
      return ncclUint8;
    case c10::ScalarType::Char:
      return ncclChar;
    case c10::ScalarType::Int:
      return ncclInt;
    case c10::ScalarType::Long:
      return ncclInt64;
    case c10::ScalarType::Half:
      return ncclHalf;
    case c10::ScalarType::Float:
      return ncclFloat;
    case c10::ScalarType::Double:
      return ncclDouble;
#if defined(__CUDA_BF16_TYPES_EXIST__) && \
    NCCL_VERSION_CODE >= NCCL_VERSION(2, 10, 0)
    case c10::ScalarType::BFloat16:
      return ncclBfloat16;
#endif
    default:
      MY_CHECK(false);
  }
}