仮想化道場
サーバーを大きく変える可能性を持つ「3D XPoint」
最初の製品となるOptane SSD DC P4800X
2017年3月22日 06:00
IntelとMicronが2015年に発表した新しい不揮発性メモリ、「3D XPoint」。これを使った新しいSSDが、3月19日にIntelから発表された。
今回は、この詳細を説明しよう。
3D XPoint最初の製品となるOptane SSD DC P4800X
3D XPointは、フラッシュメモリを生産しているIntelとMicronの合弁企業IM Flash Technologiesが開発・生産している。
IntelではOptaneというブランド名で、MicronはQuantXというブランド名でそれぞれ製品を提供することになっているが、今回発表されたSSDは、サーバーやデータセンター向けの「Optane SSD DC P4800X」(以下、P4800X)だ。
P4800Xには、NVMe対応のAdd in Card(AIC)と、2.5型ドライブ形状のU.2の2種類が用意されている。インターフェイスは両方ともPCI Express Gen3 x4で、容量に関しては、375GB、750GB、1.5TBの3種類が提供される。
今回の発表は一般販売の開始ではなく、早期採用の顧客に対して4月19日より提供が開始されるというものだ。P4800Xの一般販売は2017年後半(2H)、あるいは4~6月(Q2)といったスケジュールになっているようで、いわば今回の発表は、今後このような製品を販売していくといったアナウンスに近い。このため、価格に関しても、今回の発表では明らかにされていない。
NANDフラッシュより高速な3D XPoint
3D XPointを使用しているP4800Xの最大の特徴は、現在多くのSSDに採用されているNANDフラッシュメモリよりも非常に高い性能を持っていることだ。
データアクセスに関しては、NANDフラッシュメモリを採用したIntel P3700に比べるとランダムリードで10倍、ランダムライトで3倍、リード/ライトのミックス(リード70%/ライト30%)で8倍の性能を実現しているという。
またレイテンシに関しては、既存のNANDフラッシュメモリよりも10倍も高速になっている。
Intelが配布している資料(70%リード/30%ライト 4Kランダム)では、P3700は32万IOPSあたりで頭打ちになる。レイテンシに関しても100μ秒から始まり、負荷がかかると1万μ秒を超えるまで遅延が起こっている。しかしP4800Xでは、10μ秒から始まり、負荷がかかってもあまり遅延は大きくなっていない。データアクセスは52万IOPSあたりで頭打ちになっている。
なお52万IOPSの限界が、3D XPoint、コントローラ、インターフェイスなどのどこに起因するものなのかはこれだけの資料ではわからないが、当初Intelがうたっていた3D XPointの性能ほどは出せていない。つまり、まだ高速化する余地があるわけだ。
また別の資料では、3D XPointの耐久性の高さを示している。フラッシュメモリなどの耐久性を表す指標として、製品の容量に対し、1日にフラッシュメモリ全体を何度書き換えられるかというDWPD(Drive Write Per Day)がある。NANDフラッシュメモリでは、0.5~10DWPDだが、3D XPointでは30DWPDを保証している。3D XPoint自体としては、もっと高いDWPDを実現しているのだろう。
NANDフラッシュメモリでは、データのリード/ライトをページ単位で行っている。このため、ランダムのリード/ライトは時間がかかる。しかし、3D XPointでは、ワード単位でのデータのリード/ライトが行える(DRAMと同じ単位)ため、NANDフラッシュメモリよりも効率よくデータアクセスが行える。このあたりが、性能の向上につながっているのだろう。
容量面では、3D XPointはNANDフラッシュメモリと同じ容量を実現しているとIntelでは説明している。とはいえP4800Xでは、最大1.5TBにとどまっており、2TBや4TBといった大容量の製品は、現状では用意されていない。3D XPointメモリは第1世代のため、まだまだメモリチップの熟成が進んでいないのかもしれない。
3D XPointの試作チップは128Gビットだったため、製品化においても同様の容量と思われる。また、NANDフラッシュメモリのように積層化が難しいと言われているので、大幅な容量増加は難しいのではと予測されている。
一方で、NANDフラッシュメモリでは256Gビットと、3D XPointの2倍の容量が製品化されている。また開発段階ではあるが、512Gビットや1Tビットといった大容量のNANDフラッシュメモリも視野に見えてきている。
3D XPointの容量に関する問題は今後、新しいテクノロジージャンプにより解決するかもしれないし、逆にNANDフラッシュで速度に関する大幅な技術革新がないとも言い切れないが、現状の製品を見る限りは、ここ2~3年間、NANDフラッシュメモリと3D XPointは別々の用途で使われていくだろう。
Optaneはメモリとディスクのギャップを埋める
さて、具体的な用途を見てみよう。
IntelではOptaneを、メインメモリとSSDやHDDとのギャップを埋める新たなメモリとして位置づけている。
サーバー向けのプロセッサのXeon、P4800XとIntel Memory Technologyを組み合わせることで、P4800Xをメインメモリのようにして利用できるとしているのだ。
Optaneをメモリとして使用する場合、インターフェイスがPCI Express Gen3 x4になるため、メインメモリのDDR4 2400などと比べると大幅にアクセス性能は落ちてしまうはずだが、同社の資料では、MySQLを使ったベンチマークで、メインメモリをフル実装する場合と、メインメモリを少なくしてP4800Xを搭載した場合でも、ほとんどパフォーマンスが変わらないという結果が紹介されている。
このメリットは、大容量のメモリ空間を実現できる点だ。Xeon E5 v4などでは(メモリチップによって容量は異なるが)現在の最大メモリサイズとしては1.54TBになる。しかしP4800Xを1基使えば、メインメモリ1.54TB+P4800Xの1.5TBで、最大3TBのメモリ空間を持つサーバーとして利用できる。もちろんP4800Xの台数を増やせば、それだけメモリ空間は拡大する。
これだけの大きなメモリ空間を使えば、データベースのデータをすべてメモリに搭載して処理できる。Optaneに比べると100倍以上のレイテンシを持つSSD、1万倍以上のレイテンシを持つHDDなどを使う場合と比べると、データベースのパフォーマンスが大幅にアップする。
なおOptaneのラインアップとしては、メモリスロットに挿すNVDIMM形状のOptaneが計画されている。Optaneのパフォーマンスを最も生かすには、PCI Express Gen3 x4よりも大幅にアクセス性能が高い、メモリスロットの利用が必要になるだろう。
ただ、メモリスロットにOptaneのNVDIMMを搭載すると、DRAMを搭載するスロットが少なくなってしまうので、今後のサーバーでは、より多くのメモリスロットのサポートが必要になるかもしれない。
Storage Class Memory
このように、Optaneは、短期的には、既存のSSDやHDDをリプレイスするのではなく、メモリとSSDの間に置かれるものとして、つまりメインメモリの代わり、あるいは超高速なストレージとして利用されていくだろう。業界では、こうした製品をStorage Class Memory(SCM)と呼称している。
ただし、高速な不揮発メモリは3D XPointだけではない。NANDフラッシュメモリの最大手Samsungでは、Z-NANDというチップの開発が行われている。
またSCMだけでなく、GPUやFPGAなどとの間で高速にデータを転送するためのインターフェイスが必要になっている。PCI Expressなども高速化してきているが、マルチプロセッサ、マルチFPGA、マルチGPU、マルチSCMが接続できる高速なインターコネクトが必要になっているのだ。そこで、新しいインターコネクトの規格化の検討も始まっている。
例えばGPUの分野では、NVIDIAとIBMにより、GPUとPowerプロセッサを接続するNVLINKが実装されている。NVLINKはGPUとプロセッサ間だけでなく、GPU-GPU間でのインターフェイスにも使われ、PCI Express Gen3の5~12倍の性能を持つとされている。
コンソーシアムとしても、Open CAPI、Gen-Z、CCIXなどが設立されている。それぞれのコンソーシアムに多くの企業がオーバーラップして参加しているため、どの規格がスタンダードになるかはまだまだわからない(将来的に統合される可能性もある)。
ただ、多くの企業が新しいインターコネクト規格の制定に興味があるということを考えれば、高速なインターコネクトが今後のサーバーに必須のテクノロジーとなってくるのではないか。
*****
将来のサーバーは、複数のプロセッサがローカルのメインメモリを持ち、インターコネクトを経由してOptaneのようなSCMに、DRAMよりも少しレイテンシの高いプールドメモリとしてアクセスできるようになるだろう。
また高速インターコネクトを使えば、ビッグデータや機械学習を高速に処理するために、GPUやFPGAにデータを大量に転送できるようになり、処理スピードが数けたアップするかもしれない。このようになれば、機械学習などで使われるニューラルネットのレイヤをより深くしても、今よりも高速に処理が行えるようになり、より精度の高い学習が可能になるだろう。
またデータベースでも、インメモリデータベースが当たり前になるかもしれない。
Optaneは、こういった新しいサーバーシステムへの第一歩といえるだろう。