Nvidia en NX (II)

El  posible pacto entre Nintendo y Nvidia para lo que es NX cuadra con un escenario descrito en una de las patentes de Nintendo de hace unos meses, la cual comente hace unos meses para hablar de que es el mismo concepto que el Grid Computing.

Voy a dividir la entrada en varias secciones.

Compartir Recursos con otros dispositivos

shari

Os recomiendo leer la entrada porque en ella comento la relación de esta idea con algo llamado Grid Computing. Hay que recordar que en la patente de Nintendo se define la utilidad del dispositivo suplementario de dos maneras dependiendo de como este conectado a la consola principal ya que la distancia en las que se encuentran genera latencia y hace que su utilidad como apoyo cambie por completo.

¿Y donde entra Nvidia en todo esto? En primer lugar hemos de tener en cuenta que la patente nos habla de la posibilidad de poder compartir la potencia de la consola y el dispositivo de computación suplementario con otros usuarios.  Pues bien, desde la arquitectura Kepler en adelante que Nvidia permite virtualizar la GPU para que sus recursos puedan ser utilizados por varios usuarios dentro de una red.

1100-grid-1vgpu-deep-dive-5-638

 

Ahora bien, si volvemos a la patente de Nintendo nos informa que los dispositivos de computación suplementaria y las consolas de videojuegos tienen una conectividad entre si que permite compartir los recursos pero que el nivel de apoyo dependerá directamente de la distancia en la que se encuentren respecto al cliente que requiere de dicha potencia.

La distancia en la red se puede medir por latencia entre la consola de videojuegos y el/los respectivo/os dispositivos de computación suplementaria y/o la estimación actual de hops de red entre la consola y dicho/s dispositivos. En términos de la distancia de red un dispositivo cercano tiene pocos “hops” y puede ser utilizado para proveer servicios a casi tiempo real (por ejemplo el procesamiento de gráficos a tiempo real y los efectos de sonido), mientras que los dispositivos que están relativamente más lejos pueden ser utilizados para proveer apoyo asíncrono o suplementario a los eventos ocurridos en la consola (por ejemplo: climatología de los juegos, inteligencia artificial, etc.).

El concepto detrás de esto tal y como explique cuando comente la patente de hace unos meses es el del Grid Computing.

El otro concepto es el de “computación en cuadricula/Grid Computing”, al igual que la computación en la nube se basa en una red descentralizada pero con una diferencia esencial, en este caso cada uno de los componentes de la red dejan parte de su potencia independientemente de donde se encuentren los recursos para alcanzar un objetivo común, en este caso no es solo el procesamiento de la interfaz de lo que se encarga el sistema cliente sino que el sistema cliente también forma parte de la computación pesada…

La idea del Grid Computing es que cada uno de los dispositivos que forman parte de la de la red cedan parte de su potencia para procesar los paquetes que les van llegando, si tienes una red muy amplia de dispositivos puedes dividir los paquetes a procesar en tamaños muy pequeños que se procesen en poco tiempo.

Por temas de latencia debido a la distancia no puedes utilizar la potencia compartida para renderizar una escena a tiempo real utilizando todos los recursos de la red pero si que puedes utilizar la potencia total de la red para otros eventos que afecten al juego. En este caso en concreto estoy hablando de la capacidad de compartir la potencia del sistema para otros usuarios y por tanto estoy hablando en el escenario donde la latencia entre los sistemas es demasiado alta para ayudar al renderizado de los gráficos en tiempo real pero no para otras tareas.

customized-experience-image

Podemos compartir la potencia de la GPU a través de internet con hasta con 16 usuarios distintos dentro de la misma red, obviamente el nivel de poder compartir dependerá de forma directa de la potencia de la GPU que se incluya en la consola. Obviamente el hecho de compartir la GPU afectará el rendimiento visual que tengamos con nuestra consola,  pero la realidad es que se puede compartir la GPU de dos maneras distintas, la primera de ellas en una red a distancia y su utilidad ya la concemos y la segunda es en una red local.

