HSA para desarrolladores: computación heterogénea para las masas

Publicado: 2022-03-11

¿Qué tienen en común los fabricantes de chips como AMD, ARM, Samsung, MediaTek, Qualcomm y Texas Instruments? Bueno, además de las similitudes obvias entre estos gigantes de la fabricación de chips, también resultan ser los fundadores de la Fundación HSA. ¿Qué es HSA y por qué necesita una base respaldada por pesos pesados ​​de la industria?

En esta publicación, intentaré explicar por qué HSA podría ser un gran problema en el futuro cercano, así que comenzaré con lo básico: ¿Qué es HSA y por qué debería importarle ?

HSA significa Arquitectura de sistema heterogéneo, lo que suena un poco aburrido, pero créanme, podría volverse muy emocionante, de hecho. HSA es esencialmente un conjunto de estándares y especificaciones diseñadas para permitir una mayor integración de CPU y GPU en el mismo bus. Este no es un concepto completamente nuevo; Las CPU de escritorio y los SoC móviles han estado empleando gráficos integrados y usando un solo bus durante años, pero HSA lo lleva al siguiente nivel.

Misma carga, diferentes arquitecturas: las CPU y las GPU se destacan en diferentes tareas. ¿Qué sucede cuando comienzan a compartir la carga, sin participación del desarrollador?

Misma carga, diferentes arquitecturas: las CPU y las GPU se destacan en diferentes tareas. ¿Qué sucede cuando comienzan a compartir la carga, sin participación del desarrollador?
Pío

En lugar de simplemente usar el mismo bus y la memoria compartida para la CPU y la GPU, HSA también permite que estas dos arquitecturas muy diferentes funcionen en conjunto y compartan tareas . Puede que no suene como un gran problema, pero si observa más de cerca y examina los posibles efectos a largo plazo de este enfoque, comienza a verse muy "dulce" en un sentido técnico.

¡Oh, no! Aquí hay otro estándar tonto que los desarrolladores deben implementar

Si y no.

La idea de compartir el mismo bus no es nueva, y tampoco lo es la idea de emplear GPU altamente paralelizados para ciertas tareas de cómputo (que no implican renderizar fotografías). Ya se ha hecho antes, y supongo que la mayoría de nuestros lectores ya están familiarizados con los estándares GPGPU como CUDA y OpenCL.

Sin embargo, a diferencia del enfoque CUDA o OpenCL, HSA eliminaría efectivamente al desarrollador de la ecuación, al menos cuando se trata de asignar diferentes cargas a diferentes núcleos de procesamiento. El hardware decidiría cuándo descargar los cálculos de la CPU a la GPU y viceversa. No se supone que HSA reemplace los lenguajes de programación GPGPU establecidos como OpenCL, ya que también se pueden implementar en el hardware HSA.

Ese es el objetivo de la HSA: se supone que hace que todo el proceso sea fácil, incluso sin problemas. Los desarrolladores no necesariamente tendrán que pensar en descargar los cálculos a la GPU. El hardware lo hará automáticamente.

Una gran cantidad de grandes nombres apoyan HSA. Sin embargo, los pesos pesados ​​de la industria Intel y Nvidia no están en la lista.

Una gran cantidad de grandes nombres apoyan HSA. Sin embargo, los pesos pesados ​​de la industria Intel y Nvidia no están en la lista.
Pío

Para lograr esto, HSA tendrá que contar con el apoyo de varios fabricantes de chips y proveedores de hardware. Si bien la lista de partidarios de HSA es impresionante, Intel brilla por su ausencia en este verdadero quién es quién en la industria de los chips. Dada la participación de mercado de Intel en los mercados de procesadores de escritorio y servidor, esto es un gran problema. Otro nombre que no encontrará en la lista es Nvidia, que se centra en CUDA y actualmente es el líder del mercado de cómputo GPU.

Sin embargo, HSA no está diseñado únicamente para sistemas y aplicaciones de alto rendimiento, en hardware que generalmente tiene una etiqueta Intel Inside . HSA también se puede utilizar en dispositivos móviles energéticamente eficientes, donde Intel tiene una participación de mercado insignificante.

Entonces, se supone que HSA hace la vida más fácil, pero ¿es relevante todavía? ¿Se prenderá? No se trata de una cuestión tecnológica, sino económica. Dependerá de la mano invisible del mercado. Entonces, antes de continuar, comencemos por echar un vistazo más de cerca a dónde están las cosas en este momento y cómo llegamos aquí.

