67
AMD Radeon Pro SSGを検証:NANDがGPUゲームをどう変えるのか

AMDは先日SIGGRAPHでRadeon Pro SSGを発表し、最新のFijiワークステーションGPUにM.2 SSDを搭載したと発表して大きな話題を呼びました。これは予想外の動きでしたが、その可能性は興味深いものです。

同社は2013年5月、「Project Delta」というコードネームで呼ばれる秘密のプロジェクトを開始し、GPUに直接アクセスできる1TB以上の不揮発性メモリの提供を目指しました。オンボードストレージボリュームを追加することで、ハードウェア、ソフトウェア、OSの相互作用といった様々なレイヤーを省き、大規模データセットのパフォーマンスを大幅に向上させます。

同社は、一般的なワークステーションGPUと、同社の新しいSSD搭載Radeon Pro SSGの性能を比較した印象的なデモを発表しました。標準構成では8K動画のフレームレートが17fpsにとどまったのに対し、SSGは8K動画を92fpsでリアルタイムスクラブすることができました。この短いデモと詳細な説明の欠如が、この新しいアーキテクチャへの大きな関心を呼び起こしました。そこで、AMDにシステムの具体的な動作についてさらに詳しく話を聞きました。

メカニズム 

標準的なシステムトポロジは、GPUとそのオンボードメモリ(通常1~32GB)で構成され、PCIeバスによってストレージプールとシステムメモリから分離されています。GPUは、オンボードメモリのサイズを超える大規模なデータセットを処理する場合、メインシステムメモリまたはストレージプール間でデータを継続的に転送する必要があります。データ転送にはPCIeバスとCPUの両方を通過する必要があるため、システムのオーバーヘッドが発生し、レイテンシが増加します。

ストレージとGPU間でデータを移動するには、CPUがデータをシステムDRAMにステージングする必要があり、DRAM容量と帯域幅、そしてCPUサイクルが消費されます。この追加ステップによって発生するオーバーヘッドと遅延を軽減する手法として、NVMe SSDとGPU間のピアツーピア(p2p)メッセージング技術(Project Donard参照)などがあります。これらの技術は隣接するメモリ/ストレージプールへのアクセスを高速化しますが、PCIeバスを経由する必要があり、常にパフォーマンスの低下を招きます。ちなみに、NvidiaのNVLINKテクノロジも2つのGPU間の通信パフォーマンスを向上させるためにp2p技術を採用していますが、SSDを採用するp2p技術とはアーキテクチャが異なります。

AMDのソリューションは、ハードウェアの観点から見るとシンプルです。同社はPEX8747 PCIeブリッ​​ジチップを使用して、2つのM.2スロット(PCIe 3.0 x4)をGPUに直接接続しました。これにより「プライベート」PCIeバスが作成され、GPUがSSD(CPU/OSではなく)を完全にP2Pで制御できるようになります。AMDによると、これによりレイテンシが最大10倍削減され、PCIeバスの競合も軽減されます。

GPUはOSから隠蔽された独自のプライベートストレージボリュームを持つか、SSDをOSと共有することができます。これにより、CPUと同じデータセットを共有して追加処理を行うといった、興味深い可能性がいくつか生まれます。現在の開発キットではOSがストレージプールを参照できますが、AMDは将来的に開発者がプライベートプールまたは共有プールとして使用できる可能性があると示唆しています。AMDは512GBのSamsung 950 PRO SSDを2台、RAID 0構成で使用しており、これによりストレージを1TBの拡張フレームバッファとして使用するために必要な帯域幅を確保しています。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

興味深い補足情報:AMDは現在、APUにHSA(Heterogeneous System Architecture)を採用しています。HSAフレームワークは、CPU、GPU、メモリといった異なるコンポーネントを1つの異種ユニットとして機能させることで、多くのメリットをもたらします。HSAの最も魅力的な機能の一つは、CPUとGPUがメモリの同じセクションを同時に処理できることです。これにより、データのやり取りが不要になります(最近の記事でも触れています)

