NVIDIA/jetson-rdma-picoevb

In the pico sample program, how does pevb_dma_h2c2h_multi() kick the CUDA kernel and let the CPU know about it after it finishes?

TatsuhiroOshima opened this issue · 2 comments

In the pico sample program, how does pevb_dma_h2c2h_multi() kick the CUDA kernel and let the CPU know about it after it finishes?

		ret = pevb_dma_h2c_single(pevb, src_addr, 0, len_chunk);
		if (ret)
			goto unlock;

		ret = pevb_dma_c2h_single(pevb, dst_addr, 0, len_chunk);
		if (ret)
			goto unlock;

We want to control the CPU driver from the CUDA kernel.
Do I need to implement my own FPGA functionality like mailbox for this?

It just post the data and let CUDA handle it, but there is no notification from cuda driver if it had processed the data if that is what you are asking.

The DMA of FPGA notifies fpga driver that DMA has completed through pevb_irq_handler and at that point control returns to the userspace. The GPU part I mentioned above is where there is no notification if GPU had processed/consumed the data in this sample code.