Microsoftは9月1日(現地時間)、DirectXに追加される予定のAPI「DirectStorage」について詳細を公開した。
DirectStorageは、NVMe接続のストレージと組みあわせたさいに、ゲームのロード時間を大幅に短縮したり、ゲーム自体の拡張性を高めるもの。同社の次世代家庭用ゲーム機「Xbox Series X」で採用されるアーキテクチャ「Xbox Velocity Architecture」のなかにAPIとして含まれていた。これが、今後Windows 10でも利用可能となる。
ストレージ技術の進歩により、NVMeストレージでは数GB/sといった高速なデータ転送が可能となったことで、ゲーム側でもデータ読み込みの最適化が進められてきた。具体的には、一度に大きなデータをメインメモリやVRAM上にロードするのではなく、データを小さく分割し、レンダリング中のシーンに必要なものだけをロードしていく。この手法ではIOリクエストが大量に発生するが、メモリを効率的に活用でき、高品質なシーンを提供できる。
NVMeストレージは、OSからのリクエストに応じて、NVMeキューを通じてアプリケーションにデータを送るが、複数のキューを同時に利用でき、各キューに多くのリクエストを保持できるため、ゲームのワークロードの特性にも適しているという。一方で、既存のストレージAPIはこういった大量のIOリクエストに適していないため、高性能なハードウェアとNVMeストレージを使用していても最大限活用できず、ボトルネックとなっていた。
そこでDirectStorageでは、NVMeストレージからGPUまでのパイプライン全体で性能を最大化するよう設計。各IOリクエストでのオーバーヘッドを減らしたり、並列化したリクエストを効率的にGPUに送ったり、リクエスト完了の通知を受け取るタイミングを細かく制御可能にする。これにより、膨大なIOリクエストを効率的に処理でき、ロード時間の短縮などを実現する。
本APIはNVMeストレージを搭載した特定のシステムをサポート。現在開発が進められており、2021年にはプレビュー版を開発者に提供する予定だとしている。
※コメント投稿者のブログIDはブログ作成者のみに通知されます