O que é o Intel® Xeon Phi™ e como ele atinge o impressionante processamento de 1 TFlops

Publicado: 02/22/2013, Última atualização: 02/22/2013


Intel® Xeon Phi™ - 61 cores, 244 threads, 8 GB de memória DDR5 e 1 TFlops.

Antes de mais nada, gostaria de apresentar o Intel® Xeon Phi™ e mostrar como esta pequena obra de arte tecnológica pode lhe trazer benefícios.

Como se pode ver na figura acima, o Xeon Phi™ tem o formato similar ao de uma placa de vídeo PCIe x16, e é um “co-processador”. Ou algo mais do que isso. Na realidade, podemos dizer que ele é um “supercomputador em uma placa”, porque ele possui nada menos do que 61 cores, 8 GB de memória DDR5 e apresenta-se ao sistema (host) como um outro computador, uma vez que virtualiza uma conexão TCP-IP com o host através do barramento PCIe e roda um sistema operacional Linux.

Veremos abaixo como este coprocessador pode, sozinho, entregar 1 TFlops de processamento com dupla precisão (2 TFlops com precisão simples).

A quem se destina?

O Intel® Xeon Phi™ com certeza impressiona a todos, porém é importante entender em que cenários ele realmente brilha.

O Xeon Phi™ destina-se a soluções de Computação de Alto Desempenho (ou HPC – High Performance Computing), como sequenciamento genético, simulações de modelos matemáticos, prospecção de petróleo, síntese de proteínas, previsão do tempo, estudos geofísicos, etc. Ele é voltado para aplicações que fazem uso massivo de processamento paralelo, e que tirem proveito dos seus avançados mecanismos de vetorização.

Vetorização

A vetorização é uma técnica para aumentar a capacidade de processamento de cálculos envolvendo vetores, normalmente operações que envolvem matrizes. Nesses cenários, as mesmas operações matemáticas serão realizadas em todos os elementos de um vetor, conforme o exemplo abaixo:

for (i = 0; i < 1024; i++)

    C[i] = A[i]*B[i];


A Intel introduziu a capacidade de processar mais de um elemento deste vetor de uma única vez na família de processadores Pentium, com a tecnologia MMX™ e suas instruções SIMD (Single Instruction, Multiple Data). A ideia consiste em implementar registros no processador que são maiores do que as estruturas de dados a processar. No exemplo abaixo, 4 estruturas de 32 bits podem ser acomodadas em registros de 128 bits, e o processamento do registro de uma só vez nos fornece o resultado de 4 elementos simultaneamente (C[0], C[1], C[2] e C[3] no exemplo acima). Daí o nome SIMD: em uma instrução, múltiplos elementos (dados) são processados.

A Intel avançou esta tecnologia nos último processadores, implementando o AVX em seus processadores Core de 2ª geração, utilizando registros de 256 bits, e o Intel® Xeon Phi™ leva este limite além, implementando registros de 512 bits, ou seja, sendo capaz de processar, em uma única instrução, 8 números floating-point de dupla precisão (64 bits), ou 16 de precisão simples.

Um pouco mais da arquitetura

Colocar 61 cores em um único chip não é nada simples. Justamente por isso, estes cores não são os circuitos mais avançados que a Intel pode produzir. São uma versão de Pentium otimizada para o tipo de operação que devem realizar, mas para garantir uma alta densidade de cores e um consumo relativamente baixo de energia, são produzidos usando a tecnologia de 22 nm da Intel (a mesma dos processadores mais avançados). Seus cores utilizam um clock de apenas 1,053 GHz.

Cada core tem 512K de cache L2 dedicada e o sistema tem 16 canais de memória de 5.5 Gbit cada, implementando 8 GB de memória DDR5. Estes componentes estão todos conectados por um barramento em anel bidirecional (Ring Interconnect), o que permite, por exemplo, que um “cache miss” de um core seja atendido pela cache L2 de outro core (através deste barramento interno), ao invés de demandar um acesso à memória.

Além disso, cada core implementa uma unidade escalar e uma unidade vetorial, e implementa FMA: Fused Multiply-Add, ou seja, pode realizar 2 operações simultâneas nos registros (multiplicação e adição). Com seu registro de 512 bits, portanto, o Xeon Phi™ pode realizar até de uma só vez 32 operações com números floating point de precisão simples ou 16 operações com precisão dupla.

4 threads por core

A tecnologia de Hyper-Threading, já bastante conhecida, permite executar duas threads simultaneamente. No Xeon Phi™, isto também foi ampliado: cada core é capaz de executar quatro threads simultâneas, o que significa que podemos ter, num só chip, 244 threads rodando ao mesmo tempo!

O mais interessante é que o Xeon Phi™ implementa também um “smart round-robin multi-threading”, o que significa que mesmo que todas as etapas da pipeline de um core levem 4 ciclos para executar, a cada ciclo uma das threads sempre estará concluindo uma operação.

Chegando a 1 TFlops

Em 1997, o primeiro computador Intel capaz de processar numa taxa de 1 TFlops utilizava 9.298 processadores e ocupava 72 gabinetes de servidor.

Hoje, o Intel® Xeon Phi™ processa nesta mesma taxa ocupando 1 slot PCIe!

A parte divertida deste artigo foi introduzir, aos poucos, cada elemento necessário para realizar a conta da capacidade de processamento do  Intel® Xeon Phi™.

Vamos à conta:

Com os 61 cores trabalhando a 1,053 GHz, e entregando 1 operação por ciclo de clock graças às 4 threads por core e o smart round-robin multi-threading, e processando até 8 operações com números floating-point de precisão dupla (8 DP no registro de 512 bits), ou 16 operações com precisão simples, além de realizar 2 instruções simultâneas pelo FMA, temos:

Precisão dupla:           61 * 1,053 (GHz) * 1 * 8 * 2 = 1.027 GFlops → 1 TFlops

Precisão simples:        61 * 1,053 (GHz) * 1 * 16 * 2 = 2.055 GFlops → 2 TFlops

Para obter mais informações sobre o Intel® Xeon Phi™, acesse http://software.intel.com/mic-developer ou entre em contato com seu Community Manager, Luciano Palma.

Informações de produto e desempenho

1

Os compiladores da Intel podem ou não otimizar para o mesmo nível de microprocessadores não Intel no caso de otimizações que não são exclusivas para microprocessadores Intel. Essas otimizações incluem os conjuntos de instruções SSE2, SSE3 e SSSE3, e outras otimizações. A Intel não garante a disponibilidade, a funcionalidade ou eficácia de qualquer otimização sobre microprocessadores não fabricados pela Intel. As otimizações que dependem de microprocessadores neste produto são destinadas ao uso com microprocessadores Intel. Algumas otimizações não específicas da microarquitetura Intel são reservadas para os microprocessadores Intel. Consulte os Guias de Usuário e Referência do produto aplicáveis para obter mais informações sobre os conjuntos de instruções específicos cobertos por este aviso.

Revisão do aviso #20110804