Processador Manycore - Manycore processor
Os processadores Manycore são tipos especiais de processadores multi-core projetados para um alto grau de processamento paralelo , contendo vários núcleos de processador independentes e mais simples (de algumas dezenas de núcleos a milhares ou mais). Os processadores Manycore são usados extensivamente em computadores embarcados e computação de alto desempenho .
Contraste com arquitetura multicore
Os processadores manycore são diferentes dos processadores multi-core por serem otimizados desde o início para um maior grau de paralelismo explícito e para maior rendimento (ou menor consumo de energia) à custa da latência e menor desempenho de thread único .
A categoria mais vasta de processadores múltiplos núcleos , por contraste, são normalmente concebidos para executar eficientemente tanto paralela e código de série, e, por conseguinte, dar mais ênfase elevado desempenho fio único (por exemplo, a dedicar mais silício para fora da execução da ordem , mais profundas condutas , mais superscalar unidades de execução e caches maiores e mais gerais) e memória compartilhada . Essas técnicas dedicam recursos de tempo de execução para descobrir o paralelismo implícito em um único encadeamento. Eles são usados em sistemas onde evoluíram continuamente (com compatibilidade com versões anteriores) a partir de processadores de núcleo único. Eles geralmente têm 'poucos' núcleos (por exemplo, 2,4,8) e podem ser complementados por um acelerador de muitos núcleos (como uma GPU ) em um sistema heterogêneo .
Motivação
A coerência do cache é um problema que limita a escala de processadores multicore. Os processadores manycore podem contornar isso com métodos como passagem de mensagens , memória de rascunho , DMA , espaço de endereço global particionado ou caches somente leitura / não coerentes. Um processador manycore usando uma rede em um chip e memórias locais dá ao software a oportunidade de otimizar explicitamente o layout espacial das tarefas (por exemplo, como visto em ferramentas desenvolvidas para TrueNorth ).
Os processadores manycore podem ter mais em comum (conceitualmente) com as tecnologias originadas na computação de alto desempenho , como clusters e processadores vetoriais .
As GPUs podem ser consideradas uma forma de processador manycore com várias unidades de processamento de sombreador e são adequadas apenas para código altamente paralelo (alto rendimento, mas desempenho de thread único extremamente pobre).
Modelos de programação adequados
- Interface de passagem de mensagens
- OpenCL ou outras APIs que suportam kernels de computação
- Espaço de endereço global particionado
- Modelo de ator
- OpenMP
- Dataflow
Classes de sistemas manycore
- GPUs , que podem ser descritos como processadores de vetor manycore
- Matriz de processadores massivamente paralela
- Matriz assíncrona de processadores simples
Arquiteturas manycore específicas
- ZettaScaler [1] , módulos japoneses PEZY Computing 2048-core
- Coprocessador Xeon Phi , que possui arquitetura MIC ( Muitos Cores Integradas )
- Tilera
- Adapteva Epiphany Architecture, um chip manycore que usa memória de rascunho PGAS
- Processador Coherent Logix hx3100 , um processador DSP / GPP de 100 núcleos baseado na arquitetura HyperX
- Movidius Myriad 2 , uma unidade de processamento de visão manycore
- Kalray , um acelerador PCI-e manycore para tarefas que usam muitos dados
- Teraflops Research Chip, um processador de muitos núcleos que usa a passagem de mensagens
- TrueNorth um acelerador AI com uma rede manycore em uma arquitetura de chip
- Green arrays um processador manycore usando a passagem de mensagens voltada para aplicativos de baixo consumo de energia
- Eyeriss , um processador manycore projetado para executar redes neurais convolucionais para aplicações de visão incorporadas
- Graphcore , um acelerador de AI de muitos núcleos
Computadores manycore específicos com 1M + núcleos de CPU
Vários computadores construídos a partir de processadores multicore têm um milhão ou mais núcleos de CPU individuais. Exemplos incluem:
- Sunway TaihuLight , um supercomputador chinês maciçamente paralelo (10M de núcleos de CPU) , que já foi um dos supercomputadores mais rápidos do mundo, usando uma arquitetura customizada de muitos núcleos. Em novembro de 2018, o terceiro supercomputador mais rápido do mundo (conforme classificado pela lista TOP500 ), o chinês Sunway TaihuLight , obteve seu desempenho de 40.960 processadores manycore SW26010, cada um contendo 256 núcleos.
- Gyoukou ( japonês : 暁 光Hepburn : gyōkō , luz do amanhecer), um supercomputador desenvolvido por ExaScaler e PEZY Computing .
- SpiNNaker , um processador manycore maciçamente paralelo (1M de núcleos de CPU) construído como parte do Projeto Cérebro Humano
Veja também
- Multicore
- Processador vetorial
- SIMD
- Computação de alto desempenho
- Cluster de computador
- Sistema multiprocessador em um chip
- Unidade de processamento de visão
- Padrão de acesso à memória
- Coerência de cache
- Constrangedoramente paralelo
- Maciçamente paralelo
- CUDA
Referências
links externos
- Soluções de arquitetura para o futuro do Manycore , publicado em 19 de fevereiro de 2010 (mais de um link morto no slide)
- Arquitetura Eyeriss