HSA102 - LCUs Y TCUs ¿QUÉ SON?

Las entradas de este 'foro' apareceran en Portada

HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor f5inet » 27 Nov 2015, 11:09

Bienvenidos al segundo artículo de la serie de artículos HSA. Antes de seguir profundizando en la descripción de la arquitectura HSA, es importante dejar claro qué clases de unidades de cómputo (CUs) contempla HSA.

Imagen

Como habíamos dicho en el artículo anterior, la computación heterogénea, se refiere a sistemas que contienen múltiples unidades de cómputo (Como CPUs, GPUs, DSPs, o diversos ASICs) y en cómo todas estas unidades ven la memoria en un pozo unificado, donde todas pueden acceder simultáneamente.

Bien, como todos sabréis, una CPU realiza su trabajo de forma bastante diferente a una GPU. El procesamiento de una CPU es un procesamiento EN SERIE, también denominado procesamiento ESCALAR, mientras qué la GPU realiza procesamiento EN PARALELO, también denominado VECTORIAL.

Distintos problemas, distintas soluciones:
El procesamiento en serie o ESCALAR, va leyendo las instrucciones del programa una a una y las va aplicando una a una a los diferentes datos. Este modo de procesamiento también es llamado SISD (Single Instruction, Single Data), en el cual una única instrucción afecta a un único dato, o más bien, tiene un unico output. una instrucción tipo escalar, sería del sentido ‘al valor 14, sumale 34’. En un CU (unidad de computación) de tipo escalar, lo más importante es la latencia, o el retardo, qué se tarda en ir y volver de la memoria, ya qué el trabajo qué se realiza en la CU es escaso, lo qué limita el rendimiento de una CU escalar es la latencia. El símil es qué para ir tu solo a trabajar, lo ideal es tener un deportivo capaz de ir muy rápido..

El procesamiento en paralelo o VECTORIAL, lee las instrucciones de una en una, igual al procesamiento escalar, pero la instrucción afecta a diferentes datos simultáneamente. Este modo de procesamiento también es llamado SIMD (Single Instruction, Multiple Data), puesto qué una única instrucción, se aplica simultáneamente a diversos valores. Un instrucción tipo vectorial seria ‘al set de valores 12, 45, 67 y 34, súmales 12’. En una CU de tipo vectorial, el factor limitante es el ancho de banda de disponible. puesto qué por cada instrucción estamos haciendo ‘el cuádruple’ de trabajo qué con una CU escalar, lo importante es tener un ancho de banda grande qué deje libre el bus lo antes posible. En este caso, el deportivo no es lo más adecuado, y es más interesante contar con un minibus qué permita llevar más personas de ida y vuelta al trabajo, puesto qué aunque vayamos más lento qué en un deportivo, al final, vamos a mover más personas en el mismo tiempo.

Y llegamos al meollo del asunto:
Muy bien, pues en HSA estos dos tipos de CUs tienen un nombre. Las CUs qué son sensibles a la LATENCIA, o sea, las CUs especializadas en trabajar con baja latencia de memoria y qué por tanto son buenas en el trabajo escalar, se denominan LCUs (Latency 'optimized' Compute Unit), o CUs optimizados a la latencia. Mientras qué las CUs especializadas en trabajar con un gran ancho de banda de memoria disponible, y qué por tanto son buenas en los trabajos vectoriales, se denominan TCUs (Throughput 'optimized' Compute Unit), o CUs sensibles al ancho de banda.

Por supuesto, puedes realizar un trabajo evidentemente vectorial (y por tanto sensible al ancho de banda) en una LCU, sería el equivalente a qué 50 personas pueden usar el deportivo para ir a trabajar, pero tendrán qué dar 50 viajes, tardando mucho más qué lo qué tarda un único autobús.

De idéntica manera, puedes usar una TCU para realizar trabajo escalar (o sea, sensible a la latencia), pero es como si fueses tu solo en el autobús, no vas a llegar más rápido por ir tú solo. El autobús va a tardar un tiempo especificado, y no va a tardar menos por ir menos cargado.

Porque cada tipo de CU son distintos, y a la vez, iguales:
En HSA, todas las CUs se cuentan por igual y se suman, puesto qué todas las CUs pueden ejecutar todos los tipos de trabajo. Obviamente, los LCUs serán más óptimos ejecutando código escalar, y los TCUs serán más óptimos ejecutando código vectorial y HSA permite qué el programador ‘aconseje’ un tipo de CU para el código qué debe ejecutarse en la arquitectura, pero la decisión final de donde se ejecuta dicho código corresponde al HSA Runtime, del cual hablaremos más adelante.

