# Larrabee (GPU)

Larrabee fue el nombre en código para un chip GPGPU que Intel intentó desarrollar separadamente de su actual línea de aceleradores de gráficos integrados. El chip iba a ser lanzado en 2010 como el núcleo de una tarjeta gráfica 3D para los consumidores, pero estos planes fueron cancelados debido a los retrasos y las primeras decepcionantes cifras de rendimiento. Se iban a vender como chips que prometían revolucionar el mercado, como una plataforma para la investigación y el desarrollo de los gráficos por ordenador y HPC. El proyecto se canceló, aunque se llegaron a vender prototipos de una versión posterior integrada en una tarjeta de gráficos de consumo. El nombre de Larrabee se rumorea que vino de Larrabee State Park en Washington.

## Comparación con los productos competidores

Larrabee puede considerarse un híbrido entre una CPU multinúcleo y una GPU, y tiene similitudes con ambos. Su jerarquía de caché coherente y compatibilidad con la arquitectura x86 son similares a las CPU, mientras que sus amplias unidades de vectores SIMD y hardware de muestreo de textura son similares a las GPU.
Como GPU, Larrabee soporta gráficos en 3D rasterizados tradicionales (Direct3D y OpenGL) para juegos. Sin embargo, las características híbridas de CPU y GPU de Larrabee deben ser adecuadas para tareas de GPU de propósito general (GPGPU) o de procesamiento de flujo. Por ejemplo, Larrabee podría realizar trazado de rayos o procesamiento físico, en tiempo real para juegos o fuera de línea para la investigación científica como un componente de un superordenador.
DreamWorks Animation se ha asociado con Intel y tiene previsto utilizar Larrabee en la producción cinematográfica. El CEO de DreamWorks Animation, Jeffrey Katzenberg, afirma que "estamos en el buen camino de la mejora de nuestro software para poder aprovechar realmente Larrabee y en términos de velocidad, flexibilidad, capacidad, no solo sube el listón de lo que podemos hacer por 2 o 3 veces, sino por 20".
La presentación temprana de Larrabee ha atraído algunas críticas de los competidores de GPU. En NVISION 08, un empleado de Nvidia llamó al papel del SIGGRAPH de Intel sobre Larrabee "soplo de marketing", y citó a un bloguero (Peter Glaskowsky), que especuló que la arquitectura Larrabee era "como una GPU de 2006". En junio de 2009, prototipos de Larrabee se ha afirmado estar a la par con la Nvidia GeForce GTX 285. Justin Rattner, CTO de Intel, hizo una apertura en la conferencia de 2009 de Supercomputación de 17 de noviembre de 2009. Durante su intervención demostró un procesador Larrabee overclockeado superando un TeraFLOPS en el rendimiento. Él dijo que este era la primera demostración pública de una solución de chip único superando un TeraFLOPS. Señaló que esto era un chip prematuro dejando así abierta la pregunta sobre el rendimiento final de Larrabee. Debido a que este era solo una quinta parte de lo que dispone las tarjetas gráficas de la competencia, Larrabee fue cancelada "como un producto independiente de gráficos discretos" el 4 de diciembre de 2009.

### Diferencias con las GPUs actuales

Larrabee será diferente de otras GPUs discretas actualmente en el mercado, como la serie GeForce 200 y la Radeon 4000 series, de tres formas principales: Larrabee utilizará el conjunto de instrucciones x86, con extensiones Larrabee específicas. Larrabee incluirá coherencia de caché en todos sus núcleos. Larrabee incluirá muy poco hardware gráfico especializado, en lugar de realizar tareas como Z-buffering, saturación, y mezcla de software, utilizando un enfoque de representación basada en azulejo. Esto hace a Larrabee más flexible que las GPUs actuales, lo que permite una mayor diferenciación en apariencia entre juegos u otras aplicaciones 3D. El documento del SIGGRAPH 2008 de Intel menciona varias características de representación que son difíciles de lograr en las GPUs actuales: el lectura de render target, transparencia de órdenes independientes, asignación de sombra irregular y trazado de rayos en tiempo real. A pesar de que Larrabee es mucho más flexible que las GPUs actuales, las GPU de última generación (ATI Radeon HD 5xxx y GeForce de Nvidia de la serie 300) cuentan con capacidades de computación de propósito general cada vez más amplias a través de DirectX11 DirectCompute y OpenCL, así como la tecnología patentada de NVIDIA CUDA.

### Diferencias con las CPU

Los núcleos de procesador x86 en Larrabee serán diferentes en varios aspectos de los núcleos en los actuales procesadores de Intel como el Core 2 Duo o Core i7:
* Los núcleos x86 de Larrabee se basarán en el mucho más simple diseño P54C Pentium que todavía se mantiene para su uso en aplicaciones embebidas. El núcleo P54C derivado es superescalar pero no incluye ejecución fuera de orden, aunque se ha actualizado con características modernas, como soporte x86-64, similar a Intel Atom. La ejecución en orden supone un menor rendimiento para núcleos individuales, pero como son más pequeños, caben más en un solo chip, incrementando el rendimiento general. La ejecución es también más determinista para la instrucción y la programación de tareas se puede hacer por el compilador.
* Cada núcleo Larrabee contiene una unidad de procesamiento vectorial (SIMD) de 512-bits, capaz de procesar 16 números de precisión simple en coma flotante a la vez. Esto es cuatro veces mayor que las funciones SSE en la mayoría de los procesadores x86. Incluye además características adicionales como instrucciones scatter / gather y una máscara de registro diseñado para hacer uso de la unidad de vectores más fácil y eficiente. Larrabee deriva la mayor parte de su potencia de cálculo de estas unidades vectoriales.
* Larrabee incluye una importante característica de función fija de hardware de gráficos: unidades de textura de muestreo. Estas realizan filtrado anisotrópico y trilineal y descompresión de texturas.
* Larrabee tiene un bus en anillo de 1024 bits (512 bits en cada sentido) para la comunicación entre los núcleos y la memoria. [8] Este bus se puede configurar en dos modos para soportar los productos Larrabee con 16 núcleos o más, o menos de 16 núcleos.
* Larrabee incluye instrucciones explícitas de control de caché para reducir la hiper paginación de caché durante las operaciones de transmisión que solo leen/escriben de datos una vez. El prefetching explícito en la caché L1 o L2 también se soporta.
* Cada núcleo soporta multihilo intercalado de 4-vías, con 4 copias de cada registro de procesador.
Teóricamente los núcleos de procesador x86 de Larrabee serán capaces de ejecutar software de PC existente, o incluso sistemas operativos. Sin embargo, la tarjeta de vídeo Larrabee no incluirá todas las características de una placa base compatible con PC, por lo que los sistemas operativos para ordenadores personales y aplicaciones no funcionarán sin modificaciones. Una versión diferente de Larrabee podría montarse en los zócalos de CPU de la placa base mediante QuickPath, pero Intel no ha anunciado planes para ello. Aunque el compilador de C/C++ de Larrabee Nativo incluye auto-vectorización y muchas aplicaciones se pueden ejecutar correctamente después de volverlas a compilar, la máxima eficiencia puede requerir de optimización de código usando en intrínsecos de vectores C++ o el código ensamblador en línea Larrabee. [8] Sin embargo, como en todos los GPGPU, no todos los beneficios de software de la utilización de una unidad de procesamiento vectorial. Un sitio de periodismo tecnológico reclama que las capacidades de los gráficos Larrabee están siendo planificadas para ser integradas en las CPUs basadas en la microarquitectura Haswell.