2ab8a3a750
Add support for alternating rings, allow for cross-nic rings without
cross-rail communication.
Add support for user buffer registration for network send/recv.
Optimize aggregated operations to better utilize all channels.
Add flattening for BCM PCI gen5 switches.
Add support for inter-node NVLink communication
Add support for port fusion in NET/IB.
Add support for ReduceScatter and AllGather using Collnet.
Update net API to v8.
Fix hang during A2A connection.
[ROCm/rccl commit: b6475625fb]
42 righe
1.2 KiB
C
42 righe
1.2 KiB
C
/*
|
|
* Copyright (c) 2016-2023, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* See COPYRIGHT for license information
|
|
*/
|
|
|
|
#ifndef NCCL_IPCSOCKET_H
|
|
#define NCCL_IPCSOCKET_H
|
|
|
|
#include "nccl.h"
|
|
#include <stdio.h>
|
|
#include <fcntl.h>
|
|
#include <sys/mman.h>
|
|
#include <unistd.h>
|
|
#include <errno.h>
|
|
#include <sys/wait.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <memory.h>
|
|
#include <sys/un.h>
|
|
#include <inttypes.h>
|
|
|
|
#define NCCL_IPC_SOCKNAME_LEN 64
|
|
|
|
struct ncclIpcSocket {
|
|
int fd;
|
|
char socketName[NCCL_IPC_SOCKNAME_LEN];
|
|
volatile uint32_t* abortFlag;
|
|
};
|
|
|
|
ncclResult_t ncclIpcSocketInit(struct ncclIpcSocket *handle, int rank, uint64_t hash, volatile uint32_t* abortFlag);
|
|
ncclResult_t ncclIpcSocketClose(struct ncclIpcSocket *handle);
|
|
ncclResult_t ncclIpcSocketGetFd(struct ncclIpcSocket* handle, int* fd);
|
|
|
|
ncclResult_t ncclIpcSocketRecvFd(struct ncclIpcSocket *handle, int *fd);
|
|
ncclResult_t ncclIpcSocketSendFd(struct ncclIpcSocket *handle, const int fd, int rank, uint64_t hash);
|
|
|
|
ncclResult_t ncclIpcSocketSendMsg(ncclIpcSocket *handle, void *hdr, int hdrLen, const int sendFd, int rank, uint64_t hash);
|
|
ncclResult_t ncclIpcSocketRecvMsg(ncclIpcSocket *handle, void *hdr, int hdrLen, int *recvFd);
|
|
|
|
#endif /* NCCL_IPCSOCKET_H */
|