SIMT実行の条件分岐 コンピュータのプログラムで、条件を判定して、その後の処理を変えるという機能を使わずに済むものはほとんど無いといってよい。CPUのマルチスレッド処理のように、実行するスレッドごとにプログラムとPC(プログラムカウンタ)があるプロセサの場合は、if文の条件が成立したスレッドではthen節の命令を実行し、条件が不成立のスレッドではelse節の命令を実行するようにすればよい。 しかし、NVIDIAのGPUの場合は32スレッドがワープという単位でまとめられており、32スレッドが同じ命令列を実行する。このため、1つのワープの中に、条件が成立するスレッドと不成立のスレッドが混在すると困ったことになる。 この問題を解決するため、GPUではスレッドごとに、それぞれの命令にその命令を実行するかしないかを指示するPredicateというビットを指定することができるようになっている。前の図