Desarrollo de HSA, problemas de dentición y preocupaciones de adopción

Como dije en la introducción, HSA no es exactamente un concepto novedoso. Originalmente fue concebido por Advanced Micro Devices (AMD), que tenía un gran interés en hacerlo despegar. Hace una década, AMD compró a los especialistas en gráficos ATI y, desde entonces, la empresa ha estado tratando de aprovechar su acceso a la tecnología de GPU de vanguardia para impulsar las ventas generales.

A primera vista, la idea era bastante simple: AMD no solo continuaría desarrollando y fabricando GPU discretas de vanguardia, sino que también integraría la tecnología de GPU de ATI en sus procesadores. El departamento de marketing de AMD llamó a la idea 'Fusion', y HSA se denominó Fusion System Architecture (FSA). Suena genial, ¿verdad? Conseguir un procesador x86 decente con buenos gráficos integrados sonaba como una buena idea, y lo era.

Desafortunadamente, AMD se topó con una serie de problemas en el camino; Destacaré algunos de ellos:

  • Cualquier buena idea en tecnología seguramente será recogida por los competidores, en este caso, Intel.
  • AMD perdió la ventaja tecnológica frente a Intel y encontró cada vez más difícil competir en el mercado de CPU debido al liderazgo tecnológico de fundición de Intel.
  • La ejecución de AMD fue problemática y muchos de los nuevos procesadores llegaron tarde al mercado. Otros fueron desechados por completo.
  • La crisis económica de 2008 y la subsiguiente revolución móvil no ayudaron.

Estos, y una serie de otros factores, conspiraron para mitigar la ventaja de AMD e impedir la adopción de sus productos y tecnologías en el mercado. AMD comenzó a implementar procesadores con la nueva generación de gráficos Radeon integrados a mediados de 2011 y comenzó a llamarlos Unidades de procesamiento acelerado (APU) en lugar de CPU.

Dejando de lado el marketing, la primera generación de APU de AMD (cuyo nombre en código es Llano) fue un fracaso. Los chips llegaron tarde y no pudieron seguir el ritmo de las ofertas de Intel. Tampoco se incluyeron características serias de HSA, pero AMD comenzó a agregarlas en su plataforma de 2012 (Trinity, que era esencialmente Llano bien hecho). El siguiente paso llegó en 2014, con la introducción de las APU Kaveri, que admitían una gestión de memoria heterogénea (la GPU IOMMU y la CPU MMU compartían el mismo espacio de direcciones). Kaveri también generó una mayor integración arquitectónica, lo que permitió una memoria coherente entre la CPU y la GPU (AMD lo llama hUMA, que significa Acceso a la memoria unificada heterogénea). La actualización posterior de Carizzo agregó aún más funciones de HSA, lo que permitió que el procesador cambiara de contexto las tareas de cómputo en la GPU y hiciera algunos trucos más.

La próxima arquitectura de CPU Zen y las APU construidas sobre ella prometen ofrecer aún más, siempre y cuando aparezca en el mercado.

¿Entonces, cuál es el problema?

AMD no fue el único fabricante de chips que se dio cuenta del potencial de las GPU integradas. Intel también comenzó a agregarlos a sus CPU Core, al igual que los fabricantes de chips ARM, por lo que las GPU integradas se utilizan actualmente en prácticamente todos los SoC de teléfonos inteligentes, además de la gran mayoría de las PC/Mac. Mientras tanto, la posición de AMD en el mercado de CPU se vio erosionada. La caída de la cuota de mercado hizo que las plataformas de AMD fueran menos atractivas para los desarrolladores, las empresas e incluso los consumidores. Simplemente no hay muchas PC basadas en AMD en el mercado, y Apple no usa procesadores AMD en absoluto (aunque sí usó gráficos AMD, principalmente debido a la compatibilidad con OpenCL).

AMD ya no compite con Intel en el mercado de CPU de alta gama, pero incluso si lo hiciera, no haría mucha diferencia a este respecto. La gente no compra estaciones de trabajo de $2,000 o PC para juegos para usar gráficos integrados. Usan gráficos caros y discretos y no se preocupan mucho por la eficiencia energética.

¿Qué tal algunas HSA para teléfonos inteligentes y tabletas?

Pero espera. ¿Qué pasa con las plataformas móviles? ¿No podría AMD simplemente implementar soluciones similares para chips de teléfonos inteligentes y tabletas? Bueno, no, en realidad no.

Verá, unos años después de la adquisición de ATI, AMD se encontró en una situación financiera difícil, agravada por la crisis económica, por lo que decidió vender su división de GPU móvil Imageon a Qualcomm. Qualcomm cambió el nombre de los productos a Adreno (anagrama de Radeon) y se convirtió en el jugador dominante en el mercado de procesadores de teléfonos inteligentes, utilizando GPU internas recién pintadas.

Como algunos de ustedes pueden notar, vender un conjunto de gráficos para teléfonos inteligentes justo cuando la revolución de los teléfonos inteligentes estaba a punto de comenzar, no parece un movimiento comercial brillante, pero supongo que en retrospectiva siempre es 20/20.

HSA solía asociarse únicamente con AMD y sus procesadores x86, pero ya no es así. De hecho, si todos los miembros de la Fundación HSA comenzaran a enviar procesadores para teléfonos inteligentes ARM habilitados para HSA, venderían más que los procesadores x86 de AMD varias veces, tanto en términos de ingresos como de unidades enviadas. Entonces, ¿qué sucede si lo hacen? ¿Qué significaría eso para la industria y los desarrolladores?

Bueno, para empezar, los procesadores de teléfonos inteligentes ya dependen de la computación heterogénea, más o menos. La computación heterogénea generalmente se refiere al concepto de usar diferentes arquitecturas en un solo chip, y considerando todos los componentes que se encuentran en los SoC altamente integrados de la actualidad, esta podría ser una definición muy amplia. Como resultado, casi todos los SoC pueden considerarse una plataforma informática heterogénea, según los estándares de cada uno. A veces, las personas incluso se refieren a diferentes procesadores basados ​​en el mismo conjunto de instrucciones como una plataforma heterogénea (por ejemplo, chips móviles con núcleos ARM Cortex-A57 y A53, ambos basados ​​en el conjunto de instrucciones ARMv8 de 64 bits).

Muchos observadores están de acuerdo en que la mayoría de los procesadores basados ​​en ARM ahora pueden considerarse plataformas heterogéneas, incluidos los chips de la serie A de Apple, los SoC Samsung Exynos y procesadores similares de otros proveedores, a saber, grandes jugadores como Qualcomm y MediaTek.

Pero, ¿por qué alguien necesitaría HSA en los procesadores de teléfonos inteligentes? ¿No es el objetivo de usar GPU para computación general lidiar con cargas de trabajo profesionales, no Angry Birds y Uber?

Sí lo es, pero eso no significa que no se pueda utilizar un enfoque casi idéntico para aumentar la eficiencia, que es una prioridad en el diseño de procesadores móviles. Por lo tanto, en lugar de procesar innumerables tareas en paralelo en una estación de trabajo de alta gama, HSA también podría usarse para hacer que los procesadores móviles sean más eficientes y versátiles.

Pocas personas miran de cerca estos procesadores, generalmente revisan la hoja de especificaciones cuando compran un teléfono nuevo y eso es todo: miran los números y las marcas. Por lo general, no miran el chip SoC en sí, lo que nos dice mucho, y he aquí por qué: las GPU en los procesadores de teléfonos inteligentes de gama alta ocupan más espacio de silicio que las CPU. Teniendo en cuenta que ya están allí, sería bueno darles un buen uso en otras aplicaciones además de los juegos, ¿no?

Un procesador de teléfono inteligente hipotético y totalmente compatible con HSA podría permitir a los desarrolladores aprovechar este potencial sin agregar mucho a los costos generales de producción, implementar más funciones y aumentar la eficiencia.

Esto es lo que HSA podría hacer por los procesadores de teléfonos inteligentes, al menos en teoría:

  • Mejore la eficiencia transfiriendo tareas adecuadas a la GPU.
  • Aumente el rendimiento descargando la CPU en algunas situaciones.
  • Utilice el bus de memoria de manera más eficaz.
  • Reduzca potencialmente los costos de fabricación de chips aprovechando más silicio a la vez.
  • Introducir nuevas funciones que los núcleos de la CPU no podrían manejar de manera eficiente.
  • Agilizar el desarrollo en virtud de la estandarización.

