Larrabee (microarquitectura) - Larrabee (microarchitecture)

La arquitectura de la GPU Larrabee, presentada en la conferencia SIGGRAPH en agosto de 2008.

Larrabee es el nombre en clave de un chip GPGPU cancelado que Intel estaba desarrollando por separado de su línea actual de aceleradores de gráficos integrados . Lleva el nombre de Mount Larrabee o del Parque Estatal Larrabee en el condado de Whatcom, Washington, cerca de la ciudad de Bellingham. El chip iba a ser lanzado en 2010 como el núcleo de una tarjeta gráfica 3D de consumo, pero estos planes se cancelaron debido a retrasos y cifras de rendimiento iniciales decepcionantes. El proyecto para producir un producto minorista de GPU directamente del proyecto de investigación de Larrabee finalizó en mayo de 2010 y su tecnología se pasó al Xeon Phi . La arquitectura multiprocesador Intel MIC anunciada en 2010 heredó muchos elementos de diseño del proyecto Larrabee, pero no funciona como una unidad de procesamiento de gráficos; el producto está diseñado como coprocesador para informática de alto rendimiento.

Casi una década después, el 12 de junio de 2018; la idea de una GPU dedicada de Intel se revivió nuevamente (como Intel Xe ) con el deseo de Intel de crear una GPU discreta, que se lanzará en 2020. Sin embargo, sigue siendo incierto si este nuevo desarrollo está conectado con los desarrollos de Larrabee.

Estado del proyecto

El 4 de diciembre de 2009, Intel anunció oficialmente que Larrabee de primera generación no se lanzaría como producto GPU de consumo. En cambio, se lanzaría como una plataforma de desarrollo para gráficos y computación de alto rendimiento . La razón oficial del reinicio estratégico se atribuyó a retrasos en el desarrollo de hardware y software. El 25 de mayo de 2010, el blog Technology @ Intel anunció que Larrabee no se lanzaría como GPU, sino que se lanzaría como un producto para computación de alto rendimiento que compite con Nvidia Tesla .

El proyecto para producir un producto minorista de GPU directamente del proyecto de investigación de Larrabee finalizó en mayo de 2010. La arquitectura multiprocesador Intel MIC anunciada en 2010 heredó muchos elementos de diseño del proyecto Larrabee, pero no funciona como una unidad de procesamiento de gráficos; el producto está diseñado como coprocesador para informática de alto rendimiento. La tarjeta prototipo se llamó Knights Ferry , una tarjeta de producción construida en un proceso de 22 nm llamado Knights Corner se planeó para la producción en 2012 o después.

Comparación con productos de la competencia

Según Intel, Larrabee tiene una tubería completamente programable, en contraste con las tarjetas gráficas de la generación actual que son solo parcialmente programables.

Larrabee puede considerarse un híbrido entre una CPU multinúcleo y una GPU , y tiene similitudes con ambas. Su jerarquía de caché coherente y la compatibilidad de la arquitectura x86 son similares a las de una CPU, mientras que sus amplias unidades vectoriales SIMD y su hardware de muestreo de texturas son similares a las de una GPU.

Como GPU, Larrabee habría admitido gráficos 3D rasterizados tradicionales ( Direct3D y OpenGL ) para juegos. Sin embargo, su hibridación de funciones de CPU y GPU también debería haber sido adecuada para GPU de propósito general (GPGPU) o tareas de procesamiento de transmisión . Por ejemplo, podría haber realizado el trazado de rayos o el procesamiento de la física , en tiempo real para juegos o fuera de línea para la investigación científica como un componente de una supercomputadora .

La presentación inicial de Larrabee generó algunas críticas de los competidores de GPU. En NVISION 08 , un empleado de Nvidia llamó al documento SIGGRAPH de Intel sobre Larrabee "bocanada de marketing" y citó a un analista de la industria ( Peter Glaskowsky ) que especuló que la arquitectura de Larrabee era "como una GPU de 2006". En junio de 2009, Intel afirmó que los prototipos de Larrabee estaban a la par con la Nvidia GeForce GTX 285 . Justin Rattner , CTO de Intel , pronunció un discurso de apertura en la conferencia Supercomputing 2009 el 17 de noviembre de 2009. Durante su charla, demostró un procesador Larrabee overclockeado superando un teraFLOPS en rendimiento. Afirmó que esta era la primera demostración pública de un sistema de un solo chip que excedía un teraFLOPS. Señaló que esto era el silicio temprano, dejando abierta la pregunta sobre el rendimiento final de la arquitectura. Debido a que esto era solo una quinta parte de las tarjetas gráficas de la competencia disponibles, Larrabee fue cancelado "como un producto gráfico independiente independiente" el 4 de diciembre de 2009.

Diferencias con las GPU contemporáneas

Se pretendía que Larrabee se diferenciara de las GPU discretas más antiguas, como la serie GeForce 200 y la serie Radeon 4000, en tres aspectos principales:

  • Debía utilizar el conjunto de instrucciones x86 con extensiones específicas de Larrabee.
  • Debía presentar coherencia de caché en todos sus núcleos.
  • Debía incluir muy poco hardware de gráficos especializado, en lugar de realizar tareas como almacenamiento en búfer z, recorte y combinación de software, utilizando un enfoque de renderizado basado en mosaicos .

Se esperaba que esto hiciera a Larrabee más flexible que las GPU actuales, permitiendo una mayor diferenciación en apariencia entre juegos u otras aplicaciones 3D. El documento SIGGRAPH 2008 de Intel mencionó varias funciones de renderizado que eran difíciles de lograr en las GPU actuales: renderizar la lectura de destino, transparencia independiente del orden , mapeo de sombras irregulares y trazado de rayos en tiempo real .

Las GPU más recientes, como la Radeon HD 5xxx de ATI y la serie GeForce 400 de Nvidia, cuentan con capacidades informáticas de uso general cada vez más amplias a través de DirectX11 DirectCompute y OpenCL, así como la tecnología CUDA patentada de Nvidia , lo que les otorga muchas de las capacidades de Larrabee.

Diferencias con las CPU

Los núcleos del procesador x86 en Larrabee se diferenciaban en varios aspectos de los núcleos de las CPU Intel actuales, como Core 2 Duo o Core i7 :

  • Sus núcleos x86 se basaron en el diseño Pentium P54C, mucho más simple , que aún se mantiene para su uso en aplicaciones integradas . El núcleo derivado de P54C es superescalar pero no incluye ejecución fuera de orden , aunque se ha actualizado con características modernas como soporte x86-64 , similar a la microarquitectura Bonnell utilizada en Atom . La ejecución en orden significa un menor rendimiento para los núcleos individuales, pero como son más pequeños, pueden caber más en un solo chip, lo que aumenta el rendimiento general. La ejecución también es más determinista, por lo que el compilador puede realizar la programación de instrucciones y tareas.
  • Cada núcleo contenía una unidad de procesamiento vectorial de 512 bits , capaz de procesar 16 números de punto flotante de precisión simple a la vez. Esto es similar, pero cuatro veces más grande, que las unidades SSE en la mayoría de los procesadores x86, con características adicionales como instrucciones de dispersión / recopilación y un registro de máscara diseñado para que el uso de la unidad vectorial sea más fácil y eficiente. Larrabee derivaría la mayor parte de su poder de procesamiento numérico de estas unidades vectoriales.
  • Incluía una característica importante de hardware de gráficos de función fija : unidades de muestreo de textura . Realizan filtrado trilineal y anisotrópico y descompresión de texturas .
  • Tenía un bus de anillo de 1024 bits (512 bits en cada sentido) para la comunicación entre los núcleos y la memoria. Este bus se puede configurar en dos modos para admitir productos Larrabee con 16 núcleos o más, o menos de 16 núcleos.
  • Incluía instrucciones explícitas de control de caché para reducir la eliminación de caché durante las operaciones de transmisión que solo leen / escriben datos una vez. También se admite la captación previa explícita en la caché L2 o L1.
  • Cada núcleo admitía subprocesos múltiples intercalados de cuatro vías, con cuatro copias de cada registro de procesador .

En teoría, los núcleos de procesador x86 de Larrabee habrían podido ejecutar software de PC existente, o incluso sistemas operativos. Es posible que una versión diferente del procesador se coloque en los zócalos de la CPU de la placa base utilizando QuickPath , pero Intel nunca anunció ningún plan para esto. Aunque el compilador nativo de C / C ++ de Larrabee incluía vectorización automática y muchas aplicaciones podían ejecutarse correctamente después de haber sido recompiladas, se esperaba que la máxima eficiencia requiriera la optimización del código utilizando intrínsecos vectoriales C ++ o código ensamblador de Larrabee en línea. Sin embargo, como en todas las GPGPU, no todo el software se habría beneficiado de la utilización de una unidad de procesamiento vectorial. Un sitio de periodismo tecnológico afirma que se planeó que las capacidades gráficas de Larrabee se integraran en las CPU basadas en la microarquitectura Haswell .

Comparación con el motor de banda ancha de Cell

La filosofía de Larrabee de usar muchos núcleos pequeños y simples era similar a las ideas detrás del procesador Cell . Hay otros puntos en común, como el uso de un bus de anillo de gran ancho de banda para comunicarse entre núcleos. Sin embargo, hubo muchas diferencias significativas en la implementación que se esperaba que simplificaran la programación de Larrabee.

  • El procesador Cell incluye un procesador principal que controla muchos procesadores más pequeños. Además, el procesador principal puede ejecutar un sistema operativo. Por el contrario, todos los núcleos de Larrabee son iguales, y no se esperaba que Larrabee ejecutara un sistema operativo.
  • Cada núcleo de computadora en la celda ( SPE ) tiene un almacén local, para el cual se utilizan operaciones explícitas ( DMA ) para todos los accesos a DRAM. No se permiten lecturas y escrituras ordinarias en DRAM. En Larrabee, todas las memorias en chip y fuera de chip están bajo una jerarquía de caché coherente administrada automáticamente , de modo que sus núcleos comparten virtualmente un espacio de memoria uniforme a través de instrucciones de copia estándar ( MOV ). Los núcleos de Larrabee tenían cada uno 256 KB de caché L2 local, y un acceso que llega a otro segmento L2 tarda más en acceder.
  • Debido a la coherencia de la caché mencionada anteriormente, cada programa que se ejecutaba en Larrabee tenía virtualmente una gran memoria lineal al igual que en la CPU tradicional de propósito general; mientras que una aplicación para Cell debe programarse teniendo en cuenta la huella de memoria limitada de la tienda local asociada con cada SPE (para obtener más detalles, consulte este artículo ) pero con un ancho de banda teóricamente mayor. Sin embargo, dado que el acceso a L2 local es más rápido, aún se puede obtener una ventaja al utilizar métodos de programación de estilo Cell.
  • Cell usa DMA para la transferencia de datos hacia y desde memorias locales en chip, lo que permite el mantenimiento explícito de superposiciones almacenadas en la memoria local para acercar la memoria al núcleo y reducir las latencias de acceso, pero requiere un esfuerzo adicional para mantener la coherencia con la memoria principal; mientras que Larrabee usó una caché coherente con instrucciones especiales para la manipulación de la caché (en particular, sugerencias de desalojo de caché e instrucciones de búsqueda previa), que mitigó las sanciones por fallas y desalojos y redujo la contaminación de la caché (por ejemplo, para renderizar tuberías y otros cálculos similares a flujos) a costa de tráfico adicional y gastos generales para mantener la coherencia de la caché.
  • Cada núcleo de cómputo en la celda ejecuta solo un subproceso a la vez, en orden. Un núcleo en Larrabee tenía hasta cuatro subprocesos, pero solo uno a la vez. El hyperthreading de Larrabee ayudó a ocultar las latencias inherentes a la ejecución en orden.

Comparación con Intel GMA

Intel comenzó a integrar una línea de GPU en placas base bajo la marca Intel GMA en 2004. Al integrarse en placas base (las versiones más nuevas, como las lanzadas con Sandy Bridge, se incorporan en el mismo chip que la CPU), estos chips no se vendieron por separado. Aunque el bajo costo y el consumo de energía de los chips Intel GMA los hicieron adecuados para computadoras portátiles pequeñas y tareas menos exigentes, carecen de la potencia de procesamiento de gráficos 3D para competir con las GPU Nvidia y AMD / ATI contemporáneas por una parte del mercado de computadoras de juegos de alta gama. , el mercado de HPC , o un lugar en las consolas de videojuegos más populares . Por el contrario, Larrabee iba a venderse como una GPU discreta, separada de las placas base, y se esperaba que funcionara lo suficientemente bien como para ser considerada en la próxima generación de consolas de videojuegos.

El equipo que trabajaba en Larrabee estaba separado del equipo de Intel GMA. El hardware fue diseñado por un equipo recién formado en el sitio de Intel en Hillsboro, Oregon , separado de los que diseñaron el Nehalem . El software y los controladores fueron escritos por un equipo recién formado. La pila 3D fue escrita específicamente por desarrolladores de RAD Game Tools (incluido Michael Abrash ).

El Intel Visual Computing Institute investigará tecnologías básicas y aplicadas que podrían aplicarse a los productos basados ​​en Larrabee.

Datos de rendimiento proyectados

Resultados de la evaluación comparativa del documento SIGGRAPH de 2008, que muestran el rendimiento previsto como una función lineal aproximada del número de núcleos de procesamiento

El artículo SIGGRAPH 2008 de Intel describe simulaciones con precisión de ciclo (se incluyeron limitaciones de memoria, cachés y unidades de textura) del rendimiento proyectado de Larrabee. Los gráficos muestran cuántos núcleos Larrabee de 1 GHz se requieren para mantener 60 cuadros / sa una resolución de 1600 × 1200 en varios juegos populares. Se requieren aproximadamente 25 núcleos para Gears of War sin antialiasing, 25 núcleos para FEAR con 4 × antialiasing y 10 núcleos para Half-Life 2: Episodio 2 con 4 × antialiasing. Intel afirmó que Larrabee probablemente funcionaría más rápido que 1 GHz, por lo que estos números no representan núcleos reales, sino cortes de tiempo virtuales de los mismos. Otro gráfico muestra que el rendimiento en estos juegos escala casi linealmente con la cantidad de núcleos hasta 32 núcleos. A 48 núcleos, el rendimiento cae al 90% de lo que se esperaría si continuara la relación lineal.

Un artículo de PC Watch de junio de 2007 sugirió que los primeros chips Larrabee contarían con 32 núcleos de procesador x86 y saldrían a finales de 2009, fabricados en un proceso de 45 nanómetros . Los chips con algunos núcleos defectuosos debido a problemas de rendimiento se venderían como una versión de 24 núcleos. Más adelante en 2010, Larrabee se reduciría para un proceso de fabricación de 32 nanómetros para permitir una versión de 48 núcleos.

La última declaración de rendimiento se puede calcular (en teoría, este es el rendimiento máximo posible) de la siguiente manera: 32 núcleos × 16 SIMD flotante de precisión simple / núcleo × 2 FLOP (fusionado multiplicar-agregar) × 2 GHz = 2 TFLOPS en teoría.

Manifestaciones públicas

Una demostración pública de las capacidades de trazado de rayos de Larrabee tuvo lugar en el Intel Developer Forum en San Francisco el 22 de septiembre de 2009. Una versión temprana del antiguo proyecto de investigación basado en CPU Quake Wars: Ray Trace d se mostró en tiempo real. La escena contenía una superficie de agua trazada por rayos que reflejaba con precisión los objetos circundantes, como un barco y varios vehículos voladores.

Se ofreció una segunda demostración en la conferencia SC09 en Portland el 17 de noviembre de 2009 durante una conferencia magistral a cargo del CTO de Intel, Justin Rattner . Una tarjeta Larrabee pudo lograr 1006 GFLops en el cálculo SGEMM 4Kx4K.

Linus Sebastian adquirió y revisó una muestra de ingeniería de una tarjeta Larrabee en un video publicado el 14 de mayo de 2018. Sin embargo, no pudo hacer que la tarjeta diera salida de video, ya que la placa base mostraba el código POST D6.

Ver también

Referencias

enlaces externos