Hello,
sorry for starting a new topic about a Whish. But i was not able to reply to the Whishlist at: [url=“http://forums.nvidia.com/index.php?showtopic=45522&pid=248850&mode=threaded&start=#entry248850”]http://forums.nvidia.com/index.php?showtop...rt=#entry248850[/url] because it was locked.
My prolem is that i need to share Host Memory buffers between different processes on a linux system. Currently i am using Linux System V shared memory segments for this. I need to copy this buffers to CUDA Device memory. As i can not register an existing buffer with the CUDA runtime for dma transfers and i can not attach a buffer allocated with cudaMallocHost too a second processes i am currently out of luck and can not use dma transfers.
This threads also discuss a similiar prolbem
http://forums.nvidia.com/index.php?act=ST&…=71&t=41710
And something like this has been already mentioned on the Wishlist here
[url=“http://forums.nvidia.com/index.php?showtopic=45522&pid=318401&mode=threaded&start=”]http://forums.nvidia.com/index.php?showtop...aded&start=[/url]
As these two post both are quite old i want to know if there is anything new about this issue? To solve my problem i see posibilities:
- Extend the CUDA Runtime with a function like shmget and shmat from linux Sytem V to be able to share a buffer created by cudaMallocHost between processes.
- Create a buffer with shmget, pagelock that buffer with shmctl and register this paged locked buffer with the CUDA runtime.
Please correct me if i am wrong or have overlocked something.
The dma transfers are important for me in two ways:
- They are faster.
- They enable asynchornous launches with cuda streams.
Best regards
Jiri Kraus