¿Como? En el caso concreto de Wii U hemos visto como en el juego asimétrico pese a generar una imagen para cada pantalla (HDTV+GamePad) en realidad todo se procesa desde la misma consola… A lo que me estoy refieriendo en este caso es directamente a llevar a cabo la misma idea pero de otra manera, en el caso de Wii U las listas de comandos de la GPU son llevadas por la CPU de la consola principal, pero lo que permite esta tecnología de Nvidia es que varios dispositivos en la red puedan enviar las listas de comandos ellos mismos.

vgx--hypervisor

Es decir, Nintendo puede lanzar por ejemplo un NX Gamepad que realmente no funcione solo como una terminal sino que tenga la capacidad de reproducir juegos e incluso utilizar la potencia de la consola de sobremesa o parte de ella para renderizar la escena e incluso hacer que varias personas en una competición local se reunan en un mismo punto teniendo cada una su perspectiva. Esto obviamente a mi me parece una idea de bombero pero dada la obsesión de Nintendo por el juego local no me extrañaría este nivel de conectividad donde se pueda jugar a un modo competitivo o co-operativo de manera local utilizando la GPU de la consola de sobremesa y la poca latencia entre los usuarios y la GPU de sobremesa para ayudar en el renderizado a tiempo real de la escena. Obviamente en dicho escenario cada uno de los jugadores tendría su propia visión utilizando el NX Gamepad, aunque ya he dicho que no es un escenario que me guste es un escenario posible.

La otra utilidad se basa en poder utilizar la potencia de cara a la infraestructura del juego online, esto es importante en juegos de carácter MMO donde ocurren varios eventos al mismo tiempo y sinceramente tengo muy claro que cierta franquicia actual de Nintendo tiene todos los elementos para evolucionar hacía un MMO puro y duro.

xenoblade_chronicles_x-7

Imaginad un entorno donde tenemos un Xenoblade MMO con una cantidad ingente de jugadores pero donde la infraestructura de servidores no es necesaria porque cada uno de los usuarios cede parte de la potencia de la consola para poder gestionar los eventos del juego, los cuales se habrían dividido previamente en paquetes repartidos por toda la red. Se que es un concepto complejo pero es posible y permite poder ejecutar un MMO sin que haya una infraestructura costosa por el medio.

Dispositivo Suplementario.

¿Y que hay del dispositivo suplementario de computación que aparece en la patente de Nintendo? ¿Que papel jugaría en este escenario? Obviamente su trabajo es el de sumar potencia adicional ya sea para un juego que se reproduce en la consola principal y que este se beneficie de la potencia adicional como para el escenario donde podemos compartir la potencia de la GPU con otros dispositivos. ¿Y que sería realmente? Esto os puede sorprender, pero creo que el dispositivo suplementario sería otra NX funcionando en “modo esclavo” respecto a la consola principal y funcionando de apoyo a la primera. En todo caso lo mejor es volver a la patente de Nintendo donde se ve el dispositivo suplementario definido:

FIG2

Veamos:

El dispositivo suplementario 104, mientras tanto, incluye uno o más procesadores 218, memoria 220 y una o más interfaces de comunicación 222. En algunas instancias, la funcionalidad del dispositivo 104 puede ser básica para mantener el coste del dispositivo 104 relativamente bajo. Como tal, el dispositivo 104 puede estar libre de controladores,tarjetas de video, interfaces de control de usuario, y similares.

