Cell (y sus amigos Linux y PS3)

Cell (y sus amigos Linux y PS3)

Ayer hablamos de Linux en el PlayStation 3 y se armó una discusión muy interesante sobre el procesador Cell (también conocido como Broadband Processor Architecture o BPA) de Sony + Toshiba + IBM (STI), ya que es el corazón del PlayStation 3, y el anuncio de que será posible correr Linux en él. Coincidentalmente un par de días antes mi amigo Peta Fernandez me habia enviado un mail con muchos links sobre el procesador Cell (insistia en que debia escribir una nota al respecto), el PlayStation y Linux. Asi que aqui comparto algunas notas.

En breves palabras, el procesador Cell consiste en 1 nucleo 64-bit Power/PPC de propósito general conectado a 8 núcleos DSP de propósitos especiales (o SPU). La arquitectura básica es descrita por IBM como un “system on a chip” (SoC) pero ArsTechnica prefiere describirlo como un “network on a chip”, y me parece que es más correcto. Los ocho SPUs son esencialmente completos “computadores” vectoriales, ya que consisten de CPUs relativamente simples con su propio almacenamiento, todos conectados entre ellos y con el núcleo PPC. La magia consiste en que este procesador (cuya primera generación es de 4.8 Ghz), será capaz de usar conectividad de banda ancha de ultra alta velocidad (“ultra high-speed“) para que un procesador interopere con otro como si fueran un gran sistema. Similar al sistema en que las celulas neuronales interoperan sobre la red del cerebro. (Wow. Deberian llamarlo “Brain Cell”.)

¿Qué tiene esto que ver con GNU/Linux, el PlayStation 3 y Apple? Bueno, sigue leyendo.

Primero que nada, partamos por lo último. Apple e IBM acaban de tomar caminos diferentes. Apple optó por Intel (x86) en vez de seguir usando la tecnología de IBM (Power/PPC). Analicemos esto por un segundo. Apple usa procesadores PowerPC y Cell tiene un núcleo PowerPC. Hasta ahi todo bien, y teoricamente Apple podría haber aprovechado los giga flops de poder (15 GFlops del G5 versus 218 GFlops del Cell) para seguir avanzando por ese camino. Al fin y al cabo, 8 de los 15 Top SuperComputers son Power/PPC. El primer problema, es que todo ese poder todavía no es portátil y Apple vende más portátiles que estaciones de escritorio (la fortaleza de Intel, que ahora promete un Pentium M “Yonah” dóble núcleo de 2 Ghz para portátiles el 2006). El segundo, es que para incrustar un núcleo PPC en el Cell, tuvieron que simplificar su unidad VMX/AltiVec (la gracia del G5) al nivel que no es mejor que el VMX/AltiVec del G4. La tercera razón es que Apple igual hubiese tenido que reoptimizar todo para sacar provecho de las SPUs. Tecnicamente hubiesen podido, pero ya han invertido fuertemente en AltiVec y este procesador es relativamente débil en AltiVec.

Las fortalezas de Cell hacen que sea un candidato perfecto para ser el procesador de, por decir cualquier cosa, un PlayStation, y (oh! sorpresa) efectivamente es el corazón del próximo PlayStation 3. Con 218 GFlops es increiblemente poderoso, pero ni se acerca a un “supercomputador” (no importa que diga Sony, el BlueGene, el supercomputador más poderoso del mundo constituido por 131,072 procesadores, produce 91,750 GFlops), mejor dicho, ni le alcanza para entrar al Top 500. La gracia es que el procesador Cell esta optimizado para actividades de red, de audio y video. Perfecto para un centro de entretenimiento (Nintendo y Microsoft ambos usan procesadores Power/PPC de IBM pero sólo Sony usa un procesador Cell). En el caso del PlayStation, usa un CPU Cell con un núcleo PowerPC a 3.2 Ghz y 8 SPUs a 3.2 Ghz cada uno (con 1 reservado para redundancia), entregando un rendimiento de punto flotante de 218 GFlops (repito, PowerMac G5 = 15 GFlops). Adicionalmente tendrá un GPU dedicado (procesador gráfico), desarrollado por nVidia, RSX a 550 Mhz procesando 1.8 TFlops. Ahora imaginense a los tipos de “Enchulame la Maquina” instalando 3 de esos en un Honda Integra.

Lo interesante no es únicamente que a mediados del 2006 vamos a tener un equipo que cueste entre US$300 y US$500 con 2 TFlops (CPU + GPU) de poder y un procesador capaz de trabajar en ambientes de procesamiento colaborativo, repartiendo la carga sobre todos los procesadores que esten en red (como un cluster funciona sobre redes de Gigabit Ethernet o Fiber Channel). Adicionalmente, Sony anunció que apoyará Linux y que vendrá instalado en un disco duro removible que será vendido por ellos. Linux en Cell está más avanzado de lo que parece. En LinuxTag 2005 apareció Arnd Bergmann hablando sobre su trabajo en eso:

A diferencia de sistemas SMP o chips multi-núcleos (multi-core), sólo el núcleo PowerPC de propósito general, es capaz de correr un sistema operativo generico, mientras que las SPUs son especializadas en correr tareas computacionales. Portar Linux para que corra en el núcleo PowerPC de un procesador Cell es una tarea relativamente simple por las similaridades existentes con plataformas como la IBM pSeries o Apple PowerMac, pero no da acceso al inmenso poder computacional de las SPUs.

Se ha propuesto un modelo para proporcionar una interfaz que intente integrarse bien al set existente de llamadas del sistema en Linux y permita que los desarrolladores de software puedan facilmente integrar el uso de SPUs a sus propias librerias y aplicaciones.

Ahora imaginense en un mundo lleno de procesadores Cell trabajando colaborativamente sobre redes de banda ancha de ultra alta velocidad corriendo Linux. Ese mundo será Tokyo o Hong Kong el 2006. (gracias Peta por todos los links!)