Suena bien, especialmente cuando considera que es poco probable que los desarrolladores pierdan mucho tiempo en la implementación. Esa es la teoría, pero tendremos que esperar para verlo en acción, y eso puede llevar un tiempo.

¿Cómo funciona HSA de todos modos?

Ya describí los conceptos básicos en la introducción, y dudo en entrar en demasiados detalles por un par de razones: a nadie le gustan las novelas cortas publicadas en un blog de tecnología, y las implementaciones de HSA pueden diferir.

Por lo tanto, intentaré resumir el concepto en unos pocos cientos de palabras.

En un sistema estándar, una aplicación descargaría los cálculos de la GPU transfiriendo los búferes a la GPU, lo que implicaría una llamada de la CPU antes de la cola. Luego, la CPU programaría el trabajo y lo pasaría a la GPU, que lo devolvería a la CPU al finalizar. Luego, la aplicación obtendría el búfer, que nuevamente tendría que ser mapeado por la CPU antes de que esté listo. Como puede ver, este enfoque implica muchas idas y venidas.

Diferentes arquitecturas en un bus de memoria. La racionalización es la esencia de HSA.

Diferentes arquitecturas en un bus de memoria. La racionalización es la esencia de HSA.
Pío

En un sistema HSA, la aplicación pondría en cola el trabajo, la CPU HSA se haría cargo, lo pasaría a la GPU, lo recuperaría y lo enviaría a la aplicación. Hecho.

Esto es posible al compartir la memoria del sistema directamente entre la CPU y la GPU, aunque también podrían estar involucradas otras unidades informáticas (DSP, por ejemplo). Para lograr este nivel de integración de memoria, HSA emplea un espacio de direcciones virtuales para dispositivos informáticos. Esto significa que los núcleos de CPU y GPU pueden acceder a la memoria en igualdad de condiciones , siempre que compartan tablas de páginas, lo que permite que diferentes dispositivos intercambien datos a través de punteros.

Obviamente, esto es excelente para la eficiencia, porque ya no es necesario asignar memoria a la GPU y la CPU usando memoria virtual para cada una. Gracias a la memoria virtual unificada, ambos pueden acceder a la memoria del sistema según sus necesidades, lo que garantiza una utilización superior de los recursos y una mayor flexibilidad.

Imagine un sistema de bajo consumo con 4 GB de RAM, de los cuales 512 MB se asignan a la GPU integrada. Este modelo generalmente no es flexible y no puede cambiar la cantidad de memoria GPU sobre la marcha. Estás atascado con 256 MB o 512 MB, y eso es todo. Con HSA, puede hacer lo que quiera: si descarga muchas cosas en la GPU y necesita más RAM para la GPU, el sistema puede asignarlas. Por lo tanto, en aplicaciones vinculadas a gráficos, con una gran cantidad de activos de alta resolución, el sistema podría terminar asignando 1 GB o más de RAM a la GPU, sin problemas.

En igualdad de condiciones, los sistemas HSA y no HSA compartirán el mismo ancho de banda de memoria , tendrán acceso a la misma cantidad de memoria , pero el sistema HSA podría terminar usándolo de manera mucho más eficiente, mejorando así el rendimiento y reduciendo el consumo de energía. Se trata de conseguir más por menos.

¿Para qué sería buena la computación heterogénea?

¿La respuesta sencilla? La informática heterogénea, o HSA como una de sus implementaciones, debería ser una buena opción para todas las tareas informáticas más adecuadas para las GPU que para las CPU. Pero, ¿qué significa eso exactamente? ¿Para qué sirven las GPU?

Las GPU modernas e integradas no son muy poderosas en comparación con los gráficos discretos (especialmente las tarjetas gráficas para juegos de gama alta y las soluciones para estaciones de trabajo), pero son mucho más poderosas que sus predecesoras.

Si no ha estado al tanto, puede suponer que estas GPU integradas son una broma, y ​​durante años fueron solo eso: gráficos para cajas baratas para el hogar y la oficina. Sin embargo, esto comenzó a cambiar a principios de la década, ya que las GPU integradas pasaron del conjunto de chips al paquete de la CPU y murieron, volviéndose verdaderamente integradas .

Así es como se ve un chip de procesador AMD hoy en día. Todavía los llamamos procesadores, pero la GPU ocupa mucho más espacio de silicio que la CPU.