Por ahora, y como adelanto de lo qué está por venir, aclarar qué el HSA Runtime puede decidir, por su cuenta y riesgo, ejecutar código qué el programador ha ‘aconsejado’ ejecutar en una TCU, en una LCU en su lugar, porque la ocupación de las TCUs es muy elevada y los LCUs están ociosos. el código ‘recomendado TCU’ seguramente va a tardar más en ejecutarse en una LCU, pero tardaría aún más si tuviese qué esperar la cola.

Obviamente, lo contrario también es cierto. El HSA Runtime puede decidir ejecutar un código recomendado para ejecutarse en una LCU, en una TCU en su lugar, por la misma razón anterior: en la LCU tardaría menos, pero con la cola que tiene que esperar, en la TCU que esta ociosa va a terminar antes.

Mientras más seamos, más reiremos:
En los sistemas x86, y por si todavía alguien tiene la duda, los LCUs son los núcleos de la CPU, y los TCUs son los CUs GCN de la gráfica o integrados en la APU. Por supuesto, es difícil agregar más LCUs a un sistema X86, más qué nada, porque una vez qué has comprado una APU compatible HSA (Como un sistema Kaveri o Carrizo) para aumentar el número de LCUs necesitas cambiar la APU enteramente.

Esto no sucede asi con los TCUs, donde todo lo qué necesitas es comprar una GPU compatible HSA, y obtienes toda una batería de TCUs dispuestas a integrarse y trabajar en toda la arquitectura HSA de tu equipo actual.

Después de este interludio, continuaremos con temas de configuración de memoria en el siguiente artículo.
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: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor Mattmaddrid » 27 Nov 2015, 11:41

Me encanta, muy bien explicado. Tengo una duda:

Me supongo que existirán diferencias físicas entre la LCU y el TCU. Pero en el caso de que fuesen idénticas en su fabricación y la única diferencia fuese su propósito, ¿un sistema fullHSA podría reconfigurar cada una de ellas a placer sin perder cualidades? Me explico:

Antes has explicado que el servicio/proceso/instrucción: "HSA Runtime" decide de forma automática (si no se ha aplicado antes de forma manual por el programador), aplicar una configuración óptima para el trabajo en carga, pero que había penalización dependiendo de si era LCU o TCU. Entonces, mi pregunta es: ¿Cualquiera de las unidades de cómputo puede ser reprogramada sin penalización en su propósito inicial? Es decir, ¿el sistema puede transformar un autobús en un bólido cual transformer se tratase dependiendo de mi demanda, o la fabricación es diferente y por tanto me aguanto con lo que hay?.
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: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor f5inet » 27 Nov 2015, 11:58

Mattmaddrid escribió:Me encanta, muy bien explicado. Tengo una duda:

Me supongo que existirán diferencias físicas entre la LCU y el TCU. Pero en el caso de que fuesen idénticas en su fabricación y la única diferencia fuese su propósito, ¿un sistema fullHSA podría reconfigurar cada una de ellas a placer sin perder cualidades? Me explico:

Antes has explicado que el servicio/proceso/instrucción: "HSA Runtime" decide de forma automática (si no se ha aplicado antes de forma manual por el programador), aplicar una configuración óptima para el trabajo en carga, pero que había penalización dependiendo de si era LCU o TCU. Entonces, mi pregunta es: ¿Cualquiera de las unidades de cómputo puede ser reprogramada sin penalización en su propósito inicial? Es decir, ¿el sistema puede transformar un autobús en un bólido cual transformer se tratase dependiendo de mi demanda, o la fabricación es diferente y por tanto me aguanto con lo que hay?.


Lamentablemente, no es asi. Un deportivo siempre va a ser un deportivo y un autobus siempre va a ser un autobus, a menos que hablemos de dispositivos especificamente reprogramables como las FPGAs, y aun asi, seguirias limitado por la configuracion de RAM que pusieses. La memoria DDR es la idonea para los LCUs, debido a su baja latencia, y la GDDR es la idonea para los TCUs, debido a su altisimo ancho de banda. Realmente, debido a la configuracion de memoria que vas a montar, preparas los caches y el planificador para sacarle el maximo rendimiento posible a la unidad de computo.

