NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
rdma_common.h File Reference
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <time.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <cuda.h>
#include <cuda_runtime.h>
#include <doca_log.h>
#include <doca_dev.h>
#include <doca_rdma.h>
#include <doca_gpunetio.h>
#include <doca_mmap.h>
#include <doca_pe.h>
#include <doca_error.h>
#include <doca_buf_array.h>
Include dependency graph for rdma_common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rdma_config
 
struct  rdma_resources
 
struct  rdma_mmap_obj
 
struct  buf_arr_obj
 

Macros

#define MAX_PCI_ADDRESS_LEN   32U
 
#define MAX_IP_ADDRESS_LEN   128
 
#define GPU_BUF_SIZE_A   256
 
#define GPU_BUF_SIZE_B   128
 
#define GPU_BUF_SIZE_C   128
 
#define GPU_BUF_SIZE_F   sizeof(uint8_t)
 
#define GPU_BUF_NUM   4
 
#define GPU_NUM_OP_X_BUF   2
 
#define RDMA_SEND_QUEUE_SIZE   8192
 
#define RDMA_RECV_QUEUE_SIZE   8192
 
#define ROUND_UP(unaligned_mapping_size, align_val)   ((unaligned_mapping_size) + (align_val)-1) & (~((align_val)-1))
 
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 
#define SERVER_ADDR_LEN   (MAX(MAX(DOCA_DEVINFO_IPV4_ADDR_SIZE, DOCA_DEVINFO_IPV6_ADDR_SIZE), DOCA_GID_BYTE_LENGTH))
 
#define SERVER_ADDR_TYPE_LEN   6
 
#define DEFAULT_CM_PORT   13579
 

Functions

int oob_connection_server_setup (int *oob_sock_fd, int *oob_client_sock)
 
void oob_connection_server_close (int oob_sock_fd, int oob_client_sock)
 
int oob_connection_client_setup (const char *server_ip, int *oob_sock_fd)
 
void oob_connection_client_close (int oob_sock_fd)
 
doca_error_t wrapper_doca_rdma_cap_task_write_is_supported (struct doca_devinfo *devinfo)
 
doca_error_t create_rdma_resources (struct rdma_config *cfg, const uint32_t rdma_permissions, struct rdma_resources *resources)
 
doca_error_t destroy_rdma_resources (struct rdma_resources *resources)
 
doca_error_t create_mmap (struct rdma_mmap_obj *mmap_obj)
 
doca_error_t create_buf_arr_on_gpu (struct buf_arr_obj *buf_arr_obj)
 
doca_error_t rdma_write_server (struct rdma_config *cfg)
 
doca_error_t rdma_write_client (struct rdma_config *cfg)
 
doca_error_t kernel_write_client (cudaStream_t stream, struct doca_gpu_dev_rdma *rdma_gpu, struct doca_gpu_buf_arr *client_local_buf_arr_B, struct doca_gpu_buf_arr *client_local_buf_arr_C, struct doca_gpu_buf_arr *client_local_buf_arr_F, struct doca_gpu_buf_arr *client_remote_buf_arr_A, uint32_t connection_index, uint32_t *exit_flag)
 
doca_error_t kernel_write_server (cudaStream_t stream, struct doca_gpu_dev_rdma *rdma_gpu, struct doca_gpu_buf_arr *server_local_buf_arr_A, struct doca_gpu_buf_arr *server_remote_buf_arr_F, uint32_t connection_index)
 
doca_error_t gpunetio_rdma_write_bw (cudaStream_t stream, struct doca_gpu_dev_rdma *rdma_gpu, int num_iter, int num_cta, int num_threads_per_cta, size_t msg_size, struct doca_gpu_buf_arr *server_local_buf_arr, struct doca_gpu_buf_arr *server_remote_buf_arr)
 

Macro Definition Documentation

◆ DEFAULT_CM_PORT

#define DEFAULT_CM_PORT   13579

Definition at line 62 of file rdma_common.h.

◆ GPU_BUF_NUM

#define GPU_BUF_NUM   4

Definition at line 54 of file rdma_common.h.

◆ GPU_BUF_SIZE_A

#define GPU_BUF_SIZE_A   256

Definition at line 50 of file rdma_common.h.

◆ GPU_BUF_SIZE_B

#define GPU_BUF_SIZE_B   128

Definition at line 51 of file rdma_common.h.

◆ GPU_BUF_SIZE_C

#define GPU_BUF_SIZE_C   128

Definition at line 52 of file rdma_common.h.

◆ GPU_BUF_SIZE_F

#define GPU_BUF_SIZE_F   sizeof(uint8_t)

Definition at line 53 of file rdma_common.h.

◆ GPU_NUM_OP_X_BUF

