101
Processadores para computação de alto desempenho Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Computação de Alto Desempenho - Unesp

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computação de Alto Desempenho - Unesp

Processadores para computação de alto

desempenho

Aleardo Manacero Jr.DCCE/UNESP

Grupo de Sistemas Paralelos e Distribuídos

Page 2: Computação de Alto Desempenho - Unesp

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.

Page 3: Computação de Alto Desempenho - Unesp

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

Page 4: Computação de Alto Desempenho - Unesp

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)

Page 5: Computação de Alto Desempenho - Unesp

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

Page 6: Computação de Alto Desempenho - Unesp

(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

Page 7: Computação de Alto Desempenho - Unesp

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

Page 8: Computação de Alto Desempenho - Unesp

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

Page 9: Computação de Alto Desempenho - Unesp

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

Page 10: Computação de Alto Desempenho - Unesp

A técnica de delay slot

Page 11: Computação de Alto Desempenho - Unesp

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)

Page 12: Computação de Alto Desempenho - Unesp

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)

Page 13: Computação de Alto Desempenho - Unesp

Arquitetura VLIW

Modelo de processador

Page 14: Computação de Alto Desempenho - Unesp

Arquitetura VLIW

Formato de instrução e execução

Page 15: Computação de Alto Desempenho - Unesp

Modelos arquiteturais básicos

Page 16: Computação de Alto Desempenho - Unesp

Modelos arquiteturais básicos

Page 17: Computação de Alto Desempenho - Unesp

Modelo de arquitetura CISC

Page 18: Computação de Alto Desempenho - Unesp

Modelo de arquitetura RISC

Page 19: Computação de Alto Desempenho - Unesp

Arquitetura POWER (32 bits)

Page 20: Computação de Alto Desempenho - Unesp

Antigo cenário sobre microprocessadores

Page 21: Computação de Alto Desempenho - Unesp

Cenário atual sobre microprocessadores

E as GPUs?

Page 22: Computação de Alto Desempenho - Unesp

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...

Page 23: Computação de Alto Desempenho - Unesp

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

Page 24: Computação de Alto Desempenho - Unesp

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

Page 25: Computação de Alto Desempenho - Unesp

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

Page 26: Computação de Alto Desempenho - Unesp

Pipelines aritméticos

400 ns

Page 27: Computação de Alto Desempenho - Unesp

Pipelines aritméticos

150 ns

Page 28: Computação de Alto Desempenho - Unesp

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

Page 29: Computação de Alto Desempenho - Unesp

Pipeline de instruções

Page 30: Computação de Alto Desempenho - Unesp

Pipeline de instruções

Page 31: Computação de Alto Desempenho - Unesp

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

Page 32: Computação de Alto Desempenho - Unesp

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)

Page 33: Computação de Alto Desempenho - Unesp

Pipeline linear síncrono

Page 34: Computação de Alto Desempenho - Unesp

Pipeline linear assíncrono

Page 35: Computação de Alto Desempenho - Unesp

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

Page 36: Computação de Alto Desempenho - Unesp

Exemplo pipeline não-linear assíncrono

Page 37: Computação de Alto Desempenho - Unesp

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

Page 38: Computação de Alto Desempenho - Unesp

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

Page 39: Computação de Alto Desempenho - Unesp

Pipelines superescalares

Page 40: Computação de Alto Desempenho - Unesp

Pipelines superescalares

Page 41: Computação de Alto Desempenho - Unesp

Pipeline superescalar (threads)

Page 42: Computação de Alto Desempenho - Unesp

Pipeline processadores MIPS

Page 43: Computação de Alto Desempenho - Unesp

Arquitetura de alguns processadores

Page 44: Computação de Alto Desempenho - Unesp

MIPS64bits

Page 45: Computação de Alto Desempenho - Unesp

Sandy Bridge

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

Observar também os elementos especializados

Page 46: Computação de Alto Desempenho - Unesp

Sandy Bridge

Page 47: Computação de Alto Desempenho - Unesp

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

Page 48: Computação de Alto Desempenho - Unesp

Haswell

Page 49: Computação de Alto Desempenho - Unesp

Haswell

Page 50: Computação de Alto Desempenho - Unesp

Haswell

Page 51: Computação de Alto Desempenho - Unesp

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