¿que puedes tener LCUs corriendo con memoria GDDR? pues claro que si, Xbox360 y PS4 son prueba viviente que puedes hacerlo.
¿puedes tener TCUs corriendo con memoria DDR? las APUs Kaveri y Carrizo son prueba de ello.

Por cierto, tened siempre en cuenta que estamos hablando de COMPUTO, no de graficos. HSA va de COMPUTACION, no de rasterizacion.
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: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor FLASHBACKMAN » 27 Nov 2015, 12:07

Creo haber leído por ahí algo de "cuando un CPU pretende ser un GPU y viceversa"

:cafe:
[+] SPOILER (click para abrir)
Tal y como alguien me dijo hace unos meses... "Mike, your work is done" You've got it.Imagen

Imagen
Avatar de Usuario
FLASHBACKMAN
Nostradamus Digital
Nostradamus Digital
 
Mensajes: 8831
Registrado: 20 Jun 2014, 20:00
Ubicación: Barcelona
Has thanked: 2153 times
Been thanked: 2871 times

Re: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor BiG Porras » 27 Nov 2015, 13:46

FLASHBACKMAN escribió:Creo haber leído por ahí algo de "cuando un CPU pretende ser un GPU y viceversa"

:cafe:

: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

Re: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor FLASHBACKMAN » 27 Nov 2015, 13:52

Ir atando cabos.

Recordad éste post:

viewtopic.php?f=20&t=204

Como ya sabemos en parte gracias al insider
@Papatuelo

las CPU de AMD tienen ALU's FMAC que son básicamente igual a las ALU del GPU. Así que podemos decir que los nuevos CPU de AMD son parcialmente un GPU.
Como ya hemos dicho 40 veces: CP Compute, es la parte "nextgen" que utiliza la solo la "parte" del SIMD del GPU, fusionado con ARM, DSP / FPGA. CP Compute y GP Compute, áreas diferenciadas en las cuales un CPU pretende ser un GPU y un GPU pretende ser un CPU.
[+] SPOILER (click para abrir)
Tal y como alguien me dijo hace unos meses... "Mike, your work is done" You've got it.Imagen

Imagen
Avatar de Usuario
FLASHBACKMAN
Nostradamus Digital
Nostradamus Digital
 
Mensajes: 8831
Registrado: 20 Jun 2014, 20:00
Ubicación: Barcelona
Has thanked: 2153 times
Been thanked: 2871 times

Re: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor CapitanCagon » 27 Nov 2015, 15:47

Avatar de Usuario
CapitanCagon
Usuario de TG
Usuario de TG
 
Mensajes: 1121
Registrado: 23 Jun 2014, 20:16
Has thanked: 259 times
Been thanked: 335 times

Re: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor f5inet » 27 Nov 2015, 16:05



Hay mas tipos de CUs que unicamente los LCUs y los TCUs. Simplemente estos dos son los mas comunes.

pero tambien he visto HCUs, e incluso MCUs.
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: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor vihuquinpa » 27 Nov 2015, 16:31

Aunque se me escapa la mayoria de cosas que dices, se agradece el esfuerzo por explicarlo de la manera mas sencilla posible, gracias F5inet.

Esperando el proximo articulo.

P.D: Seria genial si a la vez que nos explicas que es y como funciona el HSA, pusieses por ejemplo, Xone tiene "x" CUs (o cualquier otro termino), y PS4 tienen tantos, así podriamos hacernos una idea mas clara de la diferencia entre una y otra. Aunque tal vez harás un articulo así mas adelante. Saludos.
Viva el Hype
vihuquinpa
Usuario de TG
Usuario de TG
 
Mensajes: 565
Registrado: 05 Jul 2014, 14:08
Has thanked: 10 times
Been thanked: 100 times

Re: HSA102 - LCUs Y TCUs ¿QUÉ SON?

Notapor nikolas » 27 Nov 2015, 16:53

Muy bueno el articulo, aunque a sabido a poco ;)
Esperando con ansia el siguiente.
Truegamers: home of the real players

Imagen
Avatar de Usuario
nikolas
Moderador
Moderador
 
Mensajes: 3867
Registrado: 08 Ago 2014, 10:55
Has thanked: 310 times
Been thanked: 514 times

Siguiente

Volver a FLASHFORWARD
cron