Add Alltoallv RCCL kernel implementation (#269)

* Add alltoallv API and implementation

* Extend Rome P2P channel limit to multinode and alltoall kernels

* topo_expl: fix compilation and sync up with main

* gtest: use RCCL alltoallv API

* Code review changes

[ROCm/rccl commit: b871ea3c0c]
이 커밋은 다음에 포함됨:
Wenkai Du
2020-09-30 16:25:36 -07:00
커밋한 사람 GitHub
부모 256de55920
커밋 dbde26e681
22개의 변경된 파일300개의 추가작업 그리고 60개의 파일을 삭제
+5 -1
파일 보기
@@ -54,7 +54,11 @@ ncclResult_t ArgsCheck(struct ncclInfo* info) {
if (info->coll == ncclCollAllGather || info->coll == ncclCollReduceScatter
|| info->coll == ncclCollGather || info->coll == ncclCollScatter || info->coll == ncclCollAllToAll)
info->nBytes *= info->comm->nRanks; // count is per rank
if (info->coll == ncclCollAllToAllv) {
// Use count to store data type size for alltoallv
info->count = ncclTypeSize(info->datatype);
info->datatype = ncclInt8;
}
if (info->op < 0 || info->op >= ncclNumOps) {
WARN("%s : invalid reduction operation %d", info->opName, info->op);
return ncclInvalidArgument;