Página 1 de 1

HSA104 - Revisitando hUMA: Múltiples pozos de RAM

NotaPublicado: 22 Dic 2015, 11:33
por f5inet
En el artículo anterior, vimos los modelos UMA y NUMA, y como hUMA proporcionaba una memoria virtual unificada con un único pozo de RAM a través de la sincronización de ambas MMUs.

Imagen

Como hemos explicado en artículos anteriores, una visión de la memoria de forma unificada por todas las CUs es un requisito para qué un sistema sea compatible HSA. Todas las APUs de AMD de Kaveri en adelante son compatibles HSA. Esto incluye las consolas domesticas PlayStation4 y XboxONE, ya qué ambas incorporan derivados de AMD Kaveri.

Sin embargo, en sistemas de mucho requerimiento gráfico, las APUs Kaveri o Carrizo estándar de AMD son insuficientes para el trabajo. Simplemente, no tienen la potencia bruta necesaria.

Imagen

En estos casos extremos, donde 6 u 8 TCUs GCN adicionales a los 4 LCUs equipados, no son suficientes para dar buena cuenta del trabajo, lo ideal seria añadir una tarjeta gráfica dedicada con unos cuantos mas TCUs donde poder descargar trabajo de computacion..

Sin embargo, de esta forma, estaríamos convirtiendo un sistema HSA, en un sistema NUMA, perdiendo todas las ventajas qué HSA nos brinda con respecto a las reducciones de latencia, lenguaje unificado y facilidad de programación.

Imagen

HSA es expandible:

Esto, realmente, no tiene porque ser asi. El requisito de HSA con respecto a hUMA, es qué el pozo de memoria VIRTUAL debe ser UNIFICADO, y es aquí, donde las MMUs vuelven a hacer, de nuevo, su entrada estelar.

Imagen

si tanto la CPU, como la GPU dedicada, son compatibles HSA, las MMUs de ambos dispositivos pueden hablarse entre si, y establecer una memoria virtual unificada qué agrupe ambos pozos de RAM, a pesar de ser diametralmente opuestos. Esto permite simular una arquitectura hUMA, y de esta forma, la arquitectura HSA se extiende a la GPU discreta qué tenga montada el equipo.

No es lo mismo gobernar tú RAM, qué hacerlo a través de un consulado:

Sin embargo, no todo es tan bonito como parece. Qué una GPU discreta, tenga qué acceder a la memoria controlada por la MMU de la CPU a través del bus PCI Express es técnicamente posible, pero quedara limitada por el ancho de banda del bus, en el caso de la imagen anterior, las TCUs operaran sobre la RAM de la CPU, a una velocidad de entre 8 y 16GB/s, una velocidad MUY INFERIOR que la velocidad a la qué funcionaria su GDDR5 dedicada.

También hablamos qué las TCUs son CUs específicamente diseñadas para brillar con un gran ancho de banda. Cuando el ancho de banda es escaso, las TCUs, más qué brillar, palidecen.

A veces somos coherentes, y a veces no:

Por eso, HSA ofrece diversas formas de mantener el rendimiento de las TCUs cuando acceden a memorias lentas. En primer lugar, el modelo de memoria interno de HSA establece diversos ‘segmentos’ qué pueden asignarse a distintos pools. Este asunto es muy largo y será tratado en un artículo posterior, ya qué lo merece sobradamente.

Ahora hablaremos de Coherencia.

Imagen

Se denomina un acceso a RAM Coherente cuando todas las MMUs participantes del sistema HSA son notificadas de dicho acceso, y se denomina acceso no-coherente cuando la única MMU qué es consciente de dicho acceso es la MMU de la qué es dependiente.

Un acceso no-coherente permite usar todo el ancho de banda disponible del bus, y es el acceso preferido cuando se quiere maximo rendimiento.

Sin embargo, hablábamos qué uno de los requisitos de HSA es poder asegurar la coherencia en todo el pozo (o pozos) de RAM del sistema HSA, asi qué el modo preferido de acceso a RAM para el sistema HSA es el modo Coherente, en el cual, todas las MMUs del sistema están al tanto de los accesos, de las distintas CUs equipadas, a la RAM

Puesto qué estos accesos coherentes son mucho más costosos desde el punto de vista burocrático, HSA permite mezclar accesos coherente y no coherentes para obtener el máximo rendimiento de cada uno de los CUs. Eso si, con unas normas qué veremos más adelante cuando analicemos el modelo de memoria HSA.

De momento debéis quedaros con esta idea: HSA permite usar varios pozos diferentes de RAM, y de diversa índole (DDR, GDDR, eDRAM, ESRAM), siempre y cuando las MMUs que gobiernan dichos pozos de RAM estén sincronizadas entre si y permitan un pozo unificado HETEROGÉNEO con un espacio de direcciones virtual único, que eso es lo que viene a significar hUMA desde primera hora.

Re: HSA104 - Revisitando hUMA: Múltiples pozos de RAM

NotaPublicado: 22 Dic 2015, 12:07
por BiG Porras
Esto va molando.... 8-)

Re: HSA104 - Revisitando hUMA: Múltiples pozos de RAM

NotaPublicado: 22 Dic 2015, 15:17
por manuki
Muchas gracias de nuevo por el articulo.

Re: HSA104 - Revisitando hUMA: Múltiples pozos de RAM

NotaPublicado: 22 Dic 2015, 16:03
por Sumotai
Muy buen curro y muy bien explicado. Buenisimo!

Re: HSA104 - Revisitando hUMA: Múltiples pozos de RAM

NotaPublicado: 22 Dic 2015, 18:32
por RCMax
Magnífico como siempre f5inet, va tomando forma el concepto.

Seguiremos atentos a la próxima publicación.Se nota que ha llegado el momento de hablar de HSA. :D

Re: HSA104 - Revisitando hUMA: Múltiples pozos de RAM

NotaPublicado: 22 Dic 2015, 20:20
por nikolas
Magistral :awe:

Re: HSA104 - Revisitando hUMA: Múltiples pozos de RAM

NotaPublicado: 31 Dic 2015, 21:26
por FLASHBACKMAN