¿Cómo funciona NVIDIA RTX IO y por qué da igual qué CPU tengas?

¿Cómo funciona NVIDIA RTX IO y por qué da igual qué CPU tengas?

Josep Roca

Una de las tecnologías que NVIDIA presento junto a la última generación de las tarjetas gráficas GeForce fue RTX IO, que estará disponible para las gamas 20×0 y 30×0 de NVIDIA. Gracias a esta tecnología las tarjetas gráficas de estas gamas de NVIDIA pueden acceder al SSD conectado al PCI Express como si fuese memoria de la propia gráfica sin apenas participación de la CPU. ¿Cómo funciona?

El RTX IO permite el acceso al SSD por parte de la GPU independiente de cuál sea la arquitectura de la CPU que tengamos instalada en el sistema, ya que es la propia GPU la que se encarga de acceder a los datos del SSD, característica que antes no se encontraba implementada. Al menos en las GPU de NVIDIA, ya que una implementación menos avanzada la habíamos visto con el HBCC de AMD integrada en sus gráficas Vega.

SSD M.2El RTX IO es la implementación a nivel de hardware del DirectStorage que Microsoft ha implementado en DirectX 12 Ultimate y que se trata de una API que permite que podamos acceder a un espacio de memoria más allá de lo que es la RAM de vídeo. Y por tanto se puedan pedir datos concretos a un disco SSD conectado a un puerto PCI Express.

¿Por qué con NVIDIA RTX IO no actúa la CPU en el proceso?

Para entender el motivo por el cual la CPU no actúa en el proceso hemos de entender como la GPU accede a la memoria del sistema. Toda GPU independientemente de su arquitectura puede acceder a dos pozos de memoria distintos:

  • Su memoria local, que es la memoria incluida en la tarjeta gráfica (VRAM).
  • La memoria del sistema (donde la CPU deja de sus datos).

Para acceder a la segunda utiliza una o varias unidades DMA que se comunican con la RAM del sistema a través del bus PCI Express hacía la memoria.

Diagrama GPU SSD Acceso

¿Recordáis los sistemas en SLI y Crossfire donde teníamos dos tarjetas en un mismo sistema? Pues el mecanismo para comunicarse con un SSD conectado a un puerto PCI Express sería exactamente el mismo.

El motivo de ello es que pese a que tenemos diferentes entradas PCIe en el PC, a nivel del controlador de E/S (el Southbridge) todas se concentran en el mismo controlador y esto permite que todos los dispositivos conectados a los puertos PCI Express puedan enviarse datos entre sí, lo que entre otras cosas incluyen el SSD (si se encuentra conectado al mismo controlador PCIe).

El SSD como extensión de la memoria de la GPU

La GPU a la hora de acceder al SSD lo trata como si fuese memoria RAM, por lo que en cada instrucción con acceso a RAM hace una petición a la dirección de memoria concreta donde se encuentra el dato de manera directa. A través de una serie de mecanismos completamente transparentes, cuando se pide un dato que está en el SSD y no en la memoria se busca el dato en el SSD y se copia directamente en una parte de la RAM que se utiliza como caché para el SSD.

Demo de Unreal Engine 5

Esto permite tener virtualmente una gran cantidad de memoria disponible al sistema e ir más allá de los límites de la VRAM para acceder a ciertos datos. Solo se necesita que la GPU los pida de antemano para que sean copiados en la RAM.

Por ejemplo, en un juego de mundo abierto, si nos acercamos a una nueva zona entonces la memoria puede eliminar las texturas y demás datos que ya no son necesarios de la RAM y cargar de nuevo desde el SSD. Por ejemplo, la demo del Unreal Engine presentada hace unos meses tenía un pozo de «solo» 768 MB para copiar datos desde el SSD hacia la RAM de la gráfica.

Descompresión de datos en tiempo real con una CPU modesta

Una de las cosas que trae consigo RTX IO y que se encuentra desde las RTX 20×0 es una unidad de descompresión de datos a tiempo real.

Dicha unidad toma los datos comprimidos como entrada desde el SSD, realiza la descompresión al vuelo y envía los datos ya descomprimidos a la memoria de la gráfica.

RTX IO Descompresor

La unidad tiene una velocidad de descompresión de los datos que para igualarla utilizando la CPU, que para realizar la misma tarea en concreto a la misma velocidad que el descompresor del RTX IO, requeriría una gran cantidad de núcleos.

Con esto, los de Huang se aseguran un mejor rendimiento gracias a su tecnología NVIDIA RTX IO, que conseguirá paliar el GAP de rendimiento entre CPUs muy potentes y CPUs mucho más modestas.

Discos sólidos en tu tarjeta gráfica

Radeon SSG

Hace unos años, AMD presento las Radeon SSG, las cuales era una tarjeta gráfica AMD Vega a la que se le habían añadido discos sólidos aprovechando la capacidad que le daba el HBCC a dichas GPUs de acceder a memoria más allá de la VRAM.

Existe la posibilida que de cara a un futuro lejano en vez de ver tarjetas gráficas con mayor cantidad de VRAM en forma de utilizar más chips de memoria lo que veamos sean discos sólidos integrados en la gráfica, algo de lo que la tecnología RTX IO de NVIDIA se beneficia ya que su funcionamiento es casi igual que el del HBCC de AMD, siendo en realidad una versión más avanzada de la tecnología de AMD.