include/nccl_ofi_ofiutils.h (15 lines of code) (raw):
/*
* Copyright (c) 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#ifndef NCCL_OFI_OFIUTILS_H
#define NCCL_OFI_OFIUTILS_H
int nccl_ofi_ofiutils_get_providers(const char *prov_include,
uint32_t required_version,
struct fi_info *hints,
struct fi_info **prov_info_list,
unsigned int *num_prov_infos);
/*
* @brief Allocates and initialises libfabric endpoint and AV.
*
* @return Endpoint ep
* @return Address vector av
*/
int nccl_ofi_ofiutils_init_connection(struct fi_info *info, struct fid_domain *domain,
struct fid_ep **ep, struct fid_av **av,
struct fid_cq **cq);
/*
* @brief Release libfabric endpoint and address vector
*/
void nccl_ofi_ofiutils_ep_release(struct fid_ep *ep, struct fid_av *av,
struct fid_cq *cq, int dev_id);
/*
* @brief Free libfabric NIC info list.
*
* Frees each node of the list. No operation if list is NULL.
*
* @param info_list
* List or circular list of libfabric NIC infos
*/
void nccl_ofi_ofiutils_free_info_list(struct fi_info *info_list);
int nccl_ofi_mr_keys_need_own_key(struct fi_info* provider, bool *provide_own_mr_key);
#endif