Knights Corner はいかにして x86 で 倍精度1TFLOPSを達成したのか?

発売が待たれる Knights Corner に代表されるMICアーキテクチャの特徴は、その前身にあたるLarrabeeから受け継いだLNI(Larrabee New Instructions)によるSIMDや小型コアを多数搭載している事が特徴と思われがちだけれども、それだけでは筆者にはいまひとつ納得がいかない。

筆者が思うに、その最も特異な点はインオーダーのMMX-Pentiumをベースにしていると言われている事にヒントがある様に思う。

つまり、速度最優先の製品でありながら、あえてインオーダーを選択する事でIPC(Instruction Per Cycle)を稼いでいる点にある・・・

ここまで読んで???と思われた方も多いかもしれない。

通常のCPUでIPCを稼ぐためにはアウトオブオーダーが不可欠だからだ。

しかし、アウトオブオーダーによるIPC向上は、主にシングルスレッドの性能を向上する為の仕組みであって、本来は順番通りに実行されるべきものを速度優先の順番に入れ替えて複数同時(例えばSandyBridgeでは1コアあたり4個のデコーダと6個の実行ユニットが同時に動いている等)で演算しながら性能を向上させている。

アウトオブオーダーの欠点の1つは、同時に実行した後に本来の順番に戻す必要があり、既に終わった演算であっても整列の為の順番待ちが発生する点にあると筆者は思う。これに分岐予測のミスなどが重なり、なかなか結果を出力する事が出来ない。

けれども、Knights Corner の様な製品では、シングルスレッドのピーク性能はあまり重要ではなく、ベクトル演算に代表されるSIMDやMIMDによる複数同時演算が重要になってくる為、シングルスレッド偏重の順番待ちはボトルネックに成ると思う。

では、どうやってインオーダーでIPCを稼いだかというと、答えは4段に拡張されたHT(Hyper Threading)だと筆者は思う。

インオーダーでは遊んでしまう多数のデーコーダや演算ユニットをアウトオブオーダーではなく、4段のHTで有効活用した訳だ。

これにより、1スレッドのIPC向上は困難だけれども、MIMDでは1コアあたりのIPCが飛躍的に向上した事になる。

逆の視点でみると、MIMDではアウトオブオーダーするより出力順番待ちのボトルネックが無いインオーダーとHyperThreading的な手法の組み合わせがリソースの有効活用がより進むのかもしれない。有効活用が進めば少ないダイ面積に多くを詰め込む事が出来る。より多くを詰め込めば、より多くの同時演算が可能になる。

もしかしたら、アウトオブオーダーと、インオーダーかつHyperThreadingは、内部構造的にはほぼ同じで出入り口を単一にするか複数にするかの違いと、出力順番待ちの有無だけと言っても過言ではないのかもしれない。

こういった様々な取り組みは、DRAMのアクセスレイテンシとCPUの演算速度間の乖離によるもので、逆にDRAMのアクセスレイテンシが解消されるかDRAM以外の高速で安価なRAMが登場すれば、根底から覆される事になると思う。

Bulldozerのアーキテクチャは、ちょうど中間的な考えの様にも思う。つまりアウトオブオーダー的な要素を少し削り面積辺りのコア数を増やしMIMD的な演算速度の向上に焦点をあてた作りのCPU・・・

※ここで書いた事は、筆者の推測であり、真実とは異なるかもしれません。また、既にどこかで真実が語られているかもしれませんが、筆者の調査不足でその情報に到達出来ていないだけかもしれません。
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

DualSocketTheWorld

Author:DualSocketTheWorld
自作を始めて20台目くらいになりますが、最初からデュアルソケット限定(始めた当時はデュアルスロット)で自作しており、近年になってAMD K6を試したくなりSocket7でK6-2+のシングル構成で組んだのがシングル初です。

シングルマザー(含:シングルソケットマルチコア)や4ソケット以上の自作は基本的にしませんし、メーカー製PCの改造も基本的にはしません(ノートPCのSSD化くらいはしますが・・・)

基本路線はワークステーションと呼ばれる分野での自作で、OSもWindows系であればProfesionalが主な対象に成ります。

ゲーマーの様なOverClockは行わず、WS路線としてハイエンドCPUとハイエンドGPUの組み合わせで定格或いはDownClockで発熱を抑えつつ、その時のアーキテクチャに置いて爆速かつ静音を目指し、30年以上の長期に渡り稼動状態をキープする事を目指します。

※基本的にリンクフリーです。どこでも自由にどうぞ。

※画像は時々変ります。

※お決まりの文章ですが、改造は個人の責任で行ってください。ここに記載された情報は間違いを含んでいる可能性が有り、それを元に製作や改造などをして失敗しても筆者は一切責任持てませんので悪しからず。

筆者略歴:
小学生時代にゴミ捨て場で拾ったジャンクテレビ数台を分解して部品を取り出し真空管アンプを自作、中学生時代にPC8801mkⅡsrでZ80アセンブラを始める。社会人になって初のプログラムは弾道計算、後に医療系・金融系プログラマ~SEを経て100~200人規模プロジェクトのジェネラルマネジャを数年経験、独立して起業。現在は不動産所得で半引退生活。
(人物特定を避ける目的で一部経歴を変更しています)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR