'cookieOptions={msg};'> El blog del ensamblador: Nvidia vs AMD, Vulkan vs DirectX 12.0

Select your language

1/3/16

Nvidia vs AMD, Vulkan vs DirectX 12.0


Como sabemos ultimamente se han visto varias nuevas APIs desde que AMD presento la API Mantle hace mas de un año, recordemos que una API es una Interfaz de Programacion de Aplicaciones, a nivel grafico lo resumiriamos como lo que te permite  decirle a la GPU como y que dibujar, ahora, estas nuevas APIs liberadas, son algo diferentes a las anteriores, Mantle, Vulkan y DirectX 12 son APIs de bajo nivel ¿que significa esto?
pues que se conectan mas directamente al hardware para lograr mayor rendimiento en menores latencias y menor consumo electrico, en otras palabras, mayor eficiencia sin cambiar tu hardware actual (mientras este sea compatible claro, no conseguiras soporte a estas nuevas APIs solo con instalar un nuevo controlador que lo soporte, tambien debes tener un hardware capaz de moverlo), les hablare un poco sobre este soporte ademas de porque le di este titulo a esta entrada...

Primero descartaremos a Mantle, esta API de bajo nivel introducida por AMD fue la responsable de inspirar al Grupo Khronos en desarrollar su propia API de bajo nivel, sin embargo ya no tiene soporte, quedo como un ejemplo de codigo abierto para que otras compañias se introdujeran y desarrollasen sus APIs de bajo nivel (justo como hizo el mencionado grupo).

 

Ahora porque comparo a Nvidia con AMD al mismo tiempo que comparo Vulkan con DX12? bueno, como ya sabemos Mantle fue la inspiracion para el Grupo Khronos para desarrollar Vulkan, sin embargo no quiere decir que tan como este este solamente digirido u optimizado para AMD, al contrario, aca viene mi punto, Vulkan se iba a llamar OpenGL Next, osea que es una optimizacion de bajo nivel para OpenGL y si verificamos en varios reviews (en especial los de Phoronix) podemos encontrar que los resultados de rendimiento de OpenGL para Nvidia son muchisimo mejores que los de AMD, Nvidia se ha esmerado (sin mencionar que tiene mas dinero para invertir) en mejorar esta API en Linux, Nvidia tiene un rendimiento grafico altamente superior a AMD, aunque esto todavia no se ha traducido de igual manera a Windows, Vulkan es la API mas reciente y necesita mucho mas desarrollo.



¿Porque Nvidia esta enfocado en Vulkan y no en DirectX 12?

Asumo que porque la API de bajo nivel "Vulkan" lleva mas similitud  con OpenGL sera mas facil de optimizar para Nvidia, si revisan varias pruebas el hardware AMD escala muchisimo mejor que el hardware Nvidia en DX12 tanto en benchs como en pruebas del mundo real (aunque los fans digan lo contrario), no me baso en el fanatismo sino a pruebas reales como las que muestro en las imagenes que colectè... pero primero vean las imagenes sobre Vulkan vs OpenGL y/o DirectX 11.









Uliziacion de CPU de 8 procesadores logicos (o nucleos) en OpenGL


Como podemos apreciar el OpenGL esta limitado al uso, concentrando la carga de graficos en un solo procesador logico, mientras que los procesadores logicos 2 al 4 ejecutan vagamente el Runtime (tiempo de ejecucion) OpenGL, losprocesadores 5 y 6 corren vagamente el codigo del juego al igual que el resto, excepto por los procesadores logicos 7 y 8.


Ulilizacion de CPU en Vulkan


Podemos apreciar una carga mayor en el primer procesador logico, sin embargo esta vez, tanto el OpenGL Runtime y el controlador OpenGL se ejecutan en todos los procesadores logicos, el codigo del juego se ejecuta almenos en 6 procesadores logicos, lo que permite que el procesador realice el mismo trabajo en menos tiempo o logre mayores velocidades de imagen en menos tiempo lo que tambien se traduce en un menor consumo electrico por parte del procesador.


Ahora las imagenes sobre Direct X12




¿Ven alguna coincidencia entre la primera imagen sobre DirectX 12 y Vulkan?

Si es casi lo mismo, esto es debido a que ambas APIs son de bajo nivel, enfocadas en lo mismo, en tneer mayor eficiencia de los recursos, ahora, ¿cual es mas apta para eso? esto lo dira el tiempo, ambas son muy nuevas, necesitan madurar, incluso superar a las APIs actuales las cuales llevan decadas de desarrollo, sin embargo, estan dando lo mejor de si para que el publico que le preste la atencion necesaria y seguir avanzando y dandonos lo mejor de nuestros hardwares.


La ventaja de AMD, algo presente hace años




Los Shaders Asincronos

Desde la primera introduccion de GCN (Graphics Core Next) en 2011 han tenido soporte a esta caracteristica muy singular, lo que le permite a la GPU (tarjeta grafica) procesar los graficos paralelamente sin tiempos muertos, en APIs y titulos no compatibles los graficos se cargan en serie, lo que pausaba un proceso si necesitaba entrar otro, ademas de esto hay un tiempo de espera entre un proceso y otro, lo que el procesamiento paralelo elimina, haciendo que el rendimiento incremente notablemente...





