Microsoft说明DirectStorage特色,看懂RTX IO技术有何优势

NVIDIA在GeForce 30系列显卡发布会上,透露了将会导入以DirectStorage为基础的RTX IO资料访问技术,达到降低处理器至占用率并提升访问性能的功效,而Microsoft也在DirectX Developer Blog说明了DirectStorage特色。

先前Microsoft就已在Xbox Blog说明Xbox Velocity Architecture架构技术,其中的定制化固态硬盘部分提到Xbox Series X主机搭载专1TB NVMe固态硬盘,可以提供2.4GB/s的I/O吞吐量,是Xbox One的40倍,并提高持续性能表现(Consistent, Sustained Performance),而不像PC使用的固态硬盘冲高峰值性能表现(Peak Performance),通过提供I/O性能保证值,协助开发者进行游戏优化。

Xbox Velocity Architecture中的DirectStorage也将成为DirectX家族API的一员并登陆PC,让PC玩家也能享受缩短游戏读取时间、3D场景更加细腻等体验。虽然这2个特色看来毫无关联,但是都是受益于I/O性能提升,让游戏能缩短加载资料的时间,并快速读取更多如角色服装、风景等贴图材质,让游戏画面更加生动。

在过去的游戏中,可能每秒只需访问50MB的资料,假设文件集群的大小为64KB(如单一贴图材质),整体I/O量也只有800次,对存储设备与处理器的负担还不大,但若以Xbox Series X主机固态硬盘的2.4GB/s吞吐量计算,整体I/O量就会飙升至39,000次左右。

考虑到现有API在管理访问需求时,需要经过“提出请求、等待读取、完成处理”(Submitting the request, waiting for it to complete, and then handling its completion)等程序,虽然每次访问的性能虚耗并不会很大,但当I/O量变得相当庞大时,对高性能的NVMe固态硬盘也是一大考验。为了要改善这种状况,就需将游戏所需的文件先行压缩以降低整体I/O量,而解压缩则会增加处理器或显卡的运算负担。

DirectStorage技术将可以解决这个问题,通过降低每次访问的性能虚耗、批次平行处理多个访问需求,或先行压缩文件以降低整体I/O量,以发挥最大化资料吞吐量以充分利用存储设备的所有I/O管线,此外甚至可以不通过处理器直接将资料送至显卡,让游戏程序能更精细调度访问需求。

DirectStorage的运行除了依赖更高的传输带宽之外,它还需搭配NVMe接口固态硬盘的硬件资料访问队列(NVMe Queue)功能,通过单一NVMe固态硬盘具有多个队列,且每个队列可以同时处理多个访问需求的特色,发挥平行处理的效果,并给予开发者直接控制这些存储设备的能力,以达到优化读取性能的功效。

另一方面,NVIDIA也于Reddit讨论区的Q&A中回复了许多关于以DirectStorage为基础的RTX IO技术的问题。其中比较重要的信息包括RTX IO将仅支持Windows 10操作系统与NVMe固态硬盘,但不会要求固态硬盘的性能表现,但速度越快的固态硬盘当然能带来更出色的游戏体验。

Microsoft也会将Xbox Series X主机使用的DirectStorage API下放至PC,让PC玩家也能享受同样的游戏体验。

在导入DirectStorage与RTX IO之前,系统需先通过处理器将资料读取、解压缩后再送到显卡,将造成费许多性能虚耗。

导入之后,系统可以直接进行平行化资料访问,并将资料直接送至显卡,甚至可以在显卡上进行解压缩。

目前Microsoft已开始与产业伙伴合作共同着手DirectStorage设计与开发,并预计于2021年将DirectStorage开发者预览版交至游戏开发者手中,所以玩家还需要等待不短的时间才能享受这项全新技术。