Computação de Alto Desempenho - Unesp

Preview:

Citation preview

Processadores para computação de alto

desempenho

Aleardo Manacero Jr.DCCE/UNESP

Grupo de Sistemas Paralelos e Distribuídos

Introdução

Nesta aula apresentaremos características de processadores e como elas influenciam no desempenho de um sistema

Mostraremos também alguns processadores reais, de várias épocas

Começaremos falando da arquitetura do conjunto de instruções, ou ISA.

O debate CISC x RISC

O que é CISC e RISC?

São formas de estruturar as instruções do processador quanto aos padrões de codificação e execução

Antigamente….

Processadores RISC usam poucas instruções com formatos rígidos

Processadores CISC usam muitas instruções com formatos distintos

O debate CISC x RISC

RISC é mais eficiente, porém mais complexo e usa mais memória.

Mesmo sendo menos eficiente, a maioria das máquinas usavam processadores CISC (até começo dos anos 90)

Problemas da primeira geração RISC

A não adoção inicial de RISC se deu por:

Falta de sistemas operacionais e compiladores adaptados aos processadores RISC

Os executáveis eram muito grandes por terem muitas instruções

A pouca variedade de instruções de máquina exigia a construção de instruções de software

(R)evolução do RISC

Aumento no número de transistores por chip

Pipelining é mais fácil se instruções têm mesmo tamanho

Surgimento de compiladores mais otimizados

Características de processadores RISC

Uso intensivo de pipeliningTodo o projeto RISC é voltado para facilitar o uso de pipelines

Instruções de mesmo tamanhoEssa característica é a que mais reforça o conceito de pipeline, uma vez que é possível uniformizar todo o processo de transferência de dados e instruções

Características de processadores RISC

Arquitetura LOAD/STORETodo acesso à memória ocorre apenas através de instruções LOAD ou STORE, não sendo possível outras operações nela

Endereçamento simplesComo apenas LOAD e STORE acessam a memória não são necessárias variações nesse formato. As outras instruções acessam apenas registradores

Características de processadores RISC

Ponto flutuante em pipelinesComo todas as instruções têm mesmo formato, incluindo as de ponto flutuante, é possível executá-las em pipelines

Tratamento de desviosSão necessários para evitar esvaziamentos frequentes do pipeline. Usa técnicas de predição, delay slot e execução condicional

A técnica de delay slot

Segunda geração RISC

Chegada dos processadores “SUPER”

SuperescalaresPermitem a execução simultânea de várias

instruções através de vias de execução paralelas

SuperpipelinesFazem a construção de estágios cada vez

mais especializados, chegando a 31 estágios (geração Prescott do Pentium 4)

Outros caminhos

CISC e RISC não são as únicas soluções possíveis.

A família pentium, por exemplo, misturava os dois conceitos

Outra saída é o uso de processadores VLIW (very-long instruction word)

Arquitetura VLIW

Modelo de processador

Arquitetura VLIW

Formato de instrução e execução

Modelos arquiteturais básicos

Modelos arquiteturais básicos

Modelo de arquitetura CISC

Modelo de arquitetura RISC

Arquitetura POWER (32 bits)

Antigo cenário sobre microprocessadores

Cenário atual sobre microprocessadores

E as GPUs?

Cenário atual sobre microprocessadores

Preocupação com consumo de energia

Design orientado pela aplicação, ou seja, menos clock e instruções por ciclo quando é preciso economizar energia

Em alguns casos usando ASICs

Para alto desempenho a preocupação é como refrigerar os processadores...

Lei de Moore

Continua aplicável

Não se resume a número de transistores ou velocidade da CPU

Na verdade é uma referência econômica sobre gerações de circuitos integrados

Pipelines

O uso de pipelines é uma das formas de se acelerar o processamento

Pipelines surgem em duas formas:

Pipeline aritméticos

Pipeline de instruções

Pipelines aritméticos

Envolvem a decomposição de operações aritméticas em etapas funcionais

São mais simples de implementar e não envolvem problemas de predição ou de esvaziamentos

Pipelines aritméticos

400 ns

Pipelines aritméticos

150 ns

Pipeline de instruções

Envolve as várias etapas de execução de uma instrução, como busca, decodificação, etc

É mais complicado pois essas etapas possuem comportamentos distintos para tipos distintos de instruções

Pipeline de instruções

Pipeline de instruções

Antigamente...

Pipelines podiam ser classificados como sendo lineares ou não-lineares

Com o aumento na complexidade dos pipelines o conceito de linearidade (típico nos antigos pipelines RISC) foi abandonado

Mas ainda é útil no entendimento dos hazards de um pipeline

Pipelines lineares

Caracterizados como uma linha de produção serial típica

Mais simples de serem compreendidos

O fluxo dos dados/instruções pode ser feito de forma

síncrona (latches e relógio único), ou

assíncrona (sinais de requisição e reconhecimento)

Pipeline linear síncrono

Pipeline linear assíncrono

Pipeline não-linear

É um pipeline em que o fluxo pelos estágios pode sofrer grandes desvios ou até formar ciclos

Fundamental para CISC, pois instruções de formatos diferentes demandam caminhos de execução diferentes

Seu controle é tipicamente assíncrono

Exemplo pipeline não-linear assíncrono

Pipelines superescalares

São pipelines com uma grande quantidade de estágios e caminhos possíveis

São característicos dos processadores modernos

Permitem, em determinados estágios, a execução de vários caminhos (instruções) simultaneamente

Pipelines superescalares

Permitem o escalonamento de instruções fora de ordem (out-of-order execution), a partir do momento em que a instrução:

Tem dados disponíveis

Tem unidade operacional disponível

Não criará conflitos

Pipelines superescalares

Pipelines superescalares

Pipeline superescalar (threads)

Pipeline processadores MIPS

Arquitetura de alguns processadores

MIPS64bits

Sandy Bridge

Observar o anel ligando as caches locais (nível 1)

Observar também os elementos especializados

Sandy Bridge

Haswell

Quarta geração da família i3,5,7

Do ponto de vista da Intel representou avanços mais significativos do que a geração anterior

Haswell

Haswell

Haswell

Coffee Lake (8a e 9a geração)

Coffee Lake

Coffee Lake

AMD Opteron

Processadores Opteron trabalham com 64 bits, sendo suas principais características:

Endereços virtuais de 48 bits

Endereços físicos de 40 bits

Caches L1 e L2 separadas para cada núcleo

Cache L1 é composta por 64Kbytes para dados e 64Kbytes para instruções

3 conexões para E-S (16 bits em cada direção) suportam conexões entre processadores

AMD Bulldozer (2011 a 2017)

AMD Bulldozer

AMD Ryzen

AMD Ryzen

Arquitetura Power8

Arquitetura Power8

Sparc M7

Sparc M7

Sparc M7

Sistema de multiprocessadores (Power cells)

Processador Power (PPE) cuida do SO e controle das SPE

Processadores sinergísticos (SPE) fazem o processamento real, através de sua unidade de processamento (SPU) e de interface (MFC)

Comunicação ocorre por 4 anéis de 16 bytes de largura cada

Sistema de multiprocessadores (Power cells)

Diagrama interno de um SPE

Anéis da rede interna

Placa vetorial Cray Y-MP

Arquitetura Cray XT4

Processadores de baixo consumo

Uma alternativa hoje é o uso de uma grande quantidade de processadores de baixo consumo de energia para fazer um paralelismo em larga escala

Nessa categoria aparecem processadores como o ATOM, Vortex e as GPU´s

ATOM (Intel)

ATOM (Intel)

Graphical Processing Units

O uso de GPUs como elementos de aceleração de processamento tem crescido

A idéia é usar GPUs como processadores das partes não sequenciais de um programa

A GPU Fermi, da Nvidia, apresenta até 512 núcleos por chassi

A GPU Kepler, da Nvidia, chega a 2688 núcleos, atingindo 1.31 Tflops

Graphical Processing Units

Arquitetura Tesla, com o lançamento da GPU V100 (Volta) possui 5120 núcleos e 640 tensores

Atinge 7,8 Tflops em dupla precisão e 125 Tflops para operações com tensores

Usada no Summit da IBM

Nvidia - Kepler

Nvidia - Kepler

Nvidia - Kepler

Nvidia - Kepler

Tesla

Kepler

Graphical Processing Units

Além da NVIDIA temos também GPUs da Intel, através da família Xeon Phi

Atinge desempenho de 1TFlops, através de 60 núcleos executando até 240 threads

Arquitetura do Xeon Phi

Modos de execução

Xeon Phi (Knights Landing)

Processadores ARM

São processadores de consumo de energia muito baixo, chegando a menos de 2 watts no processador e menos de 12 watts num sistema completo

Uso inicial em dispositivos móveis

Tem se tornado uma alternativa para uso como processador auxiliar

ARM processors – Cortex A9

Rex Neo processors (fake?)

Rex Neo processors

Rex Neo processors

TPUs

Uso de circuitos ASIC (application-specific integrated circuit) para resolver redes neurais

Deep Learning depende intensamente de redes neurais

Resultados bastante promissores

TPUs

Desempenho relativo a CPU

TPUs

Projeto da rede neural

TPUs

Modelo estrutural de uma TPU

TPUs

Diagrama de blocos da TPU

TPUs

Multiplicação de matrizes com TPU

Quantum computing

Ainda longe de ser realidade, apesar de protótipos

Informação é representada por níveis energéticos de spin

Demanda uso de supercondutores (temperaturas próximas de 0 kelvin)

Quantum computing

Técnicas usam:

quantum logic-gates (Google, IBM e Intel) ou

quantum annealing (DWave)

Quantum computing

Quantum computing - Google

Quantum computing (Intel)

Chip neuromórfico (Intel)

Processadores para HPC

Tendência para uso de processadores “comuns”, em organização manycores e multicomputadores

Cuidados recentes (nem tanto) com economia de energia

Problemas de conectividade a serem resolvidos para sistemas exascale

Processadores para HPC

Recommended