Así es como se ve un chip de procesador AMD hoy en día. Todavía los llamamos procesadores, pero la GPU ocupa mucho más espacio de silicio que la CPU.
Pío

Si bien todavía tienen una potencia lamentablemente baja en comparación con las GPU insignia, incluso las GPU integradas tienen mucho potencial. Como todas las GPU, sobresalen en cargas de instrucción única, datos múltiples (SIMD) e instrucción única, subprocesos múltiples (SIMT). Si necesita procesar muchos números en cargas repetitivas y paralelas, las GPU deberían ayudar. Las CPU, por otro lado, siguen siendo mejores en cargas de trabajo pesadas y ramificadas.

Es por eso que las CPU tienen menos núcleos, generalmente entre dos y ocho, y los núcleos están optimizados para el procesamiento en serie secuencial. Las GPU tienden a tener docenas, cientos y, en las tarjetas gráficas discretas emblemáticas, miles de núcleos más pequeños y eficientes. Los núcleos de GPU están diseñados para manejar múltiples tareas simultáneamente, pero estas tareas individuales son mucho más simples que las que maneja la CPU. ¿Por qué sobrecargar la CPU con tales cargas, si la GPU puede manejarlas con una eficiencia y/o rendimiento superiores?

Pero si las GPU son tan buenas en eso, ¿por qué no comenzamos a usarlas como dispositivos informáticos generales hace años? Bueno, la industria lo intentó, pero el progreso fue lento y limitado a ciertos nichos. El concepto se llamó originalmente Computación de Propósito General en Unidades de Procesamiento de Gráficos (GPGPU). En los viejos tiempos, el potencial era limitado, pero el concepto de GPGPU era sólido y posteriormente se adoptó y estandarizó en la forma de CUDA de Nvidia y OpenCL de Apple/Khronos Group.

CUDA y OpenCL marcaron una gran diferencia, ya que permitieron a los programadores usar las GPU de una manera diferente y mucho más efectiva. Sin embargo, eran específicos del proveedor. Podría usar CUDA en el hardware de Nvidia, mientras que OpenCL estaba reservado para el hardware de ATI (y Apple lo adoptó). La API DirectCompute de Microsoft se lanzó con DirectX 11 y permitió un enfoque limitado e independiente del proveedor (pero se limitó a Windows).

Resumamos enumerando algunas aplicaciones para computación GPU:

  • Computación tradicional de alto rendimiento (HPC) en forma de clústeres de HPC, supercomputadoras, clústeres de GPU para cargas informáticas, computación GRID, equilibrio de carga.

  • Cargas que requieren física , que pueden, pero no necesariamente, involucrar juegos o gráficos en general. También se pueden usar para manejar cálculos de dinámica de fluidos, física estadística y algunas ecuaciones y algoritmos exóticos.

  • Geometría , casi todo lo relacionado con la geometría, incluidos los cálculos de transparencia, las sombras, la detección de colisiones, etc.

  • Procesamiento de audio , usando una GPU en lugar de DSP, procesamiento de voz, procesamiento de señales analógicas y más.

  • El procesamiento de imágenes digitales es para lo que están diseñadas las GPU (obviamente), por lo que pueden usarse para acelerar el posprocesamiento y la decodificación de imágenes y videos. Si necesita decodificar una transmisión de video y aplicar un filtro, incluso una GPU de nivel de entrada limpiará el piso con una CPU.

  • Computación científica , incluida la investigación climática, la astrofísica, la mecánica cuántica, el modelado molecular, etc.

  • Otras tareas computacionalmente intensivas , a saber, cifrado/descifrado. Ya sea que necesite "minar" criptomonedas, cifrar o descifrar sus datos confidenciales, descifrar contraseñas o detectar virus, la GPU puede ayudarlo.

Esta no es una lista completa de posibles aplicaciones de cómputo de GPU, pero los lectores que no estén familiarizados con el concepto deberían tener una idea general de lo que hace que el cómputo de GPU sea diferente. También dejé fuera aplicaciones obvias, como juegos y gráficos profesionales.

De todos modos, no existe una lista completa, porque la computación GPU se puede usar para todo tipo de cosas, desde finanzas e imágenes médicas hasta cargas de bases de datos y estadísticas. Estás limitado por tu propia imaginación. La llamada visión por computadora es otra aplicación prometedora. Es bueno tener una GPU capaz si necesita "enseñar" a un dron o automóvil sin conductor a evitar árboles, peatones y otros vehículos.

