CUDAは世代間でアーキテクチャが大きく異なり、勉強していると混乱することがよくある。
そこで、基本概念に関する世代間の共通点と相違点をまとめてみた。

〇共通点
・グリッド、ブロック、スレッド
ブログラム実行に関わる論理的概念(物理的なものではない)。
スレッドは、プログラムの最小単位。
ブロックは、複数のスレッドをまとめたもの。グリッドは、複数のブロックをまとめたもの。

・WARP
32スレッドを束ねたもの(論理的概念)であり、プログラムはWARP単位で実行される。

・CUDAコア
1スレッドの処理を担当する。
ストリーミングプロセッサ(SP)とも呼ばれる。

・ストリーミングマルチプロセッサ(SM)
複数のCUDAコアをまとめたもの。1ブロックの処理を担当する。
世代によって呼び方が異なる(後述)。

〇相違点
・Fermi世代
SMを32個のCUDAコアで構成する。
GTX480は15個のSMで構成されるので、CUDAコア数は32×15=480個。
Quadro6000は14個のSMで構成されるので、CUDAコア数は32×14=448個。

・Kepler世代
SMをSMXと呼ぶ。SMXを192個のCUDAコアで構成する。
GTX780は12個のSMXで構成されるので、CUDAコア数は192×12=2304個。
QuadroK6000は15個のSMXで構成されるので、CUDAコア数は192×15=2880個。

・Maxwell世代
SMをSMMと呼ぶ。SMMを128個のCUDAコアで構成する。
GTX980は16個のSMMで構成されるので、CUDAコア数は128×16=2048個。
QuadroM6000は24個のSMMで構成されるので、CUDAコア数は128×24=3072個。

以上です。