HSA103 - UMA, NUMA, hUMA y HSA

Las entradas de este 'foro' apareceran en Portada

HSA103 - UMA, NUMA, hUMA y HSA

Notapor f5inet » 16 Dic 2015, 22:58

Después de la pausa en la serie de artículos HSA, hablaremos de las disposiciones o configuraciones de memoria usadas en las arquitecturas de computación paralela, o donde más de una CU puede acceder simultáneamente a RAM.

Imagen

Aceleradores, hagamos un poco de historia:
El PC ha sido, clasicamente, un sistema UMA, o sea, de acceso uniforme a memoria (Uniform Memory Access), donde el único core qué equipaban, accedía a toda la memoria por mediación de su MMU. Cuando se dice qué un sistema es UMA, significa qué su (o sus) unidades de cómputo (CUs) pueden acceder a toda la memoria RAM libremente y sin problemas.

Es cierto qué la arquitectura PC ha dispuesto toda su vida de aceleradores varios, como las primeras tarjetas de Sonido Soundblaster o las primeras aceleradoras gráficas, como las 3dfx Voodoo, ATi Radeon preHD series o nVidia RivaTNT y Geforce 1-2-3-4-FX, pero la memoria de dichas aceleradoras estaban lejos del alcance de las CPUs de dichos PC y se acceden a través de otro subsistema denominado DMA (Direct Memory Access, Acceso Directo a Memoria) qué no era más qué un chip/subsistema específico encargado de hacer grandes trasvases de datos entre los módulos aceleradores del sistema y la memoria principal.

Toda buena CU se merece su ministerio de exteriores:
El subsistema DMA se encarga, también, de los accesos a disco y de hablar con los dispositivos USB y con, básicamente, toda la ‘memoria’ externa qué no es RAM y qué no es visible ni accesible directamente por las CUs del sistema.

Dicho esto, y solo por asentar términos, si una CU quiere acceder a la RAM, lo hará a través de su MMU, y si quiere acceder a otro tipo de memoria fuera de su alcance directo, realizara una petición al subsistema DMA para traerse los datos a RAM, donde podrá operar libremente con ellos, o bien le enviará los datos via DMA a dicho acelerador para qué el acelerador pueda operar con ellos.

UMA para todos, y todos via UMA:
Por supuesto, el qué varios CUs operen simultáneamente sobre la misma RAM trae consigo un nuevo problema: COLISIONES.

Si dos o más CUs quieren acceder simultáneamente a la misma región de RAM, pueden pisarse unos a otros y modificar simultáneamente la RAM con la qué operan, con resultados habitualmente desastrosos, como por ejemplo, qué una CU modifique el contenido de la RAM mientras dicho contenido está en caché L2 de otra CU y dicha modificación no es notificada.

Para eso, y desde la arquitectura intel i386, se le añadieron a la MMU diversas extensiones por las cuales una CU podía ‘proteger’ partes de la memoria para su acceso absoluto, dando entrada a un concepto denominado ‘modo protegido’, por el cual, si una CU necesita qué no se toque una región de la RAM, marca la página en la MMU como de acceso exclusivo. Si otra CU solicita a la MMU acceso a la misma región de la RAM, la MMU notifica a la CU qué tenía hasta el momento el acceso para qué dicha CU vacíe sus caches en la RAM y la libere para qué otra CU pueda acceder a ella.

A todo eso, se le denomina UMA, o cómo mantener la coherencia de un mismo poco de RAM ante el acceso simultáneo de diversas CUs qué no fueron diseñadas para hablarse entre si, ya qué su cometido principal es computar, no dedicarse a la burocracia. A la burocracia ya se dedica la MMU.

¿Toda esa GPU es tuya?:
Pero los aceleradores gráficos crecieron hasta el punto en el cual ya son CUs completos, y no simples ASICs/DSPs/Aceleradores específicos, sino qué son totalmente programables. En este punto, una GPU se compone de diversas CUs, y tienen su propio pozo de memoria. En gráficas dedicadas AMD GCN 1.0, incluso disponen de su propia MMU. Pero la RAM de la GPU está separada físicamente de la RAM de la CPU, por la cual, son dos pozos separados de RAM cada uno con sus propias CUs y sus propias MMUs:

Imagen

A esta configuración se le denomina configuración NUMA (Non Uniform Memory Access), o acceso a memoria no unificado, donde unas CUs dependientes de una MMU, no conocen la configuración de RAM del otro pozo de RAM gobernado por la otra MMU. En esta configuración, se usan los subsistemas DMA para mover datos entre los distintos pozos de RAM, para qué unas u otras CUs operen con dichos datos. Un esplendido ejemplo de una configuración NUMA exitosa reciente, seria el IBM Cell de PlayStation3

