Post on 10-Nov-2021
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