HSAは、キャッシュコヒーレントな共有仮想メモリプールを提供します。これにより、コンポーネント間のデータ転送が不要になり、レイテンシが低減され、パフォーマンスが向上します。例えば、CPUがデータ処理タスクを完了した後も、データのグラフィック処理が必要な場合があります。この場合、CPUはメモリ空間からGPUメモリにデータを渡し、GPUがデータを処理してCPUに返します。この複雑なプロセスによってレイテンシが増加し、パフォーマンスが低下しますが、共有メモリを使用することで、GPUはCPUが使用していたメモリと同じメモリにアクセスできるため、ソフトウェアスタックが削減され、簡素化されます。

理論的には、HSA は CPU と GPU 間の共有ストレージ ボリュームでうまく機能しますが、AMD は現時点で Radeon Pro SSG で HSA フレームワークのコア機能を実装する作業を行っているかどうかについては回答を拒否しました。

ボトルネックはどこですか?

AMDのデモでは、マザーボードに2基のPCIe 3.0 x4 Samsung 512GB 950 PRO SSDを搭載した通常のRAID 0プールを搭載した高性能システム(+10,000ドル)と、同様のオンボードストレージプールを備えた競合のRadeon Pro SSGカードを比較しました。ワークステーションは、マザーボードに搭載されたRAID 0ストレージアレイを使用して、リアルタイム8Kビデオ編集時に17fpsのフレームレートを実現し、ストレージは848MBpsのスループットを実現しました。

SSG搭載システムは、同じワークロードで驚異的な92 FPSの向上を実現し、オンボードRAID 0ボリュームでは4.59 GBpsのスループット(4.6 GBpsを超えるピークも複数回発生)を達成しました。950 PRO単体では最大2.5 GBpsのシーケンシャルリードスループットを実現しており、この結果はAMDがほぼ線形のRAIDスケーリングを実現していることを示しています。AMDは、この結果を初期のソフトウェアとハ​​ードウェアで達成したと明言しており、プラットフォームが成熟するにつれてさらに高いパフォーマンスを提供できると考えていることを示唆しています。

当初、このテスト結果には多少懐疑的でした。なぜなら、チップセットがほとんどのM.2 SSD RAID実装のボトルネックとなっているからです。PCHとCPU間のデータはDMI接続を介して流れますが、2015年以前のシステムではPCIe 2.0 x4接続(またはそれ以下)に制限されています。一方、最近のシステムでは依然として制限のあるPCIe 3.0 x4接続が採用されています。一部のマザーボードでは、PCH/DMIを回避して、数本のM.2 PCIeレーンをCPUに直接接続していますが、この手法は広く普及しておらず、2台のM.2 SSDでこの手法を採用しているマザーボードは確認されていません。 

DMIはオンボードRAID 0の有効帯域幅を制限しますが、標準PCIeスロット用に設計されたキャリアカードにM.2 SSDを使用するか、隣接するPCIeスロットに専用のPCIe SSDを配置するという選択肢があります。どちらのソリューションもDMIのボトルネックを解消しますが、AMDは、2つのデバイス間の通信に伴うレイテンシとバス競合の増加を考慮すると、SSG実装はP2P接続方式でセカンダリPCIe SSDを使用するよりも実際には高速であると回答しました。また、同社はプレゼンテーションの中で、ほとんどのワークステーションにはストレージデバイスを追加するための空きPCIeスロットがないことも指摘しました。

RAID 0は究極のデータパフォーマンス、拡張性、そして密度を提供しますが、ミッションクリティカルなデータに使用するには本質的に安全性に欠けます。RAID 0はSSDを使用する場合、HDDを使用する場合よりも安全と言えるかもしれませんが、2台のドライブで構成されるRAIDではコンポーネント障害のリスクが2倍になり、RAIDアレイにSSDを追加するごとにリスクが増大するため、依然としてリスクは存在します。

