第2世代Ryzen Threadripper 2950XとIntel Coreのベンチマーク性能比較 2017年のCore i9 7960Xでも2018年Ryzen TRに勝利

Ryzenプロセッサは1コアの性能ではIntelに負けていても、コア数をIntelプロセッサより増やしてスレッドレベル並列性が高い用途(アプリケーション)に特化するというコンセプトのCPUです。

そのため動画エンコードのようなスレッドレベル並列性を高く抽出できる用途ではRyzenプロセッサは高い性能を発揮します。

この多コア化戦略はRyzenから始まったものではなく、以前からAMDプロセッサはスレッドレベルやタスクレベル(プロセスレベル)並列性に特化しており「並列性の高い用途ならAMD」と言われてきました。

1コアあたりの性能の高さではIntelに絶対勝つことができないので、1コアの性能は諦めてもコア数だけは増やして、並列性が高いアプリケーションではIntelプロセッサより高い性能を引き出そうとしてきたのがAMDです。

つまり用途で場合分けして、「1コアの性能の高さが必要な用途はIntel、並列性が高い用途ではAMD」のように、並列性が高い用途だけでもIntelに勝って市場での存在意義を見出してきたのがAMDプロセッサでした。

Ryzen ThreadripperはまさにそのAMDの方向性の最たるものです。”Threadripper”という名称からもわかる通り、単コアの性能は捨てて、とにかくコア数を増やし「スレッドレベル並列性を引き出し」て全体的な性能を向上させるのがRyzen Threadripperです。

このRyzenの特定用途に特化した多コア化戦略は、Intel Coreが2017年前半はハイエンド向けでも8コア程度までだったのが功を奏しました。コア数でRyzenとIntel Coreでは約2倍の開きがありました。

しかし2017年10月にIntel Core-Xで16コア製品が出たことにより、2018年8月31日発売のRyzen Threadripper 2950Xの16コアと並びました。2018年8月13日には32コアのRyzen Threadripper 2990WXが発売されましたが、32コアだと歩留まりが悪く価格が高くなりすぎるため2つのダイを無効化し16コアにとどめて歩留まりを改善させたのが2950Xです。

このようにRyzen ThreadripperとIntel Coreでコア数が同じだと、スレッドレベル並列性が多い少ないといったアプリケーションの並列性の有無は関係ありません。

同じ16コア同士なら、Intel CoreでもAMD Ryzenでも同時に並列実行できるスレッド数は同じだからです。

今回は実際に16コアのプロセッサ同士で比較することによって「スレッドレベル並列性が高い用途なら」のような場合分けをしなくて済むようにして一律の比較をします。

Ryzen Threadripper 2950X vs. Core i9 7960X

同じ16コア32スレッド同士の比較になります。コア数以外の違いはキャッシュサイズやキャッシュミス・レイテンシの違い、命令レベル並列処理(スーパースカラ、アウトオブオーダー実行)やデータレベル並列処理(SIMD演算命令)の優劣の差になりますが、これらは1コアあたりの性能の差として現れてくる要素です。RyzenもIntel Coreも共有キャッシュではなく、キャッシュはコアごとに用意されているため、やはり1コアあたりの性能差の話になってきます。

さらにここで発売日の差による性能予測を立てます。

仮にRyzenとIntel Coreが同じ日に発売されたものなら、単純に性能比較するだけで話は済みます。しかし実際は発売日は月単位で異なるためこの点を考慮しなければなりません。

Hennessy&Pattersonの著書Computer Architectureには、プロセッサは1年で22%性能向上すると記載されています。この経験則はCPUのみならずGPUでも妥当しています。

Ryzen Threadripper 2950Xは2018年8月31日発売、Core i9 7960Xは2017年10月25日発売であることから、約10ヶ月の差があります。当然10ヶ月遅く発売されたRyzen Threadripper 2950Xのほうが性能が高くないとおかしいことになります。

1年で22%の性能向上を(10ヶ月/12ヶ月)分だけで考えると、1.22^(10/12)=1.18になり、10ヶ月で18%の性能向上に相当することになります。性能は複利で向上していくため相加平均ではなく相乗平均で求めます。

つまりRyzen ThreadripperはIntel Core-Xより10ヶ月遅く発売されたので18%だけIntel Coreより速くなっていなければなりません。

しかし結果は真逆になっています。

このようにCore i9 7960XがRyzen Threadripper 2950Xよりも+5%勝利しています。本来ならば+18%Ryzen Threadripper 2950Xが勝利しなければならないところが、逆にCore i9 7960Xが+5%勝利しています。

動作周波数でみてもCore i9 7960Xのほうが不利なのにもかかわらず、10ヶ月も前に発売されたCore i9 7960Xが勝利したのは、命令レベル並列処理やデータレベル並列処理のアーキテクチャが優秀だからです。

このようにコア数で並んでしまうとRyzenはIntel Coreに勝てなくなります。

1コアあたりの性能差をかき消すためにコア数をIntel Coreプロセッサより多くすることはRyzenの存在意義そのものです。そのためコア数でIntel Coreに並んでしまうとAMD Ryzenには勝ち目はありません。

同じ16コア同士ならスレッドレベル並列性の有無は関係なし 単純に1コアあたりの性能が高いIntel Coreが勝利

同じコア数を持ったプロセッサ同士の比較は非常に簡単です。

コア数が異なると、PUGBのようなシングルコアに大きな負担のかかる用途ではIntel Core、動画エンコードのようにスレッドレベル並列性が高い用途ではAMD Ryzenのように場合分けして優劣を比較しなければなりません。

しかしコア数が同じならスレッドレベル並列性の有無は関係なくなるため、使う目的がシングルスレッドなのかマルチスレッドなのかは気にしなくてよくなります。

コア数が同じだと単純に1コアの性能の差が全体の性能差になります。

よってRyzen Threadripper 2950XとCore i9 7960Xの比較は「全コア性能差=1コアあたりの性能差」であり、1コアあたりの性能で勝るIntel Coreが勝利した格好です。

第2世代Ryzen Threadripperは32コアを出したためIntel Core-Xが32コアのコア数に追いつくにはまだ時間がかかるでしょう。

しかしメインストリームの第2世代Ryzenは第1世代と同じ8コアにとどまったため、Core i9 9900KやCore i7 9700Kの8コアに追いつかれてしまうことになりました。

同じ8コア同士なら今回の比較と同じでアプリケーションにスレッドレベル並列性が多いかどうかは問題ではなくなり、場合わけ不要な単純比較になります。

今後もRyzenとIntel Coreのコア数が並び、アプリケーションのスレッドレベル並列性の有無が争点とならずシングルコアの性能差がプロセッサ全体の性能差になることが増えてきます。