void release_nccl_ofi_component()

in src/nccl_ofi_net.c [818:840]


void release_nccl_ofi_component(int dev)
{
	nccl_ofi_t *nccl_ofi_comp = nccl_ofi_component[dev];

	if (!nccl_ofi_comp)
		return;

	if (nccl_ofi_comp->ep)
		fi_close((fid_t)nccl_ofi_comp->ep);
	if (nccl_ofi_comp->av)
		fi_close((fid_t)nccl_ofi_comp->av);
	if (nccl_ofi_comp->cq)
		fi_close((fid_t)nccl_ofi_comp->cq);
	if (nccl_ofi_comp->domain)
		fi_close((fid_t)nccl_ofi_comp->domain);
	if (nccl_ofi_comp->fabric)
		fi_close((fid_t)nccl_ofi_comp->fabric);

	free(nccl_ofi_comp);
	nccl_ofi_component[dev] = NULL;

	NCCL_OFI_TRACE(NCCL_NET, "OFI component #%d is released", dev);
}