Es decir, en modo suplementario el dispositivo suplementario, que puede ser una una segunda NX o una versión simplificada de la misma,  lo único que tendría activo sería el SoC, la memoria y la conectividad de red para comunicarse con el sistema principal. Si antes hemos comentado que otros dispositivos dentro de la red local pueden utilizar la potencia tanto de la consola como del dispositivo suplementario para el renderizado a tiempo real de la escena entonces podemos concluir que existe un escenario donde la consola principal se puede convertir en el cliente único del dispositivo suplementario, el cual tendría una latencia mucho menor. Dicho de otra manera… La misma conectividad que existe entre dos GPUs en PC (SLI, Crossfire) y en este escenario tendríamos tres posibilidades distintas:

  • A través de un puerto PCIe externo en cada una de las consolas.
  • Utilizando un add-on donde ambas consolas se puedan conectar y que se encargued e la comunicación entre dispositivos.
  • El dispositivo suplementario no es una consola sino un add-on con los componentes básicos que se conecta a un puerto PCIe o similar colocado como puerto de expansión en la consola, no sería una especie de 32X porque no convertiría la plataforma en otra consola distinta, pensad en ello como una ampliación de hardware del PC que nos permite mejorar las capacidades visuales de la consola.

Juego en la Nube

Esta es la parte más peliaguda, pero en el escenario que os voy a comentar tiene sentido. Una de las funcionalidades que da Nvidia en su plataforma GRID, la cual podría utilizar NX, es el llamado juego en la nube. Esto no debe confundirse con el Grid Computing donde los dispositivos comparten su potencia sino que se basa en que se ejecuta un juego de manera remota pero controlado de manera local. El dispositivo local lo que recibe es un video en streaming desde el servidor remoto donde se esta ejecutando el juego para que pueda ver la acción del juego a tiempo real.

Es decir, estoy hablando del servició de Nvidia que hable hace unos días de juego en la nube pero aplicado a lo que sería NX y que entraría en competencia con el PlayStation Now y que en el caso concreto de Nintendo tiene una utilidad concreta.

nv-geforce-now

geforcenow-22

¿Verdad que Nintendo tiene problemas para conseguir juegos de terceros en sus consola? ¿Que ocurre si los consigue a través del juego en la nube y del servicio de Nvidia? Obviamente esto significa que la gente tendría que pagar una cuota mensual para jugar a los juegos pero… ¿Acaso no paga una cuota mensual para el juego online en PS4 y Xbox One?

Nvidia le podría montar una infraestructura en la nube a Nintendo para que aquellos juegos que se encuentran en PC pero que no se encuentran en el catálogo de la consola puedan ser ejecutados por los usuarios de NX. Esto le serviría a Nintendo de cara a los editores independientes de una cosa muy concreta, demostrar que existe interés entre los usuarios de Nintendo por ciertos juegos y que se pueden plantear el hecho de crear versiones de esos juegos para NX.

El servició en la nube puede funcionar de la siguiente manera:

  • Ciertos juegos pueden estar disponibles de manera “gratuita” para los usuarios del servició por un tiempo limitado, pasado ese tiempo ya no se puede acceder a los mismos.
  • Los usuarios pueden comprar juegos para jugarlos cuando quieran, en el caso de que exista una futura versión del juego en NX los que hayan adquirido el juego en la nube podrán descargar el juego en formato digital para poderlo ejecutar fuera del servició de la nube.
  • Los juegos que se encuentren en formato físico o por descarga digital directa se irán eliminando del servició de la nube ya que este servirá para paliar la falta de juegos en descarga directa.

Un editor independiente no seguro de hacer juegos para NX podría utilizar este servició para testear el mercado para su juego. Si existe el interés por parte de los usuarios de Nintendo de jugar a ese juego entonces lo precomprarán en la nube y puede que con ello financien el port a NX y den dinero al estudio y al editor en el proceso (y a la propia Nintendo en regalías) lo que llevaría a la posterior conversión del juego de manera nativa para NX.

Así pues el pacto Nvidia-Nintendo podría tener como objetivo el utilizar las excelentes relaciones de Nvidia con editores independientes de PC como puente para conseguir los editores y estudios independientes que nunca han trabajado para Nintendo o llevan años sin tener una relación con la compañía de Kyoto y poder construir un catálogo. Obviamente esto es una especulación a falta de confirmación de lo que es NX e incluso de cual es el proveedor de la GPU.

Con esto ya acabo, creo que la entrada esta bien explicada tal y como esta y recordad, esto es un escenario hipotético que tiene que ver con un posible pacto Nintendo-Nvidia.

Anuncios