#define GPU_NUM_OP_X_BUF   2

Definition at line 55 of file rdma_common.h.

◆ MAX

#define MAX (   a,
 
)    (((a) > (b)) ? (a) : (b))

Definition at line 59 of file rdma_common.h.

◆ MAX_IP_ADDRESS_LEN

#define MAX_IP_ADDRESS_LEN   128

Definition at line 49 of file rdma_common.h.

◆ MAX_PCI_ADDRESS_LEN

#define MAX_PCI_ADDRESS_LEN   32U

Definition at line 48 of file rdma_common.h.

◆ RDMA_RECV_QUEUE_SIZE

#define RDMA_RECV_QUEUE_SIZE   8192

Definition at line 57 of file rdma_common.h.

◆ RDMA_SEND_QUEUE_SIZE

#define RDMA_SEND_QUEUE_SIZE   8192

Definition at line 56 of file rdma_common.h.

◆ ROUND_UP

#define ROUND_UP (   unaligned_mapping_size,
  align_val 
)    ((unaligned_mapping_size) + (align_val)-1) & (~((align_val)-1))

Definition at line 58 of file rdma_common.h.

◆ SERVER_ADDR_LEN

Definition at line 60 of file rdma_common.h.

◆ SERVER_ADDR_TYPE_LEN

#define SERVER_ADDR_TYPE_LEN   6

Definition at line 61 of file rdma_common.h.

Function Documentation

◆ create_buf_arr_on_gpu()

doca_error_t create_buf_arr_on_gpu ( struct buf_arr_obj buf_arr_obj)

Definition at line 618 of file rdma_common.c.

◆ create_mmap()

doca_error_t create_mmap ( struct rdma_mmap_obj mmap_obj)

Definition at line 569 of file rdma_common.c.

◆ create_rdma_resources()

doca_error_t create_rdma_resources ( struct rdma_config cfg,
const uint32_t  rdma_permissions,
struct rdma_resources resources 
)

Definition at line 299 of file rdma_common.c.

◆ destroy_rdma_resources()

doca_error_t destroy_rdma_resources ( struct rdma_resources resources)

Definition at line 470 of file rdma_common.c.

◆ gpunetio_rdma_write_bw()

doca_error_t gpunetio_rdma_write_bw ( cudaStream_t  stream,
struct doca_gpu_dev_rdma *  rdma_gpu,
int  num_iter,
int  num_cta,
int  num_threads_per_cta,
size_t  msg_size,
struct doca_gpu_buf_arr *  server_local_buf_arr,
struct doca_gpu_buf_arr *  server_remote_buf_arr 
)

◆ kernel_write_client()

doca_error_t kernel_write_client ( cudaStream_t  stream,
struct doca_gpu_dev_rdma *  rdma_gpu,
struct doca_gpu_buf_arr *  client_local_buf_arr_B,
struct doca_gpu_buf_arr *  client_local_buf_arr_C,
struct doca_gpu_buf_arr *  client_local_buf_arr_F,
struct doca_gpu_buf_arr *  client_remote_buf_arr_A,
uint32_t  connection_index,
uint32_t *  exit_flag 
)

◆ kernel_write_server()

doca_error_t kernel_write_server ( cudaStream_t  stream,
struct doca_gpu_dev_rdma *  rdma_gpu,
struct doca_gpu_buf_arr *  server_local_buf_arr_A,
struct doca_gpu_buf_arr *  server_remote_buf_arr_F,
uint32_t  connection_index 
)

◆ oob_connection_client_close()

void oob_connection_client_close ( int  oob_sock_fd)

Definition at line 274 of file rdma_common.c.

◆ oob_connection_client_setup()

int oob_connection_client_setup ( const char *  server_ip,
int *  oob_sock_fd 
)

Definition at line 238 of file rdma_common.c.

◆ oob_connection_server_close()

void oob_connection_server_close ( int  oob_sock_fd,
int  oob_client_sock 
)

Definition at line 222 of file rdma_common.c.

◆ oob_connection_server_setup()

int oob_connection_server_setup ( int *  oob_sock_fd,
int *  oob_client_sock 
)

Definition at line 153 of file rdma_common.c.

◆ rdma_write_client()

doca_error_t rdma_write_client ( struct rdma_config cfg)

Definition at line 822 of file gpunetio_rdma_client_server_write_sample.c.

◆ rdma_write_server()

doca_error_t rdma_write_server ( struct rdma_config cfg)

Definition at line 554 of file gpunetio_rdma_client_server_write_sample.c.

◆ wrapper_doca_rdma_cap_task_write_is_supported()

doca_error_t wrapper_doca_rdma_cap_task_write_is_supported ( struct doca_devinfo *  devinfo)

Definition at line 286 of file rdma_common.c.