CUDAはSPMDなのかSIMDなのか(書きかけ)

頭の中を整理します。

  • MPIのように、SPMD(1つのプログラムで、複数のデータを扱う)プログラミングモデルである。全てのデータに対して、同じプログラムだが、命令が同じとは限らない。データ毎に命令が異なる場合もあり(ex. if文)。
  • それでいて、SM(Streaming Multiprocessers)内では個々のデータ毎に命令が独立して異なるようには出来ず(全てのSPに対して同じ処理となり)、SIMDとなる。Warp単位ではSPMDとして振る舞うことが出来る。

完全に理解してはいないので、うまく書けませんね。さらっと書けるようにします。