ワークステーションGPUの大部分は企業で使用されているため、データは経済的に重要な意味を持ちます。企業は、偶発的な障害、ひいてはデータ損失を軽視しません。RAID 5や6など、ストレージプールの耐障害性を高める手法はありますが、これらの手法では2台以上のSSDが必要となり、スペースが限られたGPUでは制限要因となる可能性があります。複雑なタイプのRAIDはより多くの処理能力を必要としますが、ストレージが大規模な並列コンピューティングデバイスに接続されている場合はそれほど問題にはなりません。しかし、パフォーマンスの低下、レイテンシの増加、そして使用可能なストレージ容量の減少といった問題も引き起こします。

では、それはストレージでしょうか、それともメモリでしょうか?

業界では、3D XPointやNANDなどの永続メモリを、メモリプール全体の追加レイヤーとして利用できるようにし始めています。これらの技術では、不揮発性メモリ(この場合はNAND)をフラットメモリモデル内のメモリとしてマッピングすることで、RAMの補助として利用します。つまり、システムからは1つの大きなRAMプールしか見えませんが、容量の大部分、場合によっては大部分が他の媒体(NAND、3D XPoint)で構成されることになります。

もちろん、NAND と 3D XPoint は GDDR5 よりも遅いため、システムが GPU が NAND に保持するデータにアクセスする必要がある場合はパフォーマンスに影響がありますが、アドレス指定可能なメモリが指数関数的に増加するという利点は欠点をはるかに上回ります。

Intel/Micronの3D XPointの登場が迫る中、不揮発性メモリをRAMとして利用する技術が注目を集めています。Linuxコミュニティ(pmem.ioがその好例)やWindows(MicrosoftはServer 2016でサポート予定)では、システムメモリと連携した不揮発性メモリの活用を支援する取り組みがいくつか進められており、この技術の基盤整備は着実に進んでいます。

ほとんどの実装は、NVDIMM、UltraDIMM、Memory1など、RAMバス上の不揮発性メモリ(ストレージクラスメモリ)を使用するように開発されていますが、PMC-Sierra Flashtec NVRAMドライブ(レビューはこちら)は、NVMeプロトコルを使用してPCIeバス上でメモリマップデバイスを使用する優れた例です。プロフェッショナルアプリケーション向けのECC RAMは1GBあたり8ドルもかかる場合がありますが、NANDメモリは1GBあたり0.30ドルで購入できます。そのため、256GB Diablo Memory1 NAND DIMM(写真)が示すように、メモリとしてNANDを使用することでコストを削減し、密度を向上させることができます。

AMDは、現在NANDプールをメモリマップドスペースとして使用していないものの、使用することは可能であり、これは技術の論理的な進化であると述べている。また、一部の開発者からフラットメモリモデルへの要望があるとも述べている。AMDはプール全体をストレージとして提供しているものの、将来的にはプールの一部または全体をパーティション分割してメモリとして動作させることが可能になり、これによりアーキテクチャの可能性は大幅に広がるだろう。

Radeon Pro SSGは1TBのSSDストレージを搭載してデビューしますが、これは絶対的なものではありません。同社は、現在入手可能なM.2 SSDの容量が制限要因であり、大容量プールの管理能力ではないと述べています。業界がより高密度な3D NANDに移行していく中で、M.2 SSD 1台あたり最大10TBのストレージを提供するプロジェクトもあり、明確な前進が期待されます。

たとえ大容量のオンボードストレージを搭載していても、より多くのデータを必要とするワークロードは常に存在するため、カードに搭載されたNANDベースストレージに何をキャッシュするかを決定することは困難です。GPUがオンボードストレージプールに存在しないデータを要求した場合、通常のストレージボリュームに保持されているデータを取得するためにレイテンシが発生し、システムのPCIeバスとCPUを経由する長い通信が発生します。こうした要求はキャッシュミスと呼ばれ、パフォーマンスに重大なペナルティをもたらし、場合によっては深刻なスタッターやヒッチングを引き起こす可能性があります。

