オンラインレースチェックのドキュメントでは、重大度レベルに次のハザード レベルの説明があります
。
スレッドはグループで処理されるため、このステートメントは混乱を招きます。(SM はワープ全体でコードを実行します。) それらがグループで処理されない場合、それらはどのように処理されますか?
「ワープレベルプログラミング」とは?(非ワープレベルのプログラミングとは?)
すべての処理がワープで処理されるのは事実です。ワープ同期プログラミングとも呼ばれるワープレベルのプログラミングは、これに依存してコード/動作の正確性を保証します。多くの、またはおそらくほとんどのコードは、ワープの概念や、正しい動作を実現するためにワープごとに 32 のスレッドがあることに依存していません。
少なくとも2つの懸念があります。まず、if/then/else などの制御構造が存在する場合、ワープ内のスレッドがすべてロックステップで実行されているわけではありません。次に、将来のアーキテクチャがワープまたはワープあたり 32 スレッドの概念を保持するという保証はありません。