Siéntase libre de insertar su broma favorita de Lindsay Lohan aquí.

Desarrollo para HSA: hora de malas noticias

Esta puede ser mi opinión personal en lugar de un hecho, pero creo en HSA. Creo que el concepto tiene mucho potencial, siempre que se implemente correctamente y gane suficiente apoyo entre los fabricantes de chips y los desarrolladores. Sin embargo, el progreso ha sido dolorosamente lento, o tal vez ese es solo mi sentimiento, con una pizca de ilusión. Simplemente me gusta ver la nueva tecnología en acción, y soy cualquier cosa menos una persona paciente.

El problema con HSA es que aún no está allí . Eso no significa que no despegará, pero puede llevar un tiempo. Después de todo, no solo estamos hablando de nuevas pilas de software; HSA requiere nuevo hardware para hacer su magia. El problema con esto es que gran parte de este hardware todavía está en la mesa de dibujo, pero estamos llegando allí. Lentamente.

Desafortunadamente, la pila de soluciones de HSA incluye más que el conjunto estándar de herramientas de software. La computación heterogénea es una simbiosis de software y hardware.

Desafortunadamente, la pila de soluciones de HSA incluye más que el conjunto estándar de herramientas de software. La computación heterogénea es una simbiosis de software y hardware.
Pío

Esto no significa que los desarrolladores no estén trabajando en proyectos relacionados con HSA, pero no hay mucho interés o progreso. Aquí hay algunos recursos que debe consultar si desea probar la HSA:

  • HSA Foundation @ GitHub es, obviamente, el lugar para los recursos relacionados con HSA. La Fundación HSA publica y mantiene una serie de proyectos en GitHub, incluidos depuradores, compiladores, herramientas vitales de HSAIL y mucho más. La mayoría de los recursos están diseñados para hardware AMD.

  • Los recursos de HSAIL proporcionados por AMD le permiten tener una mejor idea de las especificaciones de HSAIL. HSAIL significa HSA Intermediate Language, y es básicamente la herramienta clave para los escritores de compiladores de back-end y los escritores de bibliotecas que desean apuntar a dispositivos HSA.

  • El Manual de referencia del programador de HSA (PDF) incluye la especificación completa de HSAIL, además de una explicación completa del lenguaje intermedio.

  • Los recursos de la Fundación HSA son limitados por el momento y el Programa de Desarrolladores de la fundación "llegará pronto", pero hay una serie de herramientas oficiales para desarrolladores que puede consultar. Más importante aún, le darán una buena idea de la pila que necesitará para comenzar.

  • El blog oficial de AMD también presenta contenido útil de HSA.

Esto debería ser suficiente para comenzar, siempre que sea del tipo curioso. La verdadera pregunta es si debería o no molestarse para empezar.

El futuro de la informática HSA y GPU

Cada vez que cubrimos una tecnología emergente, nos enfrentamos al mismo dilema: ¿Deberíamos decirles a los lectores que dediquen tiempo y recursos a ella, o que se mantengan alejados, adoptando el enfoque de esperar y ver?

Ya he dejado en claro que estoy algo sesgado porque me gusta el concepto general de computación GPU, pero la mayoría de los desarrolladores pueden prescindir de él, por ahora. Incluso si despega, HSA tendrá un atractivo limitado y no preocupará a la mayoría de los desarrolladores. Sin embargo, podría ser importante en el futuro. Desafortunadamente para AMD, es poco probable que cambie las reglas del juego en el mercado de procesadores x86, pero podría resultar más importante en los procesadores móviles basados ​​en ARM. Puede que haya sido idea de AMD, pero empresas como Qualcomm y MediaTek están mejor posicionadas para llevar hardware habilitado para HSA a cientos de millones de usuarios.

Tiene que ser una simbiosis perfecta de software y hardware. Si los fabricantes de chips móviles se vuelven locos con HSA, sería un gran problema. Una nueva generación de chips HSA desdibujaría la línea entre los núcleos de CPU y GPU. Compartirían el mismo bus de memoria en igualdad de condiciones, y creo que las empresas comenzarán a comercializarlos de manera diferente. Por ejemplo, AMD ya está comercializando sus APU como "dispositivos informáticos" compuestos por diferentes "núcleos informáticos" (CPU y GPU).

