Expose symbols for RCCL algo/proto/channels selection functions (#1923)
* Unhide symbols for algo/proto functions
* Add all_gather direct usage detection
[ROCm/rccl commit: 7a329bbd94]
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
a8bf65a298
Коммит
d646b0e49b
@@ -24,7 +24,7 @@ THE SOFTWARE.
|
||||
#include "nccl_common.h"
|
||||
#include "nccl.h"
|
||||
#include "param.h"
|
||||
|
||||
#include "core.h"
|
||||
typedef enum RcclTunableColls {
|
||||
RCCL_UNSUPPORTED_TUNABLE = -1,
|
||||
RCCL_RS_TUNABLE = 0, // reduce_scatter index
|
||||
@@ -47,6 +47,13 @@ typedef enum {
|
||||
RCCL_VALUE_INVALID = -1
|
||||
} rcclValueState_t;
|
||||
|
||||
typedef enum {
|
||||
RCCL_DIRECT_ALLGATHER = NCCL_NUM_ALGORITHMS, // Direct AllGather
|
||||
RCCL_MSCCL,
|
||||
RCCL_MSCCLPP,
|
||||
RCCL_ALGO_COUNT
|
||||
} rcclAddonAlgos_t;
|
||||
|
||||
#ifdef RCCL_EXPOSE_STATIC
|
||||
#define RCCL_STATIC_EXPOSE_CHECK()
|
||||
#else
|
||||
@@ -87,9 +94,10 @@ ncclResult_t rcclOverrideAlgorithm(const char* ncclAlgoStr[], float table[][NCCL
|
||||
void rcclUpdateCollectiveProtocol(struct ncclComm* comm, size_t const& nBytes, struct ncclTaskColl* info);
|
||||
void rcclUpdateThreadThreshold(struct ncclComm* comm, size_t const& nBytes, struct ncclTaskColl* info, int& threadThreshold);
|
||||
void rcclSetPipelining(struct ncclComm* comm, size_t const& nBytes, struct ncclTaskColl* info);
|
||||
ncclResult_t rcclGetAlgoInfo(struct ncclComm* comm, ncclFunc_t coll, uint64_t count, ncclDataType_t dataType,
|
||||
int collNetSupport, int nvlsSupport, int numPipeOps,
|
||||
int* algo, int* protocol, int* maxChannels);
|
||||
NCCL_API(ncclResult_t, rcclGetAlgoInfo, struct ncclComm* comm, ncclFunc_t coll, uint64_t count, ncclDataType_t dataType, int collNetSupport, int nvlsSupport, int numPipeOps, int* algo, int* protocol, int* maxChannels);
|
||||
NCCL_API(ncclResult_t, rcclGetAlgoName, int algo, const char** algoName);
|
||||
NCCL_API(ncclResult_t, rcclGetProtocolName, int protocol, const char** algoName);
|
||||
bool rcclUseAllGatherDirect(struct ncclComm* comm, size_t& msgSize);
|
||||
void rcclSetPxn(struct ncclComm* comm, int& rcclPxnDisable);
|
||||
void rcclSetP2pNetChunkSize(struct ncclComm* comm, int& rcclP2pNetChunkSize);
|
||||
ncclResult_t rcclFuncMaxSendRecvCount(ncclFunc_t func, int nRanks, size_t count, size_t& maxCount);
|
||||
|
||||
@@ -27,12 +27,13 @@ THE SOFTWARE.
|
||||
|
||||
RCCL_PARAM_DECLARE(EnableHipGraph); // Opt-in environment variable for enabling hipGraph
|
||||
|
||||
#define RCCL_EXPOSE_STATIC // Expose needed static functions for rccl-tests (or unit-testing in future)
|
||||
#ifdef RCCL_EXPOSE_STATIC
|
||||
#define rccl_static
|
||||
#define rccl_static_inline inline
|
||||
#else
|
||||
#define rccl_static static
|
||||
#define rccl_static_inline static inline
|
||||
#endif
|
||||
#endif`
|
||||
|
||||
#endif
|
||||
|
||||
Ссылка в новой задаче
Block a user