正しいデータが適切な場所に適切なタイミングで確実に存在するようにすることが、開発者にとって大きな焦点となるでしょう。システムがNANDをストレージまたはメモリとして使用する場合も、同じ原則が適用されます。ただし、GPUがメモリとして使用する場合は、より複雑になり、多くのリソースを消費します。ストレージの世界で見られる他のキャッシュ/階層化実装と同様に、最も頻繁にアクセスされるデータ(ホットデータ)を自動的に検出し、それをオンボードRAID 0プールに事前に移動することで、キャッシュミスを最小限に抑えるアルゴリズムが存在します。多くの場合、キャッシュからどのコールドデータを追い出す(デステージする)かを決定することは、ホットデータを特定することと同じくらい重要です。なぜなら、それが使用可能な容量の効果を最大化するからです。

キャッシュミスは懸念事項であり、既存の先読み技術の中には、キャッシュミスの前後のデータ(連続データ)をすべて取得し、それをキャッシュに単純に引き込むことで、連続ミスの可能性を最小限に抑えるものがあります。しかし、使用履歴に基づいて傾向を検出し、予測的にデータをキャッシュに配置(プリフェッチ)できる、より新しく洗練された機械学習のようなアルゴリズムがあります。ストレージはGPUに隣接しており、GPUはこのタスクで最も一般的に使用されるプラットフォームの1つであるため、機械学習アルゴリズムが最適なアプローチとなるでしょう。現在のメモリ/NAND統合技術では、特定のユースケースに基づいてデータトラフィックの優先順位を決定するQoS(Quality of Service)パラメータを定義することも可能になっています。

AMDは開発者向けにフックも提供しており、選択的にデータをストレージプールに直接ピン留めすることができます。最先端の実装では、最大限の可能性を引き出すために専用のコーディングが必要になりますが、基盤となる階層化/キャッシュアーキテクチャの複雑さを開発者の負担から抽象化する手法も存在します。エコシステムが進化するにつれて、こうした手法が一般的になることを期待しています。これらの洗練された手法により、カスタムコーディングに伴う課題(およびコスト)の一部が解消され、この技術を(少なくとも容易に)利用できるワークロードの数が増えるでしょう。

しかし、Flash は消滅しないのでしょうか?

少なくともAMDの観点から見ると、現在のSSGの最も優れた点の一つは、最新のSSDが自己完結型ユニットであることです。SSDはすべての内部プロセスを管理するため、ガベージコレクション、ウェアレベリング、その他のタスクを介入なしに処理します。AMDは、NVMeとM.2仕様が既存の成熟したプラットフォームを提供し、既存の技術を活用することで開発プロセスを加速できると述べています。3D XPointなどの将来のメモリは既存のプロトコルと仕様を採用するため、プラグアンドプレイ規格を採用する他のメディアとの明確な進化の道筋も示しています。

AMDは、寿命が有限でパフォーマンスにも限界があるSSDの耐久性とパフォーマンスを向上させるため、GPUの制御を活用するさまざまな措置を講じていることを示唆しているが、現時点では詳細は明らかにしていない。512GBの950 PRO 1枚で400TBW(書き込みテラバイト数)の容量があり、SSDをRAID 0に配置すると2つのSSDに作業負荷が分散され、実質的に耐久性が2倍の800TBWになる。つまり、RAIDアレイはSSDの寿命が尽きるまでに1ペタバイト近くのランダム書き込みデータを吸収できる。データの多くは読み取り中心になる可能性が高いため、耐久性は(少なくとも大幅には)低下せず、GPUは書き込みトラフィックをすべて耐久性無制限のGDDR5に吸収し、変更が永続的な場合にのみNANDにフラッシュすることで、耐久性をさらに最適化できる。

