現代の高性能コンピューティングは、NVIDIA GPU の SIMT 命令のようなベクトル命令を使用します (はい、SIMT が完全に SIMD ではないことは知っていますが、その違いがこの質問に影響を与えるとは思いません)。より多くのコアを持つよりもベクトルを操作する方が良い理由を知りたいです。
具体的に言うと、GPU が 32 倍のコアを持つよりも 32 ワードのベクトルで動作する方が優れているのはなぜですか? 勝手に推測してみましたが、実際に何を言っているのかわかる方の意見をお聞きしたいです。
ここに私の推測があります:
各コアにいくつかの制御ハードウェアといくつかの ALU ハードウェアがある場合、ベクトル コアは 32 個の ALU 間で制御ハードウェアの 1 つのブロックを共有するため、計算に費やされる合計トランジスタ バジェットの割合が増加します。
とにかく自然にベクトル化可能な操作を行っている場合、複数のコアは、ベクトル命令では発生しない同期の問題を引き起こすだけです。
異なるコアとは異なり、ベクトル内の異なる単語は互いに隣接しているため、最終的に 32 単語のブロックでメモリを読み込んで操作することになります。これはキャッシュにとって非常に便利です。
本当の答えは何ですか?