NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
gpunetio_dma_memcpy_sample.c File Reference
#include <unistd.h>
#include <time.h>
#include <stdbool.h>
#include <doca_log.h>
#include <doca_buf.h>
#include <doca_buf_inventory.h>
#include <doca_mmap.h>
#include <doca_pe.h>
#include "gpunetio_dma_common.h"
Include dependency graph for gpunetio_dma_memcpy_sample.c:

Go to the source code of this file.

Data Structures

struct  gpu_dma_sample_objects
 

Macros

#define SLEEP_IN_NANOS   (10 * 1000)
 
#define GPU_PAGE_SIZE   (1UL << 16)
 
#define NUM_TASKS   1
 
#define NUM_BUFS   2
 
#define DEFAULT_VALUE   0
 

Functions

 DOCA_LOG_REGISTER (GPU_DMA_MEMCPY::SAMPLE)
 
static void memcpy_task_common_callback (struct doca_dma_task_memcpy *dma_task, union doca_data task_user_data, union doca_data ctx_user_data)
 
static doca_error_t init_doca_device (char *nic_pcie_addr, struct doca_dev **ddev)
 
static doca_error_t init_sample_mem_objs (struct gpu_dma_sample_objects *state)
 
static void gpu_dma_cleanup (struct gpu_dma_sample_objects *state)
 
static doca_error_t init_dma_ctx (struct gpu_dma_sample_objects *state)
 
static doca_error_t submit_dma_memcpy_task (struct gpu_dma_sample_objects *state)
 
static doca_error_t launch_cuda_kernel (uintptr_t gpu_dst_buffer, struct doca_gpu_dma *dma_gpu, struct doca_gpu_buf_arr *src_gpu_buf_arr, struct doca_gpu_buf_arr *dst_gpu_buf_arr)
 
doca_error_t gpunetio_dma_memcpy (struct gpu_dma_config *cfg)
 

Variables

static uint8_t is_task_done = 0
 

Macro Definition Documentation

◆ DEFAULT_VALUE

#define DEFAULT_VALUE   0

Definition at line 42 of file gpunetio_dma_memcpy_sample.c.

◆ GPU_PAGE_SIZE

#define GPU_PAGE_SIZE   (1UL << 16)

Definition at line 39 of file gpunetio_dma_memcpy_sample.c.

◆ NUM_BUFS

#define NUM_BUFS   2

Definition at line 41 of file gpunetio_dma_memcpy_sample.c.

◆ NUM_TASKS

#define NUM_TASKS   1

Definition at line 40 of file gpunetio_dma_memcpy_sample.c.

◆ SLEEP_IN_NANOS

#define SLEEP_IN_NANOS   (10 * 1000)

Definition at line 38 of file gpunetio_dma_memcpy_sample.c.

Function Documentation

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( GPU_DMA_MEMCPY::SAMPLE  )

◆ gpu_dma_cleanup()

static void gpu_dma_cleanup ( struct gpu_dma_sample_objects state)
static

Definition at line 339 of file gpunetio_dma_memcpy_sample.c.

◆ gpunetio_dma_memcpy()

doca_error_t gpunetio_dma_memcpy ( struct gpu_dma_config cfg)

Definition at line 604 of file gpunetio_dma_memcpy_sample.c.

◆ init_dma_ctx()

static doca_error_t init_dma_ctx ( struct gpu_dma_sample_objects state)
static

Definition at line 445 of file gpunetio_dma_memcpy_sample.c.

◆ init_doca_device()

static doca_error_t init_doca_device ( char *  nic_pcie_addr,
struct doca_dev **  ddev 
)
static

Definition at line 94 of file gpunetio_dma_memcpy_sample.c.

◆ init_sample_mem_objs()

static doca_error_t init_sample_mem_objs ( struct gpu_dma_sample_objects state)
static

Definition at line 116 of file gpunetio_dma_memcpy_sample.c.

◆ launch_cuda_kernel()

static doca_error_t launch_cuda_kernel ( uintptr_t  gpu_dst_buffer,
struct doca_gpu_dma *  dma_gpu,
struct doca_gpu_buf_arr *  src_gpu_buf_arr,
struct doca_gpu_buf_arr *  dst_gpu_buf_arr 
)
static

Definition at line 564 of file gpunetio_dma_memcpy_sample.c.

◆ memcpy_task_common_callback()

static void memcpy_task_common_callback ( struct doca_dma_task_memcpy *  dma_task,
union doca_data  task_user_data,
union doca_data  ctx_user_data 
)
static

Definition at line 75 of file gpunetio_dma_memcpy_sample.c.

◆ submit_dma_memcpy_task()

static doca_error_t submit_dma_memcpy_task ( struct gpu_dma_sample_objects state)
static

Definition at line 502 of file gpunetio_dma_memcpy_sample.c.

Variable Documentation

◆ is_task_done

uint8_t is_task_done = 0
static

Definition at line 45 of file gpunetio_dma_memcpy_sample.c.