1
我有應用程序,它是尷尬的並行。是否有可能啓動多個CPU線程以便線程管理GPU?如果可能,我應該在CPU端使用哪個線程庫? OpenMP的?P線程?與多(CPU)多GPU編程邊線
我有應用程序,它是尷尬的並行。是否有可能啓動多個CPU線程以便線程管理GPU?如果可能,我應該在CPU端使用哪個線程庫? OpenMP的?P線程?與多(CPU)多GPU編程邊線
這是可能的,但由於Cuda的4.0發佈之後,不必要的。 Cuda API現在是線程安全的,因此您可以使用單個主機線程異步管理多個設備。
如果你真的想使用多個主機線程,幾乎所有的主庫就行了。我已經成功地使用並行線程,提高::線程,並在Linux和OS X.使用CUDA蘋果紐約中央調度
所以是可以管理第i個CUDA設備與第i個線程,這樣第i個CPU線程發送我的數據的第i個大塊第i個設備? – 2012-08-06 16:46:05
是的,沒有什麼特別的要求。唯一需要注意的是確保每個線程獲得獨特的GPU。對於這一點,要麼有一個主線程枚舉所有設備,並分配和廣播設備ID給每個線程,或使用計算獨家設置的TCC/Linux驅動程序,並讓司機自動的設備分配給每個線程。 – talonmies 2012-08-06 16:55:54
您能否詳細說明TCC中的計算獨佔設置? – 2012-08-06 18:15:23