b89f8fabc9
The project includes following components and frameworks: - ML Collective component - NETPATTERNS and COMMPATTERNS common components - BCOL framework - SBGP framework Note: By default the ML collective component is disabled. In order to enable new collectives user should bump up the priority of ml component (coll_ml_priority) ============================================= Primary Contributors (in alphabetical order): Ishai Rabinovich (Mellanox) Joshua S. Ladd (ORNL / Mellanox) Manjunath Gorentla Venkata (ORNL) Mike Dubman (Mellanox) Noam Bloch (Mellanox) Pavel (Pasha) Shamis (ORNL / Mellanox) Richard Graham (ORNL / Mellanox) Vasily Filipov (Mellanox) This commit was SVN r27078.
74 строки
1.8 KiB
C
74 строки
1.8 KiB
C
/*
|
|
* Copyright (c) 2009-2012 Oak Ridge National Laboratory. All rights reserved.
|
|
* Copyright (c) 2009-2012 Mellanox Technologies. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#ifndef MCA_BCOL_IBOFFLOAD_DEVICE_H
|
|
#define MCA_BCOL_IBOFFLOAD_DEVICE_H
|
|
|
|
#include "ompi_config.h"
|
|
|
|
#include <infiniband/mqe.h>
|
|
#include <infiniband/mverbs.h>
|
|
|
|
#include <infiniband/verbs.h>
|
|
|
|
#include "bcol_iboffload.h"
|
|
#include "bcol_iboffload_frag.h"
|
|
|
|
#define BCOL_IBOFFLOAD_DUMMY_MEM_SIZE 1
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
/* Device OBJ */
|
|
struct mca_bcol_iboffload_device_t {
|
|
opal_list_item_t super;
|
|
|
|
bool activated;
|
|
|
|
struct ompi_common_ofacm_base_dev_desc_t dev;
|
|
struct ibv_pd *ib_pd;
|
|
struct ibv_device_attr ib_dev_attr;
|
|
|
|
int num_act_ports;
|
|
|
|
struct mca_bcol_iboffload_port_t *ports;
|
|
struct ibv_cq *ib_cq;
|
|
|
|
/* CQ for MQs of all iboffload modules on this device */
|
|
struct ibv_cq *ib_mq_cq;
|
|
|
|
/* The free list of registered buffers
|
|
* since the registration depends on PD, it is
|
|
* most resonable place to keep the frags */
|
|
ompi_free_list_t *frags_free;
|
|
mca_mpool_base_module_t *mpool;
|
|
|
|
/* netowrk context */
|
|
bcol_base_network_context_t *net_context;
|
|
|
|
/* We keep dummy frags for all QPs on each device,
|
|
possibly some of QPs don't need it but anyway we distribute dummy
|
|
for them. All dummies point to a same byte of memory. */
|
|
mca_bcol_iboffload_frag_t dummy_frags[MCA_BCOL_IBOFFLOAD_QP_LAST];
|
|
|
|
/* Registred memory for the dummy frags */
|
|
char dummy_mem[BCOL_IBOFFLOAD_DUMMY_MEM_SIZE];
|
|
|
|
/* Registration info of the dummy memory */
|
|
mca_bcol_iboffload_reg_t dummy_reg;
|
|
};
|
|
|
|
typedef struct mca_bcol_iboffload_device_t mca_bcol_iboffload_device_t;
|
|
OBJ_CLASS_DECLARATION(mca_bcol_iboffload_device_t);
|
|
|
|
END_C_DECLS
|
|
|
|
#endif /* MCA_BCOL_IBOFFLOAD_DEVICE_H */
|
|
|