iface_attr->overhead = 50e-6; /* 50 us */ return UCS_OK; } static UCS_CLASS_DECLARE_DELETE_FUNC(uct_cma_iface_t, uct_iface_t); static uct_iface_ops_t uct_cma_iface_ops = { .iface_close = UCS_CLASS_DELETE_FUNC_NAME(uct_cma_iface_t), .iface_query = uct_cma_iface_query, .iface_get_address = uct_cma_iface_get_address, .iface_is_reachable = uct_cma_iface_is_reachable, .iface_flush = (void*)ucs_empty_function_return_success, .ep_put_zcopy = uct_cma_ep_put_zcopy, .ep_get_zcopy = uct_cma_ep_get_zcopy, .ep_flush = (void*)ucs_empty_function_return_success, .ep_create_connected = UCS_CLASS_NEW_FUNC_NAME(uct_cma_ep_t), .ep_destroy = UCS_CLASS_DELETE_FUNC_NAME(uct_cma_ep_t), }; static UCS_CLASS_INIT_FUNC(uct_cma_iface_t, uct_pd_h pd, uct_worker_h worker, const char *dev_name, size_t rx_headroom, const uct_iface_config_t *tl_config) { UCS_CLASS_CALL_SUPER_INIT(uct_base_iface_t, &uct_cma_iface_ops, pd, worker, tl_config UCS_STATS_ARG(NULL)); return UCS_OK; } static UCS_CLASS_CLEANUP_FUNC(uct_cma_iface_t) { }
UCT_TL_EP_STAT_FLUSH_WAIT(ucs_derived_of(tl_ep, uct_base_ep_t)); status = UCS_ERR_NO_RESOURCE; } return status; } uct_iface_ops_t uct_ugni_smsg_iface_ops = { .iface_query = uct_ugni_smsg_iface_query, .iface_flush = uct_ugni_smsg_iface_flush, .iface_close = UCS_CLASS_DELETE_FUNC_NAME(uct_ugni_smsg_iface_t), .iface_get_address = uct_ugni_iface_get_address, .iface_get_device_address = uct_ugni_iface_get_dev_address, .iface_is_reachable = uct_ugni_iface_is_reachable, .iface_release_am_desc = uct_ugni_smsg_iface_release_am_desc, .ep_create = UCS_CLASS_NEW_FUNC_NAME(uct_ugni_smsg_ep_t), .ep_get_address = uct_ugni_smsg_ep_get_address, .ep_connect_to_ep = uct_ugni_smsg_ep_connect_to_ep, .ep_destroy = UCS_CLASS_DELETE_FUNC_NAME(uct_ugni_smsg_ep_t), .ep_pending_add = uct_ugni_ep_pending_add, .ep_pending_purge = uct_ugni_ep_pending_purge, .ep_am_short = uct_ugni_smsg_ep_am_short, .ep_am_bcopy = uct_ugni_smsg_ep_am_bcopy, .ep_flush = uct_ugni_smsg_ep_flush, }; static ucs_status_t ugni_smsg_activate_iface(uct_ugni_smsg_iface_t *iface) { ucs_status_t status; gni_return_t ugni_rc; uint32_t pe_address;
return UCS_OK; } static void UCS_CLASS_DELETE_FUNC_NAME(uct_ud_mlx5_iface_t)(uct_iface_t*); uct_iface_ops_t uct_ud_mlx5_iface_ops = { .iface_close = UCS_CLASS_DELETE_FUNC_NAME(uct_ud_mlx5_iface_t), .iface_flush = uct_ud_iface_flush, .iface_release_am_desc = uct_ib_iface_release_am_desc, .iface_get_address = uct_ud_iface_get_address, .iface_is_reachable = uct_ib_iface_is_reachable, .iface_query = uct_ud_mlx5_iface_query, .ep_create = UCS_CLASS_NEW_FUNC_NAME(uct_ud_mlx5_ep_t), .ep_destroy = UCS_CLASS_DELETE_FUNC_NAME(uct_ud_mlx5_ep_t), .ep_get_address = uct_ud_ep_get_address, .ep_create_connected = uct_ud_mlx5_ep_create_connected, .ep_connect_to_ep = uct_ud_mlx5_ep_connect_to_ep, .ep_put_short = uct_ud_mlx5_ep_put_short, .ep_am_short = uct_ud_mlx5_ep_am_short, .ep_am_bcopy = uct_ud_mlx5_ep_am_bcopy, .ep_pending_add = uct_ud_ep_pending_add, .ep_pending_purge = uct_ud_ep_pending_purge, .ep_flush = uct_ud_ep_flush };
ep->ah = ah; return UCS_OK; } static void UCS_CLASS_DELETE_FUNC_NAME(uct_ud_verbs_iface_t)(uct_iface_t*); uct_iface_ops_t uct_ud_verbs_iface_ops = { .iface_close = UCS_CLASS_DELETE_FUNC_NAME(uct_ud_verbs_iface_t), .iface_flush = uct_ud_iface_flush, .iface_release_am_desc=uct_ib_iface_release_am_desc, .iface_get_address = uct_ud_iface_get_address, .iface_is_reachable = uct_ib_iface_is_reachable, .iface_query = uct_ud_verbs_iface_query, .ep_create = UCS_CLASS_NEW_FUNC_NAME(uct_ud_verbs_ep_t), .ep_destroy = UCS_CLASS_DELETE_FUNC_NAME(uct_ud_verbs_ep_t), .ep_get_address = uct_ud_ep_get_address, .ep_create_connected = uct_ud_verbs_ep_create_connected, .ep_connect_to_ep = uct_ud_verbs_ep_connect_to_ep, .ep_put_short = uct_ud_verbs_ep_put_short, .ep_am_short = uct_ud_verbs_ep_am_short, .ep_am_bcopy = uct_ud_verbs_ep_am_bcopy, .ep_pending_add = uct_ud_ep_pending_add, .ep_pending_purge = uct_ud_ep_pending_purge, .ep_flush = uct_ud_ep_flush };
ucs_mpool_put(self->desc_any); ucs_mpool_cleanup(&self->free_desc, 1); pthread_mutex_destroy(&self->device_lock); uct_ugni_leave_async(&self->super); } static UCS_CLASS_DEFINE_DELETE_FUNC(uct_ugni_udt_iface_t, uct_iface_t); static uct_iface_ops_t uct_ugni_udt_iface_ops = { .ep_am_short = uct_ugni_udt_ep_am_short, .ep_am_bcopy = uct_ugni_udt_ep_am_bcopy, .ep_pending_add = uct_ugni_udt_ep_pending_add, .ep_pending_purge = uct_ugni_udt_ep_pending_purge, .ep_flush = uct_ugni_ep_flush, .ep_fence = uct_base_ep_fence, .ep_create_connected = UCS_CLASS_NEW_FUNC_NAME(uct_ugni_udt_ep_t), .ep_destroy = UCS_CLASS_DELETE_FUNC_NAME(uct_ugni_udt_ep_t), .iface_flush = uct_ugni_iface_flush, .iface_fence = uct_base_iface_fence, .iface_close = UCS_CLASS_DELETE_FUNC_NAME(uct_ugni_udt_iface_t), .iface_query = uct_ugni_udt_iface_query, .iface_get_address = uct_ugni_iface_get_address, .iface_get_device_address = uct_ugni_iface_get_dev_address, .iface_is_reachable = uct_ugni_iface_is_reachable }; static ucs_mpool_ops_t uct_ugni_udt_desc_mpool_ops = { .chunk_alloc = ucs_mpool_hugetlb_malloc, .chunk_release = ucs_mpool_hugetlb_free, .obj_init = NULL, .obj_cleanup = NULL
static void UCS_CLASS_DELETE_FUNC_NAME(uct_dc_mlx5_iface_t)(uct_iface_t*); static uct_rc_iface_ops_t uct_dc_mlx5_iface_ops = { { { .iface_close = UCS_CLASS_DELETE_FUNC_NAME(uct_dc_mlx5_iface_t), .iface_query = uct_dc_mlx5_iface_query, .iface_get_device_address = uct_ib_iface_get_device_address, .iface_is_reachable = uct_ib_iface_is_reachable, .iface_release_am_desc = uct_ib_iface_release_am_desc, .iface_get_address = uct_dc_iface_get_address, .iface_flush = uct_dc_iface_flush, .ep_create_connected = UCS_CLASS_NEW_FUNC_NAME(uct_dc_mlx5_ep_t), .ep_destroy = UCS_CLASS_DELETE_FUNC_NAME(uct_dc_mlx5_ep_t), .ep_am_short = uct_dc_mlx5_ep_am_short, .ep_am_bcopy = uct_dc_mlx5_ep_am_bcopy, .ep_am_zcopy = uct_dc_mlx5_ep_am_zcopy, .ep_put_short = uct_dc_mlx5_ep_put_short, .ep_put_bcopy = uct_dc_mlx5_ep_put_bcopy, .ep_put_zcopy = uct_dc_mlx5_ep_put_zcopy, .ep_get_bcopy = uct_dc_mlx5_ep_get_bcopy, .ep_get_zcopy = uct_dc_mlx5_ep_get_zcopy, .ep_atomic_add64 = uct_dc_mlx5_ep_atomic_add64, .ep_atomic_fadd64 = uct_dc_mlx5_ep_atomic_fadd64,
iface_attr->latency.growth = 0; iface_attr->bandwidth = 6911 * 1024.0 * 1024.0; iface_attr->overhead = 0; iface_attr->priority = 0; return UCS_OK; } static uct_iface_ops_t uct_gdr_copy_iface_ops = { .ep_put_short = uct_gdr_copy_ep_put_short, .ep_get_short = uct_gdr_copy_ep_get_short, .ep_pending_add = ucs_empty_function_return_busy, .ep_pending_purge = ucs_empty_function, .ep_flush = uct_base_ep_flush, .ep_fence = uct_base_ep_fence, .ep_create = UCS_CLASS_NEW_FUNC_NAME(uct_gdr_copy_ep_t), .ep_destroy = UCS_CLASS_DELETE_FUNC_NAME(uct_gdr_copy_ep_t), .iface_flush = uct_base_iface_flush, .iface_fence = uct_base_iface_fence, .iface_progress_enable = ucs_empty_function, .iface_progress_disable = ucs_empty_function, .iface_progress = ucs_empty_function_return_zero, .iface_close = UCS_CLASS_DELETE_FUNC_NAME(uct_gdr_copy_iface_t), .iface_query = uct_gdr_copy_iface_query, .iface_get_device_address = (void*)ucs_empty_function_return_success, .iface_get_address = uct_gdr_copy_iface_get_address, .iface_is_reachable = uct_gdr_copy_iface_is_reachable, }; static UCS_CLASS_INIT_FUNC(uct_gdr_copy_iface_t, uct_md_h md, uct_worker_h worker, const uct_iface_params_t *params,