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