¿Por que Nvidia no se enfoca en DX12 si esta API tan avanzada soporta caracteristicas tan interesantes?


Nvidia disimula soporta DirectX 12 y no el DirectX 12.0 que se anunció con Windows 10 sino que DirectX 12.1 con un grupo de caracteristicas nuevas en sus graficas Maxwell y Maxwell2 (GTX750 series y GTX900 series) las cuales tambien soportan DirectX 11.3 (en Windows 8.1 y posteriores), sin embargo estas graficas no soportan una de las caracteristicas del DX12.0 "Shaders Asincronos", sin embargo no quiere decir que estas graficas no cuenten con otras caracteristicas de la API, a decir verdad ninguna de las dos compañias cuenta con un producto actual que soporte todas las nuevas caracteristicas introducidas con esta nueva API, sin embargo, un detalle tan importante para el usuario final como lo es el rendimiento...








El problema de la industria para el usuario final...



Los juegos vienen optimizados para una empresa o para la otra... algunos titulos vienen optimizados para AMD otros para Nvidia, aunque si, mas del 70% de los juegos vienen optimizados para tecnologias de Nvidia como Physx, Gameworks, etc, tambien hay juegos que vienen optimizados para AMD lo que nos causa varias dudas al momento de comprar una nueva grafica, otro problema es que la introduccion de estas nuevas APIs va lenta, DirectX 12 tiene un tiempo al aire y se pueden contar con los dedos la cantidad de titulos introducidos hasta la fecha... mas del 99% de los juegos aun no se actualizan a DirectX 12 y permanecen en DirectX 11.0 y sus actualizaciones (11.1, 11.2, 11.3) sin lograr una mejoria notable entre una y otra...


La solucion al problema

Explicit Multi Adapter, una tecnologia realmente llamativa introducida en Windows 10 para las graficas compatibles con DirectX 12 (Graficas desde HD7700, HD8500, R5 y superiores en AMD) y (GTX650, GTX750, GTX950 y superiores por parte de Nvidia), esta tecnologia permite combinar graficas de diferentes marcas y diferentes modelos, para incrementar el rendimiento de la grafica principal con el potencial de la segunda, esto se debe a que esta API tiene un control superior al controlador que permite que los datos graficos a procesar se repartan en ambas graficas, lo que nos da la esperanza de tener un rendimiento adecuado en cualquier juego y las mejoras graficas y de rendimiento de ambas empresas al combiar una grafica de una compañia con otra...


Otras imagenes sobre DX 12





Espero hayan llegado hasta el final y les haya gustado, feliz resto del dia, no olviden seguirme para estar al tanto de lo nuevo con mayor facilidad.

Mi canal de youtube (suscribete)

Mi nuevo Google Plus (sigueme) Mi Twitter

Mi Pagina de Facebook (para consultas)


Temas relacionados...

3 comentarios:

Gastón Adonay dijo...

Muy buena exposición acerca del desarrollo de las API, lo que no me quedó en claro es lo que dices de las gráficas AMD que serían de menor desarrollo que su contra-parte, no se si te refieres al software, porque en hardware está más que claro que AMD tiene mejor tecnología.

Parece que pronto tendremos noticias de la GPU Radeon Fury X2, de las API DirectX 12 & Vulkan, etcétera y lamentablemente nada acerca de Zen, es lo que ha dicho AMD. Al parecer el desarrollo de estas CPUs será de muy alto secreto.

Amet Monegro dijo...

#AMD tiene muchisimo menos dinero que Nvidia, no puede invertir ni la mitad de lo que invierte Nvidia en desarrollo, encima de esto mas del 70% de las empresas y desarrolladores graficos se enfocan en tecnologias de Nvidia pues al final se venden mas juegos, programas, sistemas operativos, computadores con hardware Nvidia que AMD y en esto es que se enfocan los empresarios, por esto AMD tiene que exforzarse mucho mas y no podemos culparlo de que tarde mas en darnos un buen producto, tu como empresario sabes bien que no todas las inversiones dan buenos frutos, y aunque nos deje con muchas dudas, mientras mas secretos sean los desarrollos de hardware AMD, mejor, porque en las empresas hay espionaje, recuerda que AMD pudo lanzar a #GCN antes que Nvidia lanzara las GTX600, Nvidia obtuvo bastante informacion de AMD y logro un producto casi con el mismo rendimiento MHz vs MHz que AMD, aunque ahora notamos que le falto algo, a pesar de toda la informacion que Nvidia pudo conseguir no pudo agregarle soporte a Asynch Shaders, lo que me alegra...


Saludos

Gastón Adonay dijo...

A mi entender al tener más recursos mejores probabilidades de que la propaganda surta efecto, pero esto no quiere decir que el desarrollo tecnológico vaya por ahí, un ejemplo bueno que podríamos situarlo en el cercano futuro es el desarrollo de Zen. Si esta nueva arquitectura va a ser realmente innovadora, es probable que a los azules les pase lo mismo, es decir que corran la misma suerte que los verdes, estancados con una tecnología antigua y que sólo se posiciona a través de ir aumentando de a poco sus capacidades, con altísimo consumo de energía y altas temperaturas en sus hardwares.

Saludos