GPUDirect RDMA on proprietary interconnect


I am currently working on GPUDirect RDMA implementation on a proprietary interconnect, which accepts virtual addresses only. I have some questions on GPUDirect RDMA functionalities (

  • Is it possible to access directly the GPU memory without involving get_user_pages() ?
  • What exactly get_user_pages() call does ? It only maps the GPU buffer on the PCI BAR1 ? Will this call add an entry to the page table? Is it possible to access the GPU page table (virtual to physical address translation)?

My Objective: Be able to pass a virtual address to the NIC which corresponds to a GPU physical memory address.