我總共啓動了256個線程。當我通過啓動一個塊來完成時,一切正常。但是,當我以2x8塊(8x8線程)啓動線程時,內核會無限循環。嗯,真正的問題是我的內核代碼等待來自其他模塊的部分結果,並且在運行多次測試後,我觀察到這些模塊是以隨機順序啓動的,它們似乎是按順序執行的。單內核啓動中塊執行的CUDA順序
如果CUDA塊從同一個內核啓動,它們是否並行運行?我使用的GPU不是限制,因爲我只啓動256個線程,GTX 580可以處理它們。 (在16x16線程的單個塊啓動中一切正常) 有沒有一種方法可以知道執行順序或可能指定它?
只有一個總共4個塊的網格,沒有理由說所有4個塊都不會同時開始執行,或者同時在GTX 580的4個不同的SM中執行。您沒有提供關於您的代碼的真實細節,也沒有任何描述你如何「觀察到這些塊......似乎是按順序執行的。」目前GPU中沒有能力先驗地知道塊的執行順序或指定塊的執行順序。 – 2013-03-11 14:21:52