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


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.

如需更全面地了解编译器优化,请参阅优化注意事项