Imagen

A medio camino entre acelerador especifico y CU programable, los SPE no tienen acceso directo a la RAM, ya que ni disponen de MMU, ni sus MMU estan sincronizadas con la MMU principal de la CPU, así que solo pueden operar en su pequeño pozo de RAM de 256KB. Si necesitan cualquier dato de la RAM externa, necesitan arrancar una petición vía DMA para traerse datos a su pozo de 256KB para operar con dichos datos

Por supuesto, dicha transferencia de RAM entre distintos pozos añade latencia y complejidad a los procesos qué necesiten usar simultáneamente los LCUs y los TCUs. Y es aquí, donde HSA y hUMA brillan

hUMA al rescate

Imagen

En una APU compatible HSA, las MMUs de la CPU y de la GPU trabajan juntas para proveer el mismo pool virtual de RAM, notificándose entre ellas los cambios de paginas y asignaciones qué una y otra realicen, por lo qué no hay qué realizar ningun tipo de copia de datos entre diferentes pools de RAM, simplemente se le pasa a la GPU un puntero de los datos con los qué tiene qué trabajar, y la GPU puede acceder directamente a los datos y trabajar con ellos.
Mike escribió:
No hemos sido ni locos, ni profetas. Tan solo hemos sido hombres honestos.[...] Hemos pasado de ser una secta, a ser la única web en ESPAÑA que ha traido la verdad desde el principio.
Avatar de Usuario
f5inet
HSA Gurú
HSA Gurú
 
Mensajes: 1714
Registrado: 08 Jun 2014, 23:20
Has thanked: 64 times
Been thanked: 787 times

Re: HSA103 - UMA, NUMA, hUMA y HSA

Notapor Mattmaddrid » 17 Dic 2015, 01:04

F5!! Qué grande. Me encanta. Gracias por plasmar tanto conocimiento!! :tup: :tup: :tup:

:chief:
Imagen
Avatar de Usuario
Mattmaddrid
Usuario de TG
Usuario de TG
 
Mensajes: 2109
Registrado: 28 Jun 2014, 17:53
Ubicación: Navalcarnero (España)
Has thanked: 1260 times
Been thanked: 454 times

Re: HSA103 - UMA, NUMA, hUMA y HSA

Notapor BiG Porras » 17 Dic 2015, 01:19

Mooooola!
...Siempre BiG!
Imagen
Avatar de Usuario
BiG Porras
Moderador
Moderador
 
Mensajes: 17232
Registrado: 09 Jun 2014, 11:25
Ubicación: Torroles
Has thanked: 4228 times
Been thanked: 1589 times

Re: HSA103 - UMA, NUMA, hUMA y HSA

Notapor manuki » 17 Dic 2015, 09:15

Gracias por el articulo :awe:
Imagen
Avatar de Usuario
manuki
Usuario de TG
Usuario de TG
 
Mensajes: 409
Registrado: 01 Oct 2014, 16:42
Has thanked: 25 times
Been thanked: 59 times

Re: HSA103 - UMA, NUMA, hUMA y HSA

Notapor hadock0 » 17 Dic 2015, 09:59

:awe: :awe: :awe: ¡¡Gracias!!
Imagen

Imagen
Avatar de Usuario
hadock0
The Notizer
The Notizer
 
Mensajes: 2476
Registrado: 22 Jun 2014, 23:20
Has thanked: 45 times
Been thanked: 529 times

Re: HSA103 - UMA, NUMA, hUMA y HSA

Notapor pablopro89 » 22 Dic 2015, 09:40

Grande! Estoy ahora intrigado como sigue :tup: :yahoo:
Imagen

Greatness doesn't await...
Imagen
http://i61.tinypic.com/hsnxc2.gif
Avatar de Usuario
pablopro89
Usuario de TG
Usuario de TG
 
Mensajes: 1701
Registrado: 09 Oct 2014, 21:36
Ubicación: Jerez - Madrid
Has thanked: 355 times
Been thanked: 204 times

Re: HSA103 - UMA, NUMA, hUMA y HSA

Notapor BiG Porras » 22 Dic 2015, 12:08

pablopro89 escribió:Grande! Estoy ahora intrigado como sigue :tup: :yahoo:

newspage.php?news=1368 :rtfm:
...Siempre BiG!
Imagen
Avatar de Usuario
BiG Porras
Moderador
Moderador
 
Mensajes: 17232
Registrado: 09 Jun 2014, 11:25
Ubicación: Torroles
Has thanked: 4228 times
Been thanked: 1589 times


Volver a FLASHFORWARD