Computación asincrónica, AMD, Nvidia y DX12: lo que sabemos hasta ahora

AMD-vs-NV

Desde que se anunció DirectX 12, AMD y Nvidia han competido por posicionarse con respecto a cuál de ellos ofrecería mejor apoyo para la nueva API y sus diversas funciones. Una capacidad de la que AMD ha hablado ampliamente es el soporte de GCN para cálculo asincrónico . La computación asincrónica permite que todas las GPU basadas en la arquitectura GCN de AMD realicen gráficos y calculen cargas de trabajo simultáneamente. La semana pasada, un empleado de Oxide Games informó que, contrariamente a la creencia general, el hardware de Nvidia no pudo realizar computación asincrónica y que el impacto en el rendimiento de intentar hacerlo fue desastroso en el hardware de la empresa.



Este anuncio dio inicio a una serie de investigaciones sobre lo que el hardware de Nvidia hacía y lo que no apoyaba, así como afirmaciones anecdóticas de que la gente devolvería (o ya hizo) sus GTX 980 Ti en base a Cenizas de la singularidad actuación. Hemos pasado los últimos días conversando con varias fuentes que trabajan en el problema, incluidos Mahigan y CrazyElf en Overclock.net, además de analizar varios conjuntos de datos e informes de rendimiento. Nvidia aún no ha respondido a nuestra solicitud de aclaración, pero esta es la situación tal como la entendemos actualmente.

Nvidia, AMD y computación asincrónica

Cuando AMD y Nvidia hablan de admitir computación asincrónica, no se refieren a la misma capacidad de hardware. Los motores de comando asíncronos en las GPU de AMD (entre 2 y 8, según la tarjeta que posea) son capaces de ejecutar nuevas cargas de trabajo con latencias tan bajas como un solo ciclo. Una tarjeta AMD de gama alta tiene ocho ACE y cada ACE tiene ocho colas. Maxwell, por el contrario, tiene dos canales, uno de los cuales es un canal de gráficos de alta prioridad. El otro tiene una profundidad de cola de 31, pero Nvidia no puede cambiar de contexto tan rápido como AMD.



NV-preferencia



De acuerdo con una charla dada en GDC 2015, existen restricciones en las capacidades de anticipación de Nvidia. El texto adicional debajo de la diapositiva explica que 'la GPU solo puede cambiar de contexto cuando se establecen límites de llamadas' y 'En las GPU futuras, estamos trabajando para permitir una preferencia más detallada, pero aún queda un largo camino por recorrer'. Para explorar las diversas capacidades de Maxwell y GCN, los usuarios de Beyond3D y Overclock.net han utilizado pruebas de cómputo asincrónico que evaluaron la capacidad tanto en hardware AMD como Nvidia. La referencia se ha revisado varias veces durante la semana, por lo que los primeros resultados no son comparables con los datos que hemos visto en ejecuciones posteriores.

Tenga en cuenta que esta es una prueba de cálculo asincrónico latencia , no rendimiento. Esto no prueba el rendimiento general, en otras palabras, solo cuánto tiempo se tarda en ejecutarse, y la prueba está diseñada para demostrar si se está produciendo un procesamiento asíncrono o no. Debido a que se trata de una prueba de latencia, los números más bajos (más cerca de la línea amarilla '1') significan que los resultados están más cerca del ideal.

Radeon R9 290



Aquí está el rendimiento del R9 290. La línea amarilla es la perfección; eso es lo que obtendríamos si la GPU cambiara y se ejecutara instantáneamente. El eje y del gráfico muestra el rendimiento normalizado a 1x, que es donde esperaríamos que estuviera la latencia asincrónica perfecta. La línea roja es lo que más nos interesa. Muestra que GCN tiene un rendimiento casi ideal en la mayoría de los casos, manteniendo el rendimiento estable incluso cuando aumenta el número de subprocesos. Ahora, compare esto con la GTX 980 Ti de Nvidia.

vevF50L

Intentar ejecutar gráficos y computar simultáneamente en la GTX 980 Ti causa caídas y picos en el rendimiento y pocas ganancias. En este momento, solo hay unos pocos subprocesos en los que Nvidia iguala el rendimiento ideal (latencia, en este caso) y muchos casos en los que no. Investigaciones posteriores han indicado que la canalización asíncrona de Nvidia parece apoyarse en la CPU para algunos de sus pasos iniciales, mientras que GCN de AMD maneja el trabajo en hardware.



En este momento, la mejor evidencia disponible sugiere que cuando AMD y Nvidia hablan de computación asincrónica, están hablando de dos capacidades muy diferentes. 'Computación asincrónica', de hecho, no es necesariamente el mejor nombre para lo que está sucediendo aquí. La pregunta es si las GPU de Nvidia pueden ejecutar gráficos y calcular cargas de trabajo. al mismo tiempo . AMD puede, cortesía de sus unidades ACE.

Se ha sugerido que el enfoque de AMD se parece más a Hyper-Threading, que permite que la GPU trabaje en cargas de trabajo gráficas y de cómputo dispares simultáneamente sin una pérdida de rendimiento, mientras que Nvidia puede estar apoyándose en la CPU para algunos de sus pasos de configuración iniciales e intentando programe la carga de trabajo de gráficos y cómputo simultáneos para una ejecución ideal. Obviamente, ese proceso aún no está funcionando bien. Desde nuestro artículo inicial, Oxide ha declarado lo siguiente:

“De hecho, acabamos de charlar con Nvidia sobre Async Compute, de hecho, el controlador aún no lo ha implementado por completo, pero parecía que sí. Estamos trabajando en estrecha colaboración con ellos mientras implementan por completo Async Compute '.

Esto es lo que probablemente significa, dadas las propias presentaciones de Nvidia en GDC y los diversos puntos de referencia de prueba que se han reunido durante la semana pasada. Maxwell no tiene una configuración de estilo GCN de motores de cómputo asíncronos y no puede cambiar entre gráficos y cargas de trabajo de cómputo tan rápido como GCN. Según el usuario de Beyond3D Ext3h :

“Originalmente se afirmaba que las GPU de Nvidia ni siquiera serían capaces de ejecutar sombreadores de cómputo asíncronos de forma asíncrona, este mito fue rápidamente desmentido. Sin embargo, lo que queda claro es que las GPU de Nvidia prefieren una carga mucho más liviana que las tarjetas AMD. Con cargas pequeñas, las GPU de Nvidia circularían alrededor de las tarjetas AMD. Con una carga alta, bueno, todo lo contrario, hasta el punto en que las GPU de Nvidia tardaron tanto tiempo en procesar la carga de trabajo que activaron salvaguardas en Windows. Lo que hizo que Windows apretara el gatillo y matara al controlador, suponiendo que se atascara.

“Resultado final (por ahora): las GPU de AMD son capaces de manejar una carga mucho mayor. Aproximadamente 10 veces más de lo que pueden soportar las GPU de Nvidia. Pero también necesitan 4 veces la presión aplicada antes de poner en práctica sus capacidades '.

Ext3h continúa diciendo que la preferencia en el caso de Nvidia solo se usa cuando se cambia entre contextos gráficos (1x gráficos + 31 modo de cómputo) y 'contexto de cómputo puro', pero afirma que esta funcionalidad es ' completamente roto ”En tarjetas Nvidia en la actualidad. Él también dice que si bien Maxwell 2 (familia GTX 900) es capaz de ejecución en paralelo, 'el hardware no se beneficia mucho de ello, ya que tiene solo pequeñas' brechas 'en la utilización del sombreador de cualquier manera. Entonces, al final, sigue siendo solo una ejecución secuencial para la mayoría de las cargas de trabajo, aunque si lograras detener la tubería de alguna manera al construir una carga de trabajo desafortunada, aún podrías beneficiarte '.

Nvidia, por su parte, ha manifestado a Oxide que lata implementar computación asincrónica, sin embargo, y que esta capacidad no estaba completamente habilitada en los controladores. Como Oxide, vamos a esperar y ver cómo se desarrolla la situación. El hilo de análisis en Beyond3D deja muy claro que esta es una pregunta increíblemente compleja, y mucho de lo que Nvidia y Maxwell pueden o no hacer no está claro.

Anteriormente, mencionamos que el enfoque de AMD para la computación asincrónica se parecía superficialmente a Hyper-Threading. Hay otra forma en la que esa analogía puede resultar precisa: cuando debutó Hyper-Threading, muchos fanáticos de AMD preguntaron por qué Team Red no había copiado la función para mejorar el rendimiento en K7 y K8. La respuesta de AMD en ese momento fue que los procesadores K7 y K8 tenían pipelines mucho más cortos y arquitecturas muy diferentes y, como resultado, era intrínsecamente menos probable que se beneficiaran de Hyper-Threading. El P4, por el contrario, tenía una tubería larga y una tasa de pérdida relativamente alta. Si un hilo se detenía, HT permitía que otro hilo continuara ejecutándose, lo que mejoraba el rendimiento general del chip.

Es poco probable que la computación asincrónica de estilo GCN mejore el rendimiento de Maxwell, en otras palabras, porque Maxwell no está realmente diseñado para este tipo de cargas de trabajo. Queda por ver si Nvidia puede solucionar esa limitación (o implementar algo aún más rápido).

Copyright © Todos Los Derechos Reservados | 2007es.com