是否可以在使用相同GPU的不同上下文(CPU線程)之間共享cudaMalloc的GPU緩衝區?每個上下文分配一個輸入緩衝區,需要由預處理內核填充,該內核將使用整個GPU,然後將輸出分配給它們。在不同的CUDA上下文中共享GPU緩衝區
這種場景非常適合避免多個數據傳入和傳出GPU。該應用程序是一個波束形成器,它將組合多個天線信號並生成多個波束,其中每個波束將由不同的GPU環境處理。梁的整個處理流程已經到位,我只需要添加波束形成部分。讓每個線程生成它自己的光束將複製輸入數據,所以我想避免這種情況(同時,一次生成多個光束效率更高)。
如果通過分叉來表示OS進程分叉函數,那麼您就會混淆線程和進程。 'fork()'創建一個新進程,並且一個上下文不能在兩個進程之間共享。但是,可以在同一進程中的兩個CPU線程之間共享上下文。看看[這裏](http://stackoverflow.com/questions/22950047/cuda-intialization-error-after-fork/22950549?s=1|3.2403#22950549) –
你是對的。問題是由fork()引起的。 – 770966796