60258


演算の種類によって必要なクロック数が異なるので、クロック周波数よりFLOPSは  
低くなるのかなと思っています。  
しかし、実際はFLOPSのほうが大きいです。それはどうしてなのでしょうか。  
コア数やスレッドの影響もありそうですね、これらから理論的に説明できるものなのでしょうか。

大小関係はこちらなどを参考にしています。  
<http://hardware-navi.com/cpu/>


CC BY-SA 4.0
2019-11-04T23:58:43.283
60252
2022-07-17T23:36:49.100
2022-07-17T23:36:49.100
4236
32428
question
ハードウェア cpu
FLOPSがクロック周波数より大きくなる理由を教えて下さい


Intelプロセッサは[SSE;
ストリーミングSIMD拡張命令](https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0SIMD%E6%8B%A1%E5%BC%B5%E5%91%BD%E4%BB%A4)を搭載しています。これは[SIMD;
Single Instruction, Multiple
Data](https://ja.wikipedia.org/wiki/SIMD)と言って１命令で複数のデータを同時に処理できます。

挙げられたページで例えばIntel CoreCore i7-4960X Unlocked
3.60GHzは173.0GFLOPSと記載されていますが、[Intelのスペック表](https://ark.intel.com/content/www/jp/ja/ark/products/77779/intel-
core-i7-4960x-processor-extreme-edition-15m-cache-up-to-4-00-ghz.html)によると

  * 6コア／12スレッド
  * 3.60 GHz
  * SSE4.2（128bit = 単精度4並列）

ですので、12 * 3.6 * 4 = 172.8
GFLOPSとなり値がだいたい一致します。もちろんIntel公式の[マイクロプロセッサーのコンプライアンス指標の輸出](https://www.intel.co.jp/content/www/jp/ja/support/articles/000005755/processors.html)ページには172.8
GFLOPSと書かれています。

* * *

IntelのSIMDについて

  * MMXは64bitレジスターで32bit単精度を2並列演算
  * SSEは128bitレジスターで32bit単精度を4並列演算、64bit倍精度を2並列演算
  * AVXは256bitレジスターで32bit単精度を8並列演算、64bit倍精度を4並列演算
  * AVX-512は512bitレジスターで32bit単精度を16並列演算、64bit倍精度を8並列演算

の並列演算が可能です。


CC BY-SA 4.0
2019-11-05T02:25:56.657
60258
2019-11-05T04:11:51.040
2019-11-05T04:11:51.040
4236
4236
60252
answer