我正在研究CUDA編程結構,學習之後我感受到的是:在創建塊和線程之後,將每個塊分配給每個流式多處理器(例如,我正在使用具有14個流式多處理器的GForce 560Ti,因此一次可以將14個塊分配給所有流式多處理器)。但正如我經歷了幾個網上的材料,如這一個:它已經提到,一些塊可以同時在一個多處理器上運行併發塊如何運行單個GPU流式多處理器?
http://moss.csc.ncsu.edu/~mueller/cluster/nvidia/GPU+CUDA.pdf
。我基本上對流式多處理器上線程和塊的執行非常困惑。我知道塊的分配和線程的執行是絕對任意的,但我想如何實際地發生塊和線程的映射,以便可以發生併發執行。
我已經在嘗試回答OP時稍微閱讀了這部分內容,但是我沒有發現它令人信服。特別是,如果你有8塊,每塊有4個線程會發生什麼。它們能形成一個扭曲,並行執行嗎? – Tudor
@Tudor:不,warp只包含同一塊的線程。 – Pedro
每個塊將有1個warp。每個warp將有4個活動線程和28個禁用線程。 –