Page 52: Computação de Alto Desempenho - Unesp

Coffee Lake

Page 53: Computação de Alto Desempenho - Unesp

Coffee Lake

Page 54: Computação de Alto Desempenho - Unesp

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

Page 55: Computação de Alto Desempenho - Unesp

AMD Bulldozer (2011 a 2017)

Page 56: Computação de Alto Desempenho - Unesp

AMD Bulldozer

Page 57: Computação de Alto Desempenho - Unesp

AMD Ryzen

Page 58: Computação de Alto Desempenho - Unesp

AMD Ryzen

Page 59: Computação de Alto Desempenho - Unesp

Arquitetura Power8

Page 60: Computação de Alto Desempenho - Unesp

Arquitetura Power8

Page 61: Computação de Alto Desempenho - Unesp

Sparc M7

Page 62: Computação de Alto Desempenho - Unesp

Sparc M7

Page 63: Computação de Alto Desempenho - Unesp

Sparc M7

Page 64: Computação de Alto Desempenho - Unesp

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

Page 65: Computação de Alto Desempenho - Unesp

Sistema de multiprocessadores (Power cells)

Page 66: Computação de Alto Desempenho - Unesp

Diagrama interno de um SPE

Page 67: Computação de Alto Desempenho - Unesp

Anéis da rede interna

Page 68: Computação de Alto Desempenho - Unesp

Placa vetorial Cray Y-MP

Page 69: Computação de Alto Desempenho - Unesp

Arquitetura Cray XT4

Page 70: Computação de Alto Desempenho - Unesp

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

Page 71: Computação de Alto Desempenho - Unesp

ATOM (Intel)

Page 72: Computação de Alto Desempenho - Unesp

ATOM (Intel)

Page 73: Computação de Alto Desempenho - Unesp

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

Page 74: Computação de Alto Desempenho - Unesp

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

Page 75: Computação de Alto Desempenho - Unesp

Nvidia - Kepler

Page 76: Computação de Alto Desempenho - Unesp

Nvidia - Kepler

Page 77: Computação de Alto Desempenho - Unesp

Nvidia - Kepler

Page 78: Computação de Alto Desempenho - Unesp

Nvidia - Kepler

Tesla

Kepler

Page 79: Computação de Alto Desempenho - Unesp

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

Page 80: Computação de Alto Desempenho - Unesp

Arquitetura do Xeon Phi

Page 81: Computação de Alto Desempenho - Unesp

Modos de execução

Page 82: Computação de Alto Desempenho - Unesp

Xeon Phi (Knights Landing)

Page 83: Computação de Alto Desempenho - Unesp

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

Page 84: Computação de Alto Desempenho - Unesp

ARM processors – Cortex A9

Page 85: Computação de Alto Desempenho - Unesp

Rex Neo processors (fake?)

Page 86: Computação de Alto Desempenho - Unesp

Rex Neo processors

Page 87: Computação de Alto Desempenho - Unesp

Rex Neo processors

Page 88: Computação de Alto Desempenho - Unesp

TPUs

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

Deep Learning depende intensamente de redes neurais

Resultados bastante promissores

Page 89: Computação de Alto Desempenho - Unesp

TPUs

Desempenho relativo a CPU

Page 90: Computação de Alto Desempenho - Unesp

TPUs

Projeto da rede neural

Page 91: Computação de Alto Desempenho - Unesp

TPUs

Modelo estrutural de uma TPU

Page 92: Computação de Alto Desempenho - Unesp

TPUs

Diagrama de blocos da TPU

Page 93: Computação de Alto Desempenho - Unesp

TPUs

Multiplicação de matrizes com TPU

Page 94: Computação de Alto Desempenho - Unesp

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)

Page 95: Computação de Alto Desempenho - Unesp

Quantum computing

Técnicas usam:

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

quantum annealing (DWave)

Page 96: Computação de Alto Desempenho - Unesp

Quantum computing

Page 97: Computação de Alto Desempenho - Unesp

Quantum computing - Google

Page 98: Computação de Alto Desempenho - Unesp

Quantum computing (Intel)

Page 99: Computação de Alto Desempenho - Unesp

Chip neuromórfico (Intel)

Page 100: Computação de Alto Desempenho - Unesp

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

Page 101: Computação de Alto Desempenho - Unesp

Processadores para HPC