我有一個應用程序,我想在多個進程之間共享一個GPU。也就是說,這些進程中的每一個都會創建自己的CUDA或OpenCL上下文,並以相同的GPU爲目標。根據Fermi白皮書[1],應用級上下文切換時間小於25微秒,但啓動會在GPU上啓動時有效地進行序列化 - 所以費米在此方面效果不佳。根據開普勒白皮書[2],有一種叫做Hyper-Q的技術,允許來自多個CUDA流,MPI進程或進程內的線程的多達32個同時連接。來自多個進程的並行GPU內核執行
我的問題:有沒有人在Kepler GPU上試過這個,並驗證它的內核在從不同進程調度時同時運行?這僅僅是一個CUDA功能,還是它可以與Nvidia GPU上的OpenCL一起使用? AMD的GPU支持類似的東西嗎?
[2] http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf
在回答你提出的第一個問題時,nvidia在博客上發佈了一些hyper-Q結果[here](http://blogs.nvidia.com/2012/08/unleash-legacy-mpi-codes-with -keplers-超q /)。 –
有趣,感謝您的鏈接。那篇博文也暗示K10 GPU沒有Hyper-Q,而K20會。 –
這是正確的。你會注意到你在標題中發佈了引用「GK110」的開普勒白皮書鏈接。 K20上的GPU是GK110。 K10上的GPU是GK104(其中兩個)。 –