Los chips móviles podrían terminar usando un enfoque similar. En lugar de comercializar un chip con ocho o diez núcleos de CPU y tal o cual GPU, los fabricantes de chips podrían empezar a hablar de clústeres, módulos y unidades. Por lo tanto, un procesador con cuatro núcleos de CPU pequeños y cuatro grandes sería un procesador de "clúster dual" o "módulo dual", o un diseño de "clúster triple" o "clúster cuádruple", si se tienen en cuenta los núcleos de GPU. . Muchas especificaciones técnicas tienden a perder sentido con el tiempo, por ejemplo, el DPI en la impresora de su oficina o el número de megapíxeles en la cámara de su teléfono inteligente barato.

HSA permite que diferentes arquitecturas hagan su propio esfuerzo y aborden cargas muy diferentes con mayor eficiencia.

HSA permite que diferentes arquitecturas hagan su propio esfuerzo y aborden cargas muy diferentes con mayor eficiencia.
Pío

Sin embargo, no es solo marketing. Si las GPU se vuelven tan flexibles como los núcleos de la CPU y son capaces de acceder a los recursos del sistema en igualdad de condiciones que la CPU, ¿por qué deberíamos molestarnos en llamarlas por su nombre real? Hace dos décadas, la industria dejó de usar coprocesadores matemáticos (FPU) dedicados cuando se convirtieron en un componente imprescindible de cada CPU. Solo un par de ciclos de productos más tarde, olvidamos que alguna vez existieron.

Tenga en cuenta que HSA no es la única forma de aprovechar las GPU para el cálculo.

Intel y Nvidia no están a bordo y su enfoque es diferente. Intel ha aumentado discretamente la inversión en I+D de GPU en los últimos años, y sus últimas soluciones de gráficos integrados son bastante buenas. A medida que las GPU integradas se vuelvan más potentes y ocupen más espacio de silicio, Intel tendrá que encontrar formas más ingeniosas de usarlas para la informática en general.

Nvidia, por otro lado, se retiró del mercado de gráficos integrados hace años (cuando dejó de producir conjuntos de chips para PC), pero probó suerte en el mercado de procesadores ARM con sus procesadores de la serie Tegra. No fueron un gran éxito, pero todavía se utilizan en algunos hardware, y Nvidia está centrando sus esfuerzos en los sistemas integrados, a saber, la automoción. En esta configuración, la GPU integrada hace su propio esfuerzo, ya que puede usarse para detección de colisiones, navegación en interiores, mapeo 3D, etc. ¿Recuerdas el Proyecto Tango de Google? Parte del hardware se basó en chips Tegra, lo que permitió la detección de profundidad y algunos otros trucos ingeniosos. En el lado opuesto del espectro, la línea de productos Tesla de Nvidia cubre el mercado de cómputo GPU de gama alta y asegura el dominio de Nvidia en este nicho en los próximos años.

¿Línea de fondo? Sobre el papel, la computación GPU es un gran concepto con mucho potencial, pero el estado actual de la tecnología deja mucho que desear. HSA debe recorrer un largo camino para abordar la mayoría de estos problemas. Además, no es compatible con todos los actores de la industria, lo que está destinado a retrasar aún más la adopción.

Puede tomar algunos años, pero confío en que las GPU finalmente se levantarán para ocupar el lugar que les corresponde en el campo de la computación general, incluso en los chips móviles. La tecnología está casi lista y la economía hará el resto. ¿Cómo? Bueno, aquí hay un ejemplo simple. Los procesadores Atom de la generación actual de Intel cuentan con 12 a 16 GPU Execution Units (EU), mientras que sus predecesores tenían solo cuatro EU, basados ​​en una arquitectura más antigua. A medida que las GPU integradas se vuelven más grandes y potentes, y que su área de matriz aumenta, los fabricantes de chips no tendrán más remedio que utilizarlas para mejorar el rendimiento y la eficiencia generales. No hacerlo sería malo para los márgenes y los accionistas.

No se preocupe, aún podrá disfrutar de juegos ocasionales en esta nueva generación de GPU. Sin embargo, incluso cuando no esté jugando, la GPU hará muchas cosas en segundo plano, descargando la CPU para aumentar el rendimiento y la eficiencia.

Creo que todos podemos estar de acuerdo en que esto sería un gran problema, especialmente en dispositivos móviles económicos.

Relacionado: Una breve descripción de la API de Vulkan