新命令セットIntel AVX(Advanced Vector eXtentions)とは?
SSEに代わる新拡張命令
Windows 7 SP1が必要
Sandy Bridgeでは、従来のSSEに代わるSIMD拡張命令AVXを新たにサポートした。AVXの特徴はベクトル幅を256bitに拡張したことと、3~4オペランドに対応したこと。そして、デコードのプロセスを簡略化するため命令のフォーマットを改良することも行なわれている。
このAVXはOSとアプリケーションの対応が必要になる。Windows 7では近々配布開始予定のSP1(Service Pack 1)から対応予定だ。まだ正式リリース前なので、今回はRC版のSP1を使い、Sandra 2011cのAVX対応テストを実行し、AVXのポテンシャルを確認してみた。「マルチメディア処理」では、整数演算で約5%、浮動小数点演算で約88%、倍精度小数点演算で約95%と、AVXを有効化することで大幅な性能向上が確認できた。「暗号処理」のテストではハッシュ処理がAVXに対応しており、こちらも約21%の高速化が確認できた。
なお、Sandy Bridgeでは、暗号処理高速化命令(AES-NI)も導入されている。Sandra 2011cの暗号処理テストの結果を下に掲載したが、AES-NI対応のCore i7-2600Kは非対応のCore i7-875Kに対し、7倍以上の大差を付けている。

AVXではベクトル幅を256bitに拡張しており、32bitの浮動小数点演算なら八つ、64bitの倍精度小数点演算ならば四つ並べて一度に同一の計算をすることができる。また、3~4オペランドに対応し、従来は演算結果は演算データを格納していたレジスタに上書きするしかなかったところ、別のレジスタに出力することが可能となり、レジスタコピーの必要性が減っている




Windows 7 SP1のRC版はMicrosoftのサイトで無償配布されている(http://technet.microsoft.com/ja-jp/ff183870.aspx)
まとめ
果報は寝て待て。
OS・ソフトウェアの対応待ちで
今は意識する必要がない
ポテンシャルの高さは疑いようがないが、ソフトウェアベンダーの具体的な動きも見えず、現段階ではとくに意識する必要はないと思われる。個人的な推測であるが、AVXが本格的に活用されるのは、実行ユニットレベルでFMA(Fused Multiply Add=融合積和算)をサポートすると言われている次々世代のCPU(Haswell)からだと思われる。そのときになって、最新のプロセッサでしか利用できない拡張命令であったらソフトウェアベンダーも積極的に利用しようとは思わないはずで、今は普及の下地を作っている段階だろう。一方、AES-NIの効果はすでに各所で実証済みだ。セキュリティツールなどを多用するビジネス用途では恩恵に与る機会も増えるはずで対応しているに越したことはないだろう。
【検証環境】
[LGA1155環境]
マザーボード:ASUSTeK P8P67 WS Revolution(Intel P67)
[LGA1156環境]
マザーボード:ASUSTeK P7P55-E EVO(Intel P55)
[共通環境]
メモリ:センチュリーマイクロ CK2GX2-D3U1333(PC3-10600 DDR3 SDRAM 2GB×2)、ビデオカード:EVGA GeForce GTX 460 01G-P3-1371-KR(NVIDIA GeForce GTX 460)、SSD:Micron Technology Crucial RealSSD C300 CTFDDAC256MAG-1G1(Serial ATA 3.0、MLC、256GB)、電源:Corsair Memory CMPSU-850HXJP(850W)、OS:Windows 7 Ultimate 64bit版
Serial ATA 6Gbpsネイティブサポートの効果
6Gbpsネイティブ対応環境と非対応環境の差は歴然
Sandy Bridge世代のLGA1155 プラットフォームの大きな進化点と言えるのが、データバス帯域の拡張だ。2ポートのSerial ATA 6Gbpsをチップセット標準でサポートし、CPUとチップセット間のDMIバスの帯域も2倍に拡張している。これにより、Serial ATA 6Gbps対応の高速SSDのパフォーマンスをフルに引き出すことができるようになった。Serial ATA 6Gbpsに対応したCrucial RealSSD C300の単体/RAID 0利用時のパフォーマンスを各プラットフォーム間で比較してみたのが下のグラフだ。明らかに性能が頭打ちになっているP55環境に対し、Intel P67やAMD SB850では大きくスコアを伸ばしているのが分かる。



チップセット標準でSerial ATA 6Gbpsに対応するメリットは、コスト的にも性能的にも歴然としている。従来のLGA1156でもブリッジチップと外部コントローラを実装することでSerial ATA 6Gbpsに対応できていたが、外部コントローラのほとんどはPCI Express 2.0 x1(5Gbps)接続であるため高速SSDではそこがボトルネックになるし、DMI帯域が10GbpsではRAID 0にはとても対応できるものではなかった
まとめ
チップセットレベルでの6Gbps対応は
ストレージ性能を大きく向上させる
すでにSerial ATA 3Gbpsの理論性能(300MB/s)を超えるSerial ATA 6Gbps対応SSDが本格的に流通してきているだけに、チップセットレベルでの6Gbps対応はすぐストレージ性能として体感できる。ベンチマークテストは、CrystalDiskMarkの結果を見るのが分かりやすいだろう。現状はSSDの性能が5Gbps(500MB/s)を超えることはないためP55+ブリッジチップ+外部コントローラでも単体でのシーケンシャルリード/ライトはなんとか格好が付いているが、RAID 0になるとコントローラのボトルネックが露呈する。PCMark VantageではRAID 0でのSB850環境の高性能が目立つものの、P67環境も単体/ RAID 0ともに P55環境に比べれば明らかに優秀なスコアをマークしている。
【検証環境】
[LGA1155環境]
CPU:Core i7-2600K(3.4GHz)、マザーボード:ASUSTeK P8P67 WS Revolution(Intel P67)
[LGA1156環境]
CPU:Core i7-875K(2.93GHz)、マザーボード:ASUSTeK P7P55-E EVO(Intel P55)
[Socket AM3環境]
CPU:Phenom II X6 1100T Black Edition(3.3GHz)、マザーボード:ASUSTeK M4A89TD PRO/USB3(AMD 890FX+SB850)
[共通環境]
メモリ:センチュリーマイクロ CK2GX2-D3U1333(PC3-10600 DDR3 SDRAM 2GB×2)、ビデオカード:EVGA GeForce GTX 460 01G-P3-1371-KR(NVIDIA GeForce GTX 460)、システムHDD:Seagate Barracuda LP ST31500541AS(Serial ATA 2.5、5,900rpm、1.5TB)、検証SSD:Micron Technology Crucial RealSSD C300 CTFDDAC256MAG-1G1(Serial ATA 3.0、MLC、256GB、RAID 0時は2基使用)、電源:Corsair Memory CMPSU-850HXJP(850W)、OS:Windows 7 Ultimate 64bit版