Linux是不是共享软件,linux – 是否有可能在应用程序之间共享Cuda上下文?
我想在兩個獨立的Linux進程之間傳遞Cuda上下文(使用POSIX消息隊列,我已經設置了它).
使用cuCtxPopCurrent()和cuCtxPushCurrent(),我可以得到上下文指針,但是這個指針在我調用函數的進程的內存中被引用,并且在進程之間傳遞它是沒有意義的.
我正在尋找其他解決方案.我到目前為止的想法是:
>嘗試深層復制CUcontext結構,然后傳遞副本.
>看看我是否能找到一個共享內存解決方案,其中所有Cuda指針都放在那里,這樣兩個進程都可以訪問它們.
>將流程合并為一個程序.
> Cuda 4.0中可能有更好的上下文共享,我可以切換到.
我不確定選項(1)是否可行,也不確定(2)是否可用. (3)如果我想制作通用的東西(這是在劫持墊片內),那么這不是一個真正的選擇. (4)我會看看Cuda 4.0,但我不確定它是否能在那里工作.
謝謝!
解決方法:
總之,沒有.上下文隱含地綁定到創建它們的線程和應用程序.單獨的應用程序之間沒有可移植性.這與OpenGL和各種版本的Direct3D幾乎相同 – 不支持在應用程序之間共享內存.
CUDA 4使API線程安全,因此單個主機線程可以同時保存多于1個上下文(即多于1個GPU),并使用規范設備選擇API來選擇正在使用的GPU.如果我正確理解你的問題/申請,這對我們沒有幫助.
標簽:linux,gpu,cuda,interprocess
來源: https://codeday.me/bug/20190630/1338925.html
總結
以上是生活随笔為你收集整理的Linux是不是共享软件,linux – 是否有可能在应用程序之间共享Cuda上下文?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抓wifi包工具linux,测试工具之在
- 下一篇: linux convert 添加文字,L