Uno de los mayores problemas existentes en los juegos para PC es la compilación de shaders, en muchos juegos es algo realmente tedioso que puede llegar a desesperar hasta el más paciente de los jugadores. Sin embargo, esto no ocurre en consolas y todo se debe a un problema que no es otro que el no usar una ISA universal en GPU. ¿La culpable de ello? NVIDIA y el monopolio que tienen a través de CUDA.
La compilación de shaders y el problema de la torre de babel
El gran problema de las tarjetas gráficas de PC es que mientras un Intel Core y un AMD Ryzen hablan el mismo lenguaje y entienden los mismos binarios, entre una tarjeta gráfica de AMD y una de NVIDIA no se entienden. Es necesario compilar los programas shader que ejecuta la GPU que se han escrito en GLSL, HLSL o cualquier lenguaje de sombreados de alto nivel para que lo pueda entender y este trabajo lo ha de hacer el procesador, ya sea durante las pantallas de carga o en medio del juego, provocando caídas de frames, stuttering y a veces incluso el cierre del propio juego.
Hemos de entender que cada instrucción en binario contiene dos partes, por un lado, el código de la instrucción y por el otro los datos a manipular. Cada set de registros e instrucciones tiene su propio lenguaje. De la misma manera que un significante puede no significar nada en un idioma y si en otro o tener significados distintos. Es decir, el problema es que si hablamos de binarios puros, un shader compilado para una Radeon no lo entiende una GeForce y viceversa.
Por lo que lo ideal sería que la GPU tuviesen un set de registros e instrucciones universal que permitiría que estos viniesen ya compilados de base para todas las tarjetas gráficas. Sin embargo, hay una de las dos empresas que tiene un dominio con puño de hierro en ciertos sectores profesionales que le otorgan mucho dinero y un monopolio absoluto en el mercado de la computación de alto rendimiento y la inteligencia artificial.
El monopolio de CUDA es lo que impide la ISA universal en GPU
NVIDIA tiene una cuota de mercado absoluta sobre los mercados de computación de alto rendimiento, es decir, en especial el mundo científico e industrial, que le otorgan una gran cantidad de dinero a sus arcas. Lo ha hecho blindando las herramientas a sus librerías CUDA y usando todo su poderío económico durante años para excluir a OpenCL, una API de computación de propósito general para GPU que se ha visto relegada al ostracismo y con ello se ha entregado en bandeja de plata dicho mercado a la empresa de verde.
Existen alternativas como OneAPI de Intel, veremos como termina, o RocM de AMD, pero ninguna de ellas tiene la cuota de mercado y el poderío de NVIDIA. ¿Qué tiene que ver con el caso anterior? Pues que si existiese una ISA universal, entonces se podrían ejecutar los programas CUDA en cualquier tarjeta gráfica, incluyendo las de AMD, y esto es algo que a Jensen Huang no le interesa para nada, ya que esto sería una perdida de cuota de mercado y de poder para su compañía.
RISC-V sería un punto en común válido
La ISA RISC-V de carácter de totalmente libre y abierto puede servir como base para la creación de una ISA universal de GPU en la que se podrían añadir las diferentes compañías y crear un mercado totalmente abierto donde las aplicaciones y algoritmos no dependieran de una sola marca. Sin embargo, esto solo es una posibilidad sobre el papel, desde el momento en que NVIDIA no tiene interés alguno en que esto ocurra con tal de proteger su negocio.
The post Las malas conversiones de juegos a PC son culpa de … ¿NVIDIA? appeared first on HardZone.
from HardZone https://ift.tt/XjKBS8C
via IFTTT
No hay comentarios:
Publicar un comentario