Microsoft plans to bring the DirectStorage API developed for the forthcoming Xbox Series X to Windows PCs, and a development preview will be available next year.
According to DirectX Senior Program Manager Lead Andrew Yeung, the focus of the new API is PC gaming. Windows storage APIs have become a bottleneck in the path from data on storage volumes to graphics rendered on the GPU.
More detailed graphics means more data to shift, and with game engines breaking down textures into small chunks for memory efficiency, the number of IO requests has increased. NVMe (Non-Volatile Memory Express) storage has excellent I/O performance: 2.4GB/s in Xbox Series X, according to Microsoft's specifications, but the existing PC storage APIs cannot keep up. Taking full advantage of the bandwidth means more than 35,000 IO requests per second.
The DirectStorage API, like other members of the DirectX family, will bypass many of the steps taken by existing storage APIs to improve performance. The programming model will also allow parallel requests to take advantage of the request queues supported by NVMe hardware.
Another key piece is decompression: since data is typically compressed, rapid decompression is also critical to performance and Yeung promises "the best current and upcoming decompression technologies" in DirectStorage.
Nvidia's RTX IO technology gives high throughput (thin bar) with low CPU usage (blue blocks), by using new storage transfer APIs and decompressing data on the GPU
The goal is the shortest path possible between data on NVMe storage, and uncompressed graphics on the GPU. The outcome, said Yeung, will be greatly reduced load times and smoother and/or more detailed graphics.
There are a host of unanswered questions about the new API. One is compatibility with existing PCs, while another is how useful (if at all) the API will be for other use cases where fast I/O is an advantage.
You're stuck inside, gaming's getting you through, and you've $1,500 to burn. Check out Nvidia's latest GPUsREAD MORE
Xbox Series X uses AMD Radeon graphics, but rival Nvidia is hard at work on this same issue. At the other end of the computing spectrum – HPC rather than commodity gaming – Nvidia has long been focused on the fact that "fast GPUs are increasingly starved by slow I/O" and is developing a solution it calls GPUDirect Storage, with rapid processing of datasets for AI in mind. "GPUDirect Storage enables a direct data path between local or remote storage, like NVMe or NVMe over Fabric (NVMe-oF), and GPU memory," explained solution architects Adam Thomson and C J Newburn.
"Both GPUDirect RDMA and GPUDirect Storage avoid extra copies through a bounce buffer in the CPU's memory and enable a direct memory access (DMA) engine near the NIC or storage to move data on a direct path into or out of GPU memory – all without burdening the CPU or GPU."
GPUDirect is nothing to do with gaming, but the recently announced Nvidia RTX IO technology aims to solve the same problem for consumer PCs. Nvidia said it already supports Microsoft's DirectStorage API: "When used with Microsoft's new DirectStorage for Windows API, RTX IO offloads dozens of CPU cores' worth of work to your GeForce RTX GPU, improving frame rates, enabling near-instantaneous game loading."
A key piece in RTX IO is that the decompression takes place on the GPU and not the CPU so that data is transferred to the GPU while still compressed, which Nvidia says improves I/O performance by a factor of two. RTX IO will be supported in the forthcoming RTX 30 GPUs.
When will gamers get to enjoy all this? Since DirectStorage preview SDKs (software development kits) are not expected until next year, it seems there will be quite a wait. Game developers could opt to code specifically to Nvidia's APIs – Nvidia says it will offer a preview to "a few developers … willing to support very early technology", suggesting that RTX IO is not yet ready despite apparently being supported by the RTX 30 hardware to be released later this month. ®