Re: [情报] Windows 10将会使用新的DirectStorage API

楼主: s25g5d4 (function(){})()   2020-09-04 14:08:22
来自微软的部落格文章
https://devblogs.microsoft.com/directx/directstorage-is-coming-to-pc/
TL;DR:
1. 透过平行化与批次处理减少 IO 请求,进而减少多余的请求成本
(提高 throughput)
2. 减少 IO 请求完成通知,避免浪费宝贵的 CPU/GPU time 在上面
3. 跳过非必要 IO 请求步骤以减少请求成本
4. 可能会有新的压缩 / 解压缩技术
5. 仅适用 NVMe,因为 NVMe 有特别的资料伫列
6. 明年推出预览版
首段废话我就不翻了
## 储存科技进化与现代游戏 IO 特征
近年来 SSD 与 PCIe 科技的进步,或更精确的说 NVMe 科技,令个人电脑储存装置频宽
远超过旧时硬盘科技。比起过往的数十 MB/s,现代储存装置,例如即将到来的 Xbox
Series X 主机所采用之客制 NVMe,可以在一秒内传输数 GB 的资料。
电脑游戏的运作机制也更进步了。现代游戏加载所需的资料比起过往都来得多,加载的方
式也比以前更聪明。为了加载更大量的资料已填满内存,这些读取最佳化技巧是必要的
。现代游戏将贴图材质等游戏资源分拆成小部分,过去曾采用的多量少次读取机制,已被
当代主流的少量多次机制取代,仅加载绘制画面所需的资源。这种方法可以带来更佳的记
忆体使用效率,及更好的场景绘制,但也会产生更多的 IO 请求。
不幸的是,现代储存接口并没有针对如此高的 IO 数量最佳化,造成瓶颈而无法用光
NVMe 装置所有的高频宽,限制了现代游戏的发展。即使采用再高级的游戏主机与 NVMe
装置,仅使用现有的接口也无法满足所有 IO 管线而浪费了宝贵的频宽。
这是为什么我们将 DirectStorage 带来个人电脑上。这项新技术便是针对现代越来越进
步的储存科技与游戏 IO 而来。DirectStorage 将会支援满足特定条件的系统与 NVMe 装
置,并将游戏体验提升至更高的境界。但即使你的系统不支援 DirectStorage,这并不会
令你无法进行游戏。
## DirectStorage 将会如何改变我的游戏体验?
新接口将会带来两点主要特性:减少过往令人恼火的加载时间,并提升游戏细节与广度。
虽然两项特性看起来天差地远,两者皆是受益于 DirectStorage 带来的 IO 系统升级。
不管是角色服装的贴图材质,或是远景的高山,皆与从储存装置加载资料至显示卡息息相
关。前者可以在场景转换间的加载时间读取,而后者则是在开放世界游戏中随着角色人物
移动,随着远景变成近景而动态加载。
在上述两种场景中,旧世代游戏仅有 50 MB/s 左右的速度以加载连续不中断的游戏资源
,仅可达每秒百次、每次 64KB 的 IO 请求。若放到现今频宽动辄数 GB 每秒的 NVMe 装
置上,要完全用完可用频宽,将会使 IO 数量爆增至每秒数万次。以 Series X 的
2.4GB/s 储存装置来说,一样使用 64KB 区块大小,若要用完频宽,必须处理每秒超过
35000 次的 IO 请求。
现有的接口令应用程式必须手动处理从发起、等待到结束的过程,且一次一个请求。每次
请求成本虽然不太大,对跑在慢速储存装置上的旧有游戏来说不是问题,但当规模放大到
数万次每秒时,过多的请求成本成为当代游戏对 NVMe 装置频宽的使用瓶颈。
除了上述限制,这些储存在装置上的游戏资源还处于压缩状态。当处理器或显示卡需要这
些资源时,这些资源必须先被解压缩才能使用。执行中的电脑游戏可以从磁盘取得任意数
量的资料,但需要更有效率的解压缩方法并传输到显示卡以绘制画面。DirectStore 可以
让游戏采用当代最新,及未来可能发展的解压缩技术。
当一款游戏需要加载并解压缩数千区块资料以绘制下个画面时,现有每次一个请求的模型
是没有效率的。DirectStorage 技术接口将改善上述问题,并最大化吞吐量以喂满整个
NVMe 装置所有 IO 管线,并直送至显示卡。
DirectStorage 将采用下述方法:减少每个 NVMe 请求的成本、批次处理平行 IO 请求以
最佳化资料传输至显示卡的效率、赋予游戏更细微的控制粒度以掌控 IO 请求完成通知,
避免每次收到一点资料就必须响应通知。
透过这些方式,开发者将能够以数倍于过往的超高效率处理 IO 请求,最终得以最小化游
戏加载时间,带给玩家随着角色移动同时加载更大、更细致的虚拟世界。
## 为什么是 NVMe?
NVMe 装置除了拥有极高的频宽,独有的硬件资料存取管线(NVMe 伫列)更特别适合游戏
运作方式。为了从储存装置取得资料,作业系统向装置送出请求,而请求的资料将透过此
伫列传输至应用程式中。每个 NVMe 装置具有多个伫列,且每个伫列可以同时储存多个请
求资料。这个模型完美符合现代游戏加载资料的平行化、批次处理运作方式。
DirectStorage 作业模式本质上即是给予开发者直接控制这些高度最佳化装置的能力。
在此之上,现有接口造成从应用程式发起请求、到储存装置处理完毕之间,多了不少多余
的步骤,而产生不必要的请求成本。这些多余的步骤包含了 IO 操作中间的各种资料变换
。但是,这些步骤不见得在每一个请求、每一个 NVMe 装置、每个游戏主机中都是必要的
。透过支援的 NVMe 装置与配置正确的主机,DirectStorage 可以自动侦测并跳过这些非
必要的检查与操作,使每个 IO 请求成本降低。
上述这些理由便是为何 NVMe 储存科技是 DirectStorage 与新世代高效能游戏 IO 最适
合的选择。
## 什么时候可以取得更近一步的细节?
每个的 DirectX 家族功能,微软都会与最好的游戏工业厂商探讨并立下标准,让游戏开
发者得以取用,最终带到玩家的游戏主机中。
我们已经开始 DirectStorage 的开发程序,并与我们的产业伙伴合作以完成设计接口与
伴随的组件。我们的目标是明年将 DirectStorage 开发者预览版交至游戏开发者手中。
作者: justin091136 (justin091136)   2020-09-04 14:12:00
学长安安 ><

Links booklink

Contact Us: admin [ a t ] ucptt.com