2010-11-26 15 views
0

8個のSPを持つSMでは、ワープ内の各スレッドが1個の命令の実行中に8個のSPのそれぞれにマッピングされることがあります。したがって、32/8 = 4クロックサイクルでワープが実行される。CUDAワープの分岐とクロックサイクル

もしそうなら、コードにif-elseステートメントがあるとします。 「then」および「else」分岐命令がそれぞれ完了するために1クロックサイクルかかると仮定する。

分岐が発生した場合、if-elseステートメントを完了するために必要なクロックサイクル数はいくつですか?それは2ですか、それとも2 x 4 = 8でなければなりませんか? (すなわち、後者では、各4分の1のワープにつき2サイクル)

任意の説明を理解する!

答えて

6

粒度は4クロックサイクルです - 4つの命令フェーズがあり、4つのフェーズのそれぞれが8つのスレッドに対して同じ命令を処理します(条件付き/分岐の場合はオプションでマスクされます)。 4クロックサイクルごとに実行されます。したがって、あなたの例のように分岐ブランチの場合、1つのブランチには最低4クロック、他のブランチには最低4クロックが必要です。