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]
Этот коммит содержится в:
Mustafa Abduljabbar
2025-09-25 18:58:30 -04:00
коммит произвёл GitHub
родитель a8bf65a298
Коммит d646b0e49b
4 изменённых файлов: 69 добавлений и 13 удалений
+12 -4
Просмотреть файл
@@ -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);
+2 -1
Просмотреть файл
@@ -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