DirectStorage API、Windows 10 バージョン 1909 以降で利用可能に 36
ストーリー by headless
提供 部門より
提供 部門より
Microsoft は 6 月に Windows 11 を発表した際、DirectStorage テクノロジーが Windows 11 限定で提供されると説明していたが、Windows 10 でも利用可能になるようだ( DirectX Developer Blog の記事、 BetaNews の記事、 Ars Technica の記事、 Ghacks の記事 )。
DirectStorage はストレージテクノロジーの進歩に合わせ、ゲームデータのロードを高速化する DirectX ファミリーの API で、当初は Xbox Series X に Xbox Velocity Architecture の一部として導入された。昨年 9 月には Windows PC での提供計画が発表されていたが、Windows 11 発表時には Windows 11 限定で提供とされた。
Microsoft によれば、DirectStorage SDK は DirectX 12 Agility SDK と同様に Windows 10 バージョン 1909 以降と互換性があるという。ただし、Windows 11 は DirectStorage の利用を想定して構築されており、ストレージスタックが最適化されていることから DirectStorage の潜在能力全てを利用可能になるとのことだ。
DirectStorage はストレージテクノロジーの進歩に合わせ、ゲームデータのロードを高速化する DirectX ファミリーの API で、当初は Xbox Series X に Xbox Velocity Architecture の一部として導入された。昨年 9 月には Windows PC での提供計画が発表されていたが、Windows 11 発表時には Windows 11 限定で提供とされた。
Microsoft によれば、DirectStorage SDK は DirectX 12 Agility SDK と同様に Windows 10 バージョン 1909 以降と互換性があるという。ただし、Windows 11 は DirectStorage の利用を想定して構築されており、ストレージスタックが最適化されていることから DirectStorage の潜在能力全てを利用可能になるとのことだ。
DirectStoragePath (スコア:0)
どうせいならOneDriveやGoogleDriveなどをSANストレージとしてソフトウェアRAIDでアタッチできるようにしてくれたら面白いのに
Re: (スコア:0)
Direct XでOneDriveを使う必要性が見当たらないんだが…せいぜいセーブデータの同期ぐらいか?
Re:DirectStoragePath (スコア:1)
アップデートにかかる時間がゼロになるとか?
DB用APIかとおもった (スコア:0)
最初、データベースソフト等データの一貫性が必要なソフト向けに、
ファイルシステムやキャッシュとかすっ飛ばしてRawアクセスするAPIとおもったら、
想像とまったく違うAPIだった
Re:DB用APIかとおもった (スコア:1)
FSCTL_MARK_HANDLEとFSCTL_GET_RETRIEVAL_POINTERS使えば昔から可能なことだそれは
MS製品がとっくにやってることなんだからさ
https://techcommunity.microsoft.com/t5/failover-clustering/cluster-sha... [microsoft.com]
Re: (スコア:0)
WindowsでRawアクセスが可能なこと自体は正しいけど、FSCTL_MARK_HANDLEとFSCTL_GET_RETRIEVAL_POINTERSはどこから出てきたの?
あなたの貼ったリンク先には一言も説明されていないし、どちらも明らかにファイルシステムを意識する機能なんだけど
https://docs.microsoft.com/en-us/windows/win32/api/winioctl/ni-winioct... [microsoft.com]
https://docs.microsoft.com/en-us/windows/win32/api/winioctl/ni-winioct... [microsoft.com]
Windowsでは単にボリューム自体をファイルのように開くことでRaw
Re:DB用APIかとおもった (スコア:1)
ファイルシステム上のファイル対してファイルシステムを介さずにアクセスするのにこれらを使う
RAWボリュームは可搬性が悪いのでWindows向けソフトでは普通は使わない
Re: (スコア:0)
ファイルが連続していなくてフラグメンテーション起こしていたら厄介
それはどうするんだろう
それと、1レベルくらいは仮想化入っているよね
# シリンダ・トラック・セクタでアクセス?
Re: (スコア:0)
(あえてDirectStorageの説明はよまない)
わかった、あれだ、CPUをバスリクエストで止めてDMAで一気に読み込み/書き込みをするんだな。
Re:DB用APIかとおもった (スコア:1)
Re: (スコア:0)
そこで緑電子がボードを開発して・・・
Re: (スコア:0)
すでにこのAPIを使ったDBの高速化案件がウォーミングアップを始めてるに違いない
Re: (スコア:0)
> ファイルシステムやキャッシュとかすっ飛ばしてRawアクセスするAPIとおもったら、
それは「ダイレクト・アクセス」ってやつで、太古の昔からある概念では?
ReadyBoostのDirectX版 (スコア:0)
アプリケーションの起動を加速するとして昔流行ったReadyBoostのDirectX版といったところだ。
ReadyBoostではログを解析して先読みによる自動制御だったが、DirectStorageは必要なデータを一番知っているのはアプリだというところからアプリがより細かく制御できるようになっている点が進歩といったところだろう。
Re: (スコア:0)
ということは、HDDにゲームをインストールしていた場合には効果絶大だが、そもそもゲームをSSDにインストールしていた場合には効果がそれほどでもないのかな。まあ、ゲームアプリが巨大化しているし、HDDにインストールしていてもSSDによる高速化の恩恵を得られるなら、便利だろう。
Re: (スコア:0)
HDDにゲームをインストールしてる場合は関係ない
SSDにインストールされている場合に高速化する
要は
1) メインメモリを経由せず直接VRAMにデータを送る
2) 圧縮ファイルの解凍処理をCPUじゃなくてGPUでやる
の2点がメリットで
HDDの場合はセクタの割り出し待ちでどうせCPU時間はヒマしてるからその間にやればいいだけだけど、SSDだと瞬速で読み出せちゃうんでそんなことにCPU使わずにGPUでやりたいって話。
Re: (スコア:0)
何も考えずに同期読み込み、みたいな感じにはならないのか
Re: (スコア:0)
RTX IOの類https://ascii.jp/elem/000/004/025/4025926/をDirect X経由で扱えるようにしたついでにNVMeのような高IOPSのストレージに最適化したって感じではないかと。
アプリケーションの動作を高速化するのもIO処理の改善で実現するのも一緒ですが後は全然別物ですな。
ReadyBoostはメモリにデータをキャッシュする方式だけどDirectStorageはメインメモリを経由しないので。
NVMeみたいな高IOPSストレージってahciとかSATAみたいな低IOPSを前提にした制御方式と相性悪いんですよね。制御がボトルネックになっちゃうから。
ゲーム以外で相性が良さそうなのはCG制作GPGPUですかね。んでもってGPGPUといえばまいにんぐ〜。
NVDIMM-N (スコア:0)
DB用では、NVDIMM-Nで不揮発メモリにDBを置いてRawアクセスする方法が別途ある。
どうせなら (スコア:0)
WSL2もDirectLinuxとか名付ければよかったのに。
Re: (スコア:0)
昔からMSってDIRECTとかACTIVEとかXとか好きだよなあ。あと~EX
Re: (スコア:0)
発端がズバリMSXだし
Re: (スコア:0)
実質的にはMSXは西(アスキー)の製品だと思ってる
MS本社は乗り気じゃなかっただろ
Re: (スコア:0)
日本語が直接使える DirectPerl を希望。
Re: (スコア:0)
ActivePerlってまだメンテナンスされているのか?
Re: (スコア:0)
WSLで間に合うのであえてインストールしなくなったなー。
まぁ、Perlに限らずUnix発祥のWindows版はことごとくWSLの存在だけで滅んだと思うが。
Re: (スコア:0)
それ以前にUnix方面でもPerlは下火になってないか
Re: (スコア:0)
大規模な開発に使わなくなっただけでワンライナーやシェルスクリプトの代用としては一大勢力だと思うが。
# ってか本来はこういう使い方する言語。CGIにPerlが多様されたのって何が理由だったんだろうな。
Re: (スコア:0)
文字列処理に都合がよかったからでは?
なお、それ以降web用に流行った言語では、webプログラミングするのに都合のいい文字列処理関係の機能がしっかりしてる
Re:どうせなら (スコア:2, 興味深い)
今でこそLinuxや*BSDなど、スクリプト言語を選び放題の環境がほとんどですが、
その昔のWebサーバはSolarisとかAIXとかHP-UXとかが主流で、
標準で入ってるスクリプト言語と言えばPerlかくらいしかなかったのですよ
(シェルも環境によってはbsh/csh/kshなどバラバラでしたし)。
しかもこれらの商用UNIXの場合、コンパイラは別途有料の商品だったりもしましたし。
Re: (スコア:0)
あとはシェルを直接使うより安全だったってことかな。
system()とか使っていなければ今で言うコマンドインジェクションが通りにくい。
コンパイラは当時からgccが移植されてたのでCで書いてあるのもそこそこ多かった印象。
Re: (スコア:0)
レンサバだとコンソール使えず、コンパイルも出来ないのでperlしかなかったパターンも。
Re: (スコア:0)
「Live」とか「One」もな
なんでも型から入って全部変えてからすぐ飽きる、意識高い系戦略
Re: (スコア:0)
飽きた以前に成功しなかった
Re: (スコア:0)
Directなんちゃらはゲーム系の技術の頭につけるのがMSの命名規約なのでWSLはちょっと違うかな。
Re:どうせなら (スコア:1)