AMDは、シーケンシャルデータを使用するだけで、耐久性とパフォーマンスの両方を向上させることができます。SSDベンダーは、過酷なランダム書き込みワークロードに基づいてドライブの耐久性を指定しています。ランダム書き込みワークロードでは、SSDがランダムデータ(定常状態)を書き込む際に必要な読み取り、書き込み、変更プロセスにより、NANDが急速に消耗します。しかし、シーケンシャルワークロードはNANDベースのストレージへの負荷がはるかに少ないため、耐久性が向上します。例えば、Micronは3.2TB 9100 NVMe SSDの耐久性をランダムデータで3.28PBとしていますが、シーケンシャルトラフィックではほぼ3倍の9.6PBになります。開発者がGDDR5をコーディングして、すべての着信書き込みトラフィックを吸収するようにすれば、永続的なデータ変更をNANDに順次フラッシュできるため、NANDの寿命が延びます。

耐久性向上の原理はほぼすべてのフラッシュストレージメディアに当てはまるため、AMDと開発者は同様の技術を採用する可能性が高いでしょう。Radeon SSGは標準のM.2 SSDも採用しているため、耐久性の閾値を超えたSSDは交換可能です。また、AMDが温度や耐久性のデータを含む何らかのSMARTモニタリング機能を搭載することも容易に想像できます。 

シーケンシャルデータはランダムデータアクセスよりも高速であるため、GPUがRAID 0アレイへのすべてのデータの書き込みと読み出しをシーケンシャルに行うことで、高いパフォーマンスと極めて低いレイテンシが保証されます。また、同社が組み込みコントローラーを搭載したカスタムドーターカードを使用して密度とパフォーマンスを向上させることも容易に想像できますが、同社は将来の計画についてはコメントしていません。

熱と電力はどうですか?

SSDは熱に敏感ですが、M.2 SSDはヒートシンクが内蔵されていないため、他のSSDよりもはるかに敏感です。小型SSDは高負荷時や高温時にスロットリングを起こしますが、そのスロットリングは動的に発生することが多く、検知が困難です。いずれにせよ、M.2 SSDを最新のGPUというスペースヒーターの中に設置することは懸念材料となります。

M.2規格にはヒートシンクの取り付け方法が標準化されていませんが、Plextor M8Peなど、一部のM.2 SSDではカスタム設計が採用されています。また、M.2 SSDと接続して冷却効果を高めるキャリアカードや、水冷アダプターもいくつか存在します。

AMDは、自社の仕様とTDPの範囲内でSSDのスロットリングは発生していないと発表しましたが(実際のTDPは公表していません)、同時に、SSDを冷却するためにアクティブ冷却システムを併用することも示唆しました。つまり、GPUヒートシンクがM.2 SSDに取り付けられるということです。ほとんどのSSDは85℃前後でスロットリングが始まりますが、大型のアクティブ冷却ソリューションであれば、高負荷使用時でもSSDをこの温度閾値以下に抑えることができるはずです。

Samsungは950 PROの消費電力を5.1Wと発表していますが、ワークステーションGPUであれば、このわずかな消費電力はほとんど問題になりません。最近のGPUはオンボードメモリのせいで消費電力の限界に達しつつあります。そのため、将来的にGPUがNANDメモリを採用するようになれば、過剰な消費電力への懸念を軽減し、より多くのメモリをアドレス指定できるようになる可能性があります。  

実際のユースケース

AMDのSSGが大きなメリットをもたらす可能性のあるユースケースはほぼ無限にあります。ゲノムシーケンシング、メディア&エンターテインメント(M&E)、医療画像、石油・ガス探査など、ほんの一例です。例えば、石油・ガス探査では、複数の大規模データセットを同時に使用します。メモリを桁違いに拡張することで、観測範囲を数マイルから地域全体にまで広げることができ、生産性を向上させ、トレンドを特定する能力を高めることができます。

一部の医用画像アプリケーションは、心臓の鼓動などの体内のプロセスをリアルタイムで画像化できるため、医師は静止した2D画像とは比べものにならないほど鮮明な画像を得ることができます。リアルタイム表示は医師の診断精度を向上させますが、膨大なデータ量のため、現状では表示時間は数秒に限られています。一方、Radeon SSGに搭載された拡張ストレージは、表示時間を数分にまで延長する可能性があります。

管理者は、データセンターにおいて機械学習やデータベースパフォーマンスの向上など、より多様なユースケースにGPUを活用しており、より大きな作業データセットを持つことで、これらのアプリケーションの範囲とパフォーマンスも拡大できます。

ストレージとメモリの境界線が曖昧に

多くのファイル転送操作ではオペレーティングシステムが障壁となるため、データをGPUに直接転送することで、AMDは大規模データセットのパフォーマンスを容易に向上させることができます。リアルタイムタスク中のファイル転送におけるPCIeバス上のトラフィックを削減することで、バスの競合が軽減され、他にもメリットがあります。

現在の実装では、SSDは頻繁にアクセスされるデータのストレージボリュームとしてのみ使用されていますが、技術がメモリマップドモデルへと進歩するにつれて、パフォーマンスの向上はさらに顕著になるはずです。ストレージ愛好家は長い間、NANDの使用方法を非難してきました。それは、ほぼ5年間準主流として使用されてきたにもかかわらず、私たちはまだその潜在能力を最大限に活用していないからです。しかし、業界がNANDをメモリ階層に統合する革新的な方法を開発するにつれて、私たちはその真の能力を実現することに近づいています。コンピューティングにおける最大の進歩のいくつかは、NANDをPCIeまたはメモリバスに移行することでデータをCPUに近づけることから生まれました。Radeon Pro SSGも同様のアプローチを採用し、データをGPUコンピューティングリソースに近づけています。

NANDはDRAMよりもはるかに安価で、消費電力もGDDR5の数分の1です。GDDR5は、ベンダーがカードに搭載できるメモリの最大容量を制限する要因にもなっています。コストと消費電力の削減は大きなメリットであり、この技術は急速に普及し、進化していくと予想されます。

AMDは2017年に発売予定の開発キットを販売していますが、これらは最先端製品であることを考えると、エンスージアスト市場への浸透にはしばらく時間がかかるでしょう。しかし、いずれはそうなるでしょう。特に1920x1080解像度のゲームデータのほとんどは、GDDR5の容量範囲内に収まります。しかし、ゲームがより要求の厳しい4Kや8K解像度(特にマルチモニター)に移行するにつれて、より多くのメモリが必要になるため、この技術が主流になるには至らないでしょう。

ほぼ定義上、膨大なデータセットを使用するVRへの影響は計り知れません。タイムラインを見ると、NAND搭載GPUは当分の間、登場が見込まれており、エンスージアスト向け製品が市場に登場する頃には、M.2 SSDあたり4TBの容量に達している可能性もあると予想されます。これは非常に喜ばしいことです。エンスージアスト向けGPUに初めて搭載されるオンボードSSDは、VRワークロードに特化したものになるとほぼ予想できます。

Radeon Pro SSGの素晴らしい点の一つは、AMDが未来を見据え、フラットメモリモデルを支えるハードウェアコンポーネントの開発に着手していることを明確に示している点です。また、同社は将来的には、3D XPointのような、より大容量、高速、そして耐久性の高いパーシステントメモリ技術の基盤も築いていることは明らかです。


詳細: 最高のSSD


詳細: 最高の思い出


詳細: 最高のグラフィックカード

ポール・アルコーンはTom's Hardware USの編集長です。CPU、ストレージ、エンタープライズハードウェアに関するニュースやレビューも執筆しています。