このページの本文へ

前へ 1 2 3 4 次へ

ロードマップでわかる!当世プロセッサー事情 第170回

インテルCPU進化論 Haswellで導入されるCPUの改良 後編

2012年09月24日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回に引き続いて、今回も「Haswell」の詳細を解説する。まずは追加された「AVX2」命令から説明しよう。

HaswellでのAVXの強化
1サイクルで256bitの演算が可能に

図1 Haswellの内部構造図。赤枠内がSandy Bridgeからの主な変更部分

 AVX2命令は、Sandy Bridge世代で投入された「AVX」命令の機能と性能を拡張するものである。大きなポイントは以下の3点だ。

  • 性能が2倍
  • 浮動小数点のFMA(Fused Multiply-Add)演算をサポート
  • いくつかの新命令を搭載

 まず性能が2倍の根拠はなにか。Sandy Bridge世代でのAVX演算は、既存のSSE用演算器を流用して実装されていた。SSEはご存知のとおり、1サイクルあたり最大128bitの演算を行なう(関連記事)。そのためAVX演算の場合は、128bitずつ2回に分けて演算を行なうことになっていた。

 これに対してHaswellでは、SSE演算器がすべて拡張され、AVXにあわせて1サイクルあたり256bitの演算が可能になっている。そのため、従来だと2サイクルを要していた演算が全部1サイクルで可能となり、これだけ見れば性能が倍になった形だ(Photo01)。ただし、残念ながら「それならSSEを使えば、1サイクルあたり2つのSSE命令が実行できる」とはいかない。あくまでもAVX命令を使った場合のみ有効である。

1サイクルあたりのSSE/AVX/AVXの演算可能な数。Single Precision(SP、単精度浮動小数点演算)なら1サイクルあたり最大32個。Double Precision(DP、倍精度浮動小数点演算)でも1サイクルあたり16個が演算可能になっている

 次のFMA(Fused Multiply-Add)とは、乗算と加算が混じった形の演算である。

A=A×B+C

 この演算を1回で行なうというものだ。実はこの形の演算は、自然科学の分野では非常に広範囲で使われており、シミュレーションを初め多くの分野で利用されている。AVX命令もこのFMAをサポートしているのだが、Sandy Bridgeの世代では整数演算でしか利用できなかった。Haswellではこれを、浮動小数点演算に拡張した点が大きな差となっている。

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン