Intel/AMDの直近のCPU年表

# はじめに
SIMDプログラミングをするためには，使っているCPUのアーキテクチャや，どのSIMDに対応するか知る必要があります．ここでは直近10年のCPUについてまとめます．

## CPU年表

### Intel
Intel CPUの場合，Core iシリーズの第一世代(2008)までは，AVXではなく，SSE4.2までに限定されています．
AVXは第2世代のCore-iシリーズであるSandy Bride（2011）からサポートしており，浮動小数点演算に関してはここからAVX命令が使えます．
AVX2とFMAは，第4世代のCore-iシリーズであるHaswell（2013）からサポートしており，整数演算に対する拡張や，FMA命令による浮動小数点演算の強化がされました．

AVX-512はSkylake-XやSkylake-SP(2017/7)といったハイエンドデスクトップ（HEDT）やサーバー用のXeonで対応しています．
なお，AVX-512がはじめに使用可能になったものは，GPUにとって代わろうとして演算専用ユニットとして登場したXeon Phiです．
コンシューマのメインストリームでは，Rocket Lake(2021)から対応しています．
一方で，モバイル用途のCannon Lake（2018）もAVX512に対応していますが，クロック数が全く上がらなかったため広がっていません．
Ice lake（2019）でこの問題はある程度改善しましたたが，やはりメインを張れるほど広がっていませんでした（MacBook Pro専用1068NG7が最上位）．
この改善であるTiger Lake（2020）からメインに使われるCPUにAVX-512が搭載されています．
なお，サーバー向けのCPUであるIce Lake-SPは，現在のIntel CPUの中で最大の性能を持っています．

Alder Lake (2021)から，CPUがハイブリッドコアで構成されています．また，DDR5にはじめて対応します．
高性能コア（Pコア：Golden Cove）と高効率コア（Eコア：Gracemont）によって構成されており，それぞれ性能が違います．
なお，P-CoreはAVX-512が使え，E-CoreがAVX-512に対応しないため，E-Coreを無効化することで，Alder LakeのCPUでもAVX-512を使うことができます．
また，AVX2-VNNI (Vector Neural Network Instructions) に対応したCPUです．これは，AVX-512にあったVNNI命令をAVX2に持ってきたものです．

Intel CPUのCore i7からの年表は以下のようになります．
Xeonは，比較的新しいスケーラブル以外はたくさんありすぎるので記述していません．
一部情報がないため空欄です．お分かりになる方，埋めていただけると幸いです．

| Arch.        | Type| Code Name                | Gen | Year   | Process| SIMD    | CPU    | Core       | Base | Boost |All    |Memory     |
|:------------:|:---:|:------------------------:|:---:|:------:|:------:|:-------:|:------:|:----------:|:----:|:-----:|:-----:|:---------:|
| Nehalem      | D   | Bloomfield               | 1   | 200811 | 45nm   | SSE4.2  | 965Ext |4C8T        |3.2   |3.46   |3.3    |DDR3 1066x3|
| Nehalem      | D   | Bloomfield               | 1   | 200906 | 45nm   | SSE4.2  | 975Ext |4C8T        |3.33  |3.6    |3.46   |DDR3 1066x3|
| Nehalem      | D   | Lynnfield                | 1   | 200908 | 45nm   | SSE4.2  | 870    |4C8T        |2.93  |3.6    |3.2    |DDR3 1333x2|
| Nehalem      | D   | Westmere(Gulftown)       | 1   | 201003 | 32nm   | SSE4.2  | 980X   |6C12T       |3.33  |3.6    |3.46   |DDR3 1066x3|
| Nehalem      | D   | Westmere(Gulftown)       | 1   | 201102 | 32nm   | SSE4.2  | 990X   |6C12T       |3.46  |3.73   |3.6    |DDR3 1066x3|
| Sandy Bridge | D   | Sandy Bridge             | 2   | 201101 | 32nm   | AVX     | 2600K  |4C8T        |3.4   |3.8    |3.5    |DDR3 1333x2|
| Sandy Bridge | D   | Sandy Bridge             | 2   | 201110 | 32nm   | AVX     | 2700K  |4C8T        |3.5   |3.9    |3.6    |DDR3 1333x2|
| Sandy Bridge | H   | Sandy Bridge-E           | 2   | 201111 | 32nm   | AVX     | 3960X  |6C12T       |3.3   |3.9    |3.6    |DDR3 1600x4|
| Sandy Bridge | D   | Ivy Bridge               | 3   | 201204 | 22nm   | AVX     | 3770K  |4C8T        |3.5   |3.9    |3.7    |DDR3 1600x2|
| Sandy Bridge | H   | Sandy Bridge-E           | 2   | 201211 | 32nm   | AVX     | 3960X  |6C12T       |3.5   |4.0    |3.7    |DDR3 1600x4|
| Haswell      | D   | Haswell                  | 4   | 201306 | 22nm   | AVX2    | 4770K  |4C8T        |3.5   |3.9    |3.7    |DDR3 1600x2|
| Sandy Bridge | H   | IvyBridge-E              | 4   | 201309 | 22nm   | AVX     | 4960X  |6C12T       |3.6   |4.0    |3.7    |DDR3 1866x4|
| Haswell      | D   | Haswell Refresh          | 4   | 201406 | 22nm   | AVX2    | 4790K  |4C8T        |3.0   |4.4    |4.2    |DDR3 1600x2|
| Haswell      | H   | Haswell-E                | 5   | 201408 | 22nm   | AVX2    | 5960X  |8C16T       |3.0   |3.5    |3.3    |DDR4 2133x4|
| Haswell      | D   | Broadwell-C,R            | 5   | 201506 | 14nm   | AVX2    | 5775C  |4C8T        |3.3   |3.7    |3.6    |DDR3 1600x2|
| Skylake      | D/M | Skylake-S/H/U/Y          | 6   | 201508 | 14nm   | AVX2    | 6700K  |4C8T        |4.0   |4.2    |4.0    |DDR4 2133x4|
| Haswell      | H   | Broadwell-E              | 6   | 201605 | 14nm   | AVX2    | 6950X  |10C20T      |3.0   |4.0    |3.4/3.1|DDR4 2400x4|
| Skylake      | D/M | Kaby Lake,-S/H/U/Y       | 7   | 201608 | 14nm+  | AVX2    | 7700K  |4C8T        |4.2   |4.5    |4.4    |DDR4 2400x2|
| Skylake      | H   | Kaby Lake-X              | 7   | 201704 | 14nm+  | AVX2    | 7740X  |4C8T        |4.3   |4.5    |4.5    |DDR4 2666x2|
| Skylake      | S   | Skylake-SP               | SP1 | 201707 | 14nm+  | AVX-512 | 8180   |28C86T(8)   |2.5   |3.8    |3.2/2.8/2.3|DDR4 2666x6|
| Skylake      | H   | Skylake-X                | 7   | 201710 | 14nm+  | AVX-512 | 7980XE |18C36T      |2.6   |4.2-4.4|3.4    |DDR4 2666x4|
| Skylake      | M   | Kaby Lake Refresh-U      | 8   | 201708 | 14nm+  | AVX2    | 8650U  |4C8T        |1.9   |4.2    |       |DDR4 2400x2|
| Skylake      | D/M | Coffee Lake-S/U/B        | 8   | 201711 | 14nm++ | AVX2    | 8700K  |6C8T        |3.7   |4.7    |4.3    |DDR4 2666x2|
| Skylake      | M   | Kaby Lake-G              | 8   | 201801 | 14nm+  | AVX2    | 8809G  |4C8T        |3.1   |4.2    |       |DDR4 2400x2|
| Skylake      | D/M | Coffee Lake-H            | 8   | 201804 | 14nm++ | AVX2    | 8950HK |6C8T        |2.9   |4.8    |4.3    |DDR4 2666x2|
| Plam Cove    | M   | Cannon Lake              | 8   | 201805 | 10nm   | AVX-512 | 8121U  |2C4T        |2.2   |3.2    |       |DDR4 2400x2|
| Skylake      | M   | Amber Lake-Y             | 8   | 201808 | 14nm+  | AVX2    | 8500Y  |2C4T        |1.5   |3.9    |       |LPDDR4 1866x2|
| Skylake      | M   | Whiskey Lake-U           | 8   | 201808 | 14nm++ | AVX2    | 8665U  |4C8T        |1.9   |4.8    |       |DDR4 2400x2|
| Skylake      | D   | Coffee Lake Refresh-S    | 9   | 201810 | 14nm++ | AVX2    | 9900K  |8C16T       |3.6   |5.0    |4.7    |DDR4 2666x2|
| Skylake      | H   | Skylake-X Refresh        | 9   | 201812 | 14nm++ | AVX-512 | 9980XE |18C36T      |3.0   |4.4-4.5|3.8/3.3/2.8|DDR4 2666x4|
| Skylake      | S   | Cascade Lake-SP          | SP2 | 201904 | 14nm++ | AVX-512 | 8280L  |28C85T(8)   |2.7   |4.0    |3.3/2.9/2.7|DDR4 2933x6|
| Skylake      | M   | Coffee Lake Refresh-H    | 9   | 2019xx | 14nm++ | AVX2    | 9980HK |8C16T       |2.4   |5.0    |4.1    |DDR4 2666x2|
| Skylake      | H   | Cascade Lake-X           | 10  | 201911 | 14nm++ | AVX-512 | 10980XE|18C36T      |3.0   |4.6-4.8|3.8/3.3/2.8|DDR4 2933x4|
| Sunny Cove   | M   | Ice Lake-U/Y             | 10  | 201905 | 10nm+  | AVX-512 | 1068NG7|4C8T        |2.3   |4.1    |3.6    |DDR4 3200x2|
| Skylake      | D/M | Comet Lake-S/H/U         | 10  | 202005 | 14nm++ | AVX2    | 10900K |10C20T      |3.7   |5.3    |4.8    |DDR4 2933x2|
| Skylake      | M   | Comet Lake-H             | 10  | 202005 | 14nm++ | AVX2    | 10980H |8C16T       |2.4   |5.1-5.3|4.4    |DDR4 2933x2|
| Skylake      | S   | Cooper Lake              | SP3 | 202006 | 14nm++ | AVX-512 | 8380H/HL|28C85T(8)  |2.9   |4.3    |3.8    |DDR4 3200x6|
| Willow Cove  | M   | Tiger Lake-H/G/B         | 11  | 202010 | 10nm+  | AVX-512 | 11980H |8C16T       |3.3   |5.0    |4.5/3.3?|DDR4 2933x2|
| Cypress Cove | D   | Rocket Lake-S            | 11  | 202103 | 14nm++ | AVX-512 | 11900K |8C16T       |3.5   |5.3    |4.8    |DDR4 3200x2|
| Sunny Cove   | S   | Ice Lake-SP              | SP3 | 202104 | 10nm+  | AVX-512 | 8380   |40C80T(2)   |2.3   |3.4    |3.0    |DDR4 3200x8|
| Golden Cove/<BR>Gracemont|D| Alder Lake-S     | 12  | 202111 | intel7 | AVX2/512| 12900K |8+8C/24T    |3.2(2.4)|5.2(3.9)|5.0(3.7) |DDR5 4800x2|
| Golden Cove  | S   | Sapphire Rapids          | SP4 | 202299 | intel7 | AVX-512 |   ?    |?    |?|?|?|?|

Typeは，どの機種向けのCPUかを示しています．

* D: Desktop
* H: High-end desktop (HEDT)
* S: Server (SPシリーズ以外省略)
* M: Mobile

CPUの**コードネーム**の末尾につくのは，S, B, K, H, U, Y, G で下記を表しています．

* S: デスクトップ（メインストリーム）のCPU
* B: モバイルCPUのデスクトップ向け(モバイルのアーキテクチャの中で最も性能が高い)
* K: 最上位を表す
* H: モバイルのハイパフォーマンス
* U: モバイル（低消費電力）
* Y: モバイル（超低消費電力）
* G: モバイル（AMDのGPUを搭載）
* Broadwellは，Kのデスクトップモデルは投入取りやめてC・Rを投入．Cがデスクトップ向けで，RがBGAでモバイル向け．

メインストリームCPUの**型番**の末尾につくのは，無印，XE, X, K, F, T で，詳細は下記です．

* X/XE: ワークステーションモデル
* K: メインストリーム最上位．オーバークロック可能
* F: GPU無し
* T: 低消費電力

コアの数値に括弧つきの場合（例えば，28C56T（8））は，サーバー向けCPUにおいて同時に取り付けられるソケット数を表しています．
また，CPUのクロック数は，BaseとBoost（最大）とAll（全コア利用）に分けて書いています．なお，全コアは，公式の資料からの抜粋ではなく，様々なところから集めた情報なため正確ではないかもしれません．
多コアCPUで複数クロック数が書かれているのは（例えば，3.8/3.3/2.8），スカラ計算，AVXを使う計算，AVX-512を使う計算で，クロック数が変わる時です．
AVX-512を使うと発熱するため，特に全コア使うとクロックを下げてCPUを動作させます．最近のCPUだとこの低下が抑えられていますが，SkylakeくらいのAVX-512が出てきたばかりのCPUだとクロック数は大幅に下がります．
全ての情報が書いてあるわけではないため，AVX-512を使用すると書いてある数字よりも下がる場合もあります．

10nm+は，正式には10nm SuperFinと呼ばれてますが，長いので前例に倣って記述しています．
Alderlakeからプロセスルールの呼び方の名前が変わっています．

* [Intelチックタック](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB_%E3%83%81%E3%83%83%E3%82%AF%E3%83%BB%E3%82%BF%E3%83%83%E3%82%AF)
* [マイクロアーキテクチャリスト](https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures)
* [Intel ターボブーストテクノロジー](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB_%E3%82%BF%E3%83%BC%E3%83%9C%E3%83%BB%E3%83%96%E3%83%BC%E3%82%B9%E3%83%88%E3%83%BB%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC)


### AMD
会心の勢いを持つAMD CPUのZenシリーズ（2017～）からの年表は以下のようになります．ここでは，Zen以前の黒歴史は封印です．
気が向いた方は，埋めていただけると幸いです．

全てAVX2対応しており，また，全てAVX512 **非対応**です．Zen4からAVX-512に対応するかもとう噂もあります．
AVX2のパフォーマンスが上がったのはZen2からで，Zen，Zen+は128ビットレジスタを2回呼ぶ形なため，レイテンシはAVXを使えば改善するものの，最大スループットはSSEと変わりません．
なお，Intelと互換性のあるFMA命令が実装されたのはRyzen以降です．

Intelと書かれている欄は，その当時のIntelの対抗馬となるCPUです．
Zen2からメインストリームのCPUではAMDのほうがパフォーマンスが高いですが，Alder lakeによってまた情勢が変わってきました．
AMDのCPUは温度が許せばBoostクロックまで全コアブーストされるはずで，明示的なダウンクロックがないため全コアブーストしてAVX動作させるとIntel　CPUよりも高い性能を出すことが多いです．


| Arch. | Type |Code Name     | Gen | Year   | Process | SIMD | CPU    | Intel   | Socket | Core       | Base | Boost | XFR |
|:-----:|:----:|--------------|-----|--------|---------|------|--------|---------|:------:|:----------:|:----:|:-----:|:---:|
| Zen   | D    |Summit Ridge  |  1  | 201703 | 14nm    | AVX2 | 1800X  | 7700K   | AM4    | 8C16T      | 3.6  | 4     | 4.1 |
| Zen   | S    |Naples        |  1  | 201706 | 14nm    | AVX2 | 7601   | 8180M   | SP3    | 32C64T(2)  | 2.2  | 2.7   | 3.2 |
| Zen   | H    |Whitehaven    |  1  | 201708 | 14nm    | AVX2 | 1950X  | 7980XE  | TR4    | 16C32T     | 3.4  | 4     | 4.2 |
| Zen   | M    |Raven Ridge   |  1  | 201710 | 14nm    | AVX2 | 2700U  | -       | -      | 4C8T       | 2.2  | 3.8   | -   |
| Zen+  | D    |Pinnacle Ridge|  2  | 201804 | 12nm    | AVX2 | 2700X  | 8700K   | AM4    | 8C16T      | 3.7  | 4.3   | -   |
| Zen+  | H    |Colfax        |  2  | 201808 | 12nm    | AVX2 | 2990WX | 9980XE  | TR4    | 32C64T     | 3    | 4.2   | -   |
| Zen+  | M    |Picasso       |  2  | 201901 | 12nm    | AVX2 | 3700U  | -       | -      | 4C8T       | 2.3  | 4.0   | -   |
| Zen2  | D    |Matisse       |  3  | 201907 | 7nm     | AVX2 | 3900X  | 9900K   | AM4    | 12C24T     | 3.8  | 4.6   | -   |
| Zen2  | S    |Rome          |  3  | 201908 | 7nm     | AVX2 | 7742   | 8280    | SP3    | 64C128T(2) | 2.25 | 3.4   | -   |
| Zen2  | D    |Matisse       |  3  | 201911 | 7nm     | AVX2 | 3950X  | 9900K   | AM4    | 16C32T     | 3.5  | 4.7   | -   |
| Zen2  | H    |Castle Peak   |  3  | 201911 | 7nm     | AVX2 | 3970X  | 10980XE?| sTRX4  | 32C64T     | 3.7  | 4.5   | -   |
| Zen2  | M    |Renoir        |  3  | 202001 | 7nm     | AVX2 | 4800H  | -       | -      | 8C16T      | 2.9  | 4.2   | -   |
| Zen2  | H    |Castle Peak   |  3  | 202002 | 7nm     | AVX2 | 3990X  | -       | sTRX4  | 64C128T    | 2.9  | 4.3   | -   |
| Zen3  | D    |Vermeer       |  4  | 202011 | 7nm+    | AVX2 | 5950X  | 10900K  | AM4    | 16C32T     | 3.4  | 4.9   | -   |
| Zen2  | M    |Lucienne      |  3  | 202101 | 7nm     | AVX2 | 5700U  | -       | -      | 8C16T      | 1.8  | 4.3   | -   |
| Zen3  | M    |Cezanne       |  4  | 202101 | 7nm+    | AVX2 | 5980HX | -       | -      | 8C16T      | 3.3  | 4.8   | -   |
| Zen3  | S    |Milan         |  4  | 202103 | 7nm+    | AVX2 | 7763   | 8380    | SP3    | 64C128T(2) | 2.45 | 3.5   | -   |

* Desktop, Mobile: Ryzen, HEDT: Threadripper, Server: EPYC
* Zen3のHEDTはまだ出ていません．


* 15hファミリと書かれていたら，Bulldozer, Piledriver, Steamroller, Excavatorのこと．
* 17hファミリと書かれていたらZen, Zen+, Zen2のこと．
* 19hファミリと書かれていたらZen3のこと．
	* [List of AMD CPU microarchitectures](https://en.wikipedia.org/wiki/List_of_AMD_CPU_microarchitectures)
* [WikiChip:Zen - Microarchitectures - AMD](https://en.wikichip.org/wiki/amd/microarchitectures/zen)