6021329af0
* 2.9.6-1 Add support for CUDA graphs. Fuse BCM Gen4 switches to avoid suboptimal performance on some platforms. Issue #439. Fix bootstrap issue caused by connection reordering. Fix CPU locking block. Improve CollNet algorithm. Improve performance on DGX A100 for communicators with only one GPU per node. * Clique tuning upgrade (#352) (#19) * Enabling clique for any XGMI-connected topology, adding tuning * Updating CHANGELOG for clique tuning * Re-working clique barrier system to work on multi-process / multi-gpu Co-authored-by: Sylvain Jeaugey <sjeaugey@nvidia.com> Co-authored-by: gilbertlee-amd <44450918+gilbertlee-amd@users.noreply.github.com>
51 lines
1.6 KiB
C
51 lines
1.6 KiB
C
/*************************************************************************
|
|
* Copyright (c) 2016-2019, NVIDIA CORPORATION. All rights reserved.
|
|
* Modifications Copyright (c) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
|
|
*
|
|
* See LICENSE.txt for license information
|
|
************************************************************************/
|
|
|
|
#ifndef UTILS_H_
|
|
#define UTILS_H_
|
|
|
|
struct allGather1Data_t {
|
|
struct ncclPeerInfo peerInfo;
|
|
struct ncclComm* comm;
|
|
int cudaCompCap;
|
|
};
|
|
|
|
// AllGather3 - begin
|
|
struct ncclGraphInfo {
|
|
int pattern;
|
|
int nChannels;
|
|
int sameChannels;
|
|
float speedIntra;
|
|
float speedInter;
|
|
int typeIntra;
|
|
int typeInter;
|
|
};
|
|
|
|
struct allGather3Data_t{
|
|
int collNetSupport;
|
|
int nc;
|
|
struct ncclGraphInfo tree;
|
|
struct ncclGraphInfo ring;
|
|
struct ncclGraphInfo collNet;
|
|
struct ncclTopoRanks topoRanks;
|
|
};
|
|
|
|
void initCollNet();
|
|
|
|
ncclResult_t ncclTopoGetSystem(const char* xmlTopoFile, struct ncclTopoSystem** system);
|
|
|
|
ncclResult_t ncclTopoGetSystemFromXml(struct ncclXml* xml, struct ncclTopoSystem** topoSystem);
|
|
|
|
ncclResult_t bootstrapAllGather(struct ncclComm* comm, struct allGather1Data_t * allGather1Data);
|
|
|
|
ncclResult_t initTransportsRank_1(struct ncclComm* comm, struct allGather1Data_t *allGather1Data, struct allGather3Data_t *allGather3Data,
|
|
struct ncclTopoGraph& treeGraph, struct ncclTopoGraph& ringGraph, struct ncclTopoGraph& collNetGraph);
|
|
|
|
ncclResult_t initTransportsRank_3(struct ncclComm* comm, struct allGather3Data_t *allGather3Data,
|
|
struct ncclTopoGraph& treeGraph, struct ncclTopoGraph& ringGraph, struct ncclTopoGraph& collNetGraph);
|
|
|
|
#endif |