Aumenta el rendimiento en juegos de tu PC con tu SSD y DirectStorage

Aumenta el rendimiento en juegos de tu PC con tu SSD y DirectStorage

Javier López

Llevamos tiempo hablando sobre los nulos beneficios que hay en gaming entre un SSD SATA 3 y un NVMe M.2, donde más allá de que en otros escenarios sí podamos notar mejoría, en el mundo de los juegos tenemos actualmente un importante cuello de botella. Microsoft y la industria de los juegos se van a unir para presentar la solución a esto y lograr que el rendimiento despegue como ya lo han conseguido en las consolas de nueva generación. Todo mediante una nueva API que ha sido denominada como Microsoft DirectStorage.

Es curioso como esta vez ha sido el sector de las consolas el que ha tenido que innovar para sacar partido de un cuello de botella que tenían hasta ahora: la velocidad de sus discos duros/SSD. Dos nuevas API desarrolladas por un lado por SONY y por otro por Microsoft van a hacer que el mundo del PC termine por impulsar el rendimiento casi sin quererlo, y aunque vamos tarde la mejora será bienvenida.

Microsoft DirectStorage, la mejor tecnología IO para PC y consola

Microsoft-DirectStorage-3

Fue en la presentación de las innovaciones tecnológicas de Microsoft donde los de Redmond presentaron su «Velocity Architecture«, una parte fundamental para lograr un mejor rendimiento de su nueva consola Xbox Series X y sobre todo de su nuevo sistema de almacenamiento de alto rendimiento basado en NVMe.

La necesidad llevaba tocando a la puerta del PC más o menos 3 años, quizá algo más, pero Microsoft no terminaba de definir un estándar, una API para la industria y su sistema operativo.

Microsoft-DirectStorage

Llegado el momento de impulsar su XSX, va a hacer lo propio con PC lanzando bajo DirectX 12 Ultimate esta nueva API diseñada para reducir los tiempos de carga y lograr un mejor rendimiento en los juegos, así como unas texturas más ricas por poder representar de mejor manera y más rápidamente más elementos en pantalla.

¿Por qué es necesario Microsoft DirectStorage en PC?

Microsoft-DirectStorage-2

A diferencia de las consolas o al menos en gran medida, en PC se necesita mucho ancho de banda para poder presentar en pantalla tanto efectos de postprocesado, filtros de imagen o simplemente una resolución determinada a una tasa de FPS muy elevada.

Por ello, los juegos más avanzados cargan una cantidad de datos cada vez mayor, dando como resultado más datos en la memoria compartida hacia la memoria de la GPU. Para hacer esto hay dos caminos:

  • Realizar solicitudes de IO de gran tamaño y poca cantidad.
  • Realizar solicitudes de IO de pequeño tamaño y mucha cantidad.

Los motores más actuales están girando hacia esta segunda opción visto que la RAM apenas aumenta de velocidad y que hasta el año pasado seguíamos con PCIe 3.0, así que para no colapsar buses ni ningún sistema con IO se cargan partes pequeñas que mejoren el flujo de datos.

A cambio se genera una alta tasa de solicitudes E/S, algo que los SSD NVMe debían de solventar con mayor simplicidad que los SATA 3 y ni qué decir de los HDD. Pero el problema que se encontró la industria es que, aunque en términos teóricos así debía ser, el software no estaba preparado para ello, dejando a las APIs actuales con serios problemas de escalabilidad y creando cuellos de botella bastante serios.

¿Qué va a hacer esta nueva API por el gaming y cómo lo hará?

Microsoft-DirectStorage-4

Lo primero que debemos saber es que hay que diferenciar las diferentes etapas de E/S de un juego, ya que en todo momento no se aplican las mismas IO. Según Microsoft, la transmisión de archivos media de un juego hasta ahora era de unos 50 MB/s sostenidos, normalmente en bloques pequeños, donde precisamente más sufre un SSD en tasas de transferencias.

Las APIs actuales tienen que enviar la solicitud de cada IO, esperar a que la CPU la complete y una vez hecho se ponen a trabajar para derivar el resultado a la memoria de la GPU. A esto hay que sumarle la compresión de los propios archivos a trabajar, por lo que se añade un paso más que ralentiza el proceso, ya sea para mandar la información a la CPU o a la GPU.

En cualquier caso, descomprimidos y trabajados van a terminar en la GPU, el problema es el timing y el ancho de banda con el que lo hacen. Microsoft DirectStorage terminará de un plumazo con todos estos problemas, ya que usará los mejores algoritmos de descompresión existentes en cada momento, terminará con el cuello de botella de E/S maximizando todo el proceso de IO desde el NVMe hasta la GPU mediante solicitudes en paralelo y sobre todo, brindando a los desarrolladores un mayor control sobre cómo la información debe ser tratada en cuanto a E/S se refiere.

El último avance será la detección por adelantado de los pasos innecesarios para que la información llegue de la manera más rápidamente posible. Para ello se podrán omitir comprobaciones de operaciones que antes eran necesarias, por lo que cada IO tendrá menos penalización de rendimiento y llegará de forma más directa a su destino, sea CPU, RAM o GPU.

Por último, Microsoft DirectStorage llegará en algún momento de 2021, donde ya se especula que podría ser en el primer trimestre para aprovechar el empuje de las consolas y promocionar la tecnología, así que habrá que estar atentos para comprobar si efectivamente notamos mejoría una vez se implemente.