| Linha 72: | Linha 72: | ||
** SHMT apresenta uma abstração e mecanismos para coordenar execução simultânea em componentes de hardware heterogêneos | ** SHMT apresenta uma abstração e mecanismos para coordenar execução simultânea em componentes de hardware heterogêneos | ||
** SHMT propõe um mecanismo e agendamento de políticas com baixa sobrecarga para garantir a qualidade dos resultados. | ** SHMT propõe um mecanismo e agendamento de políticas com baixa sobrecarga para garantir a qualidade dos resultados. | ||
<br> | |||
* Tarefa da semana - Entrega 12/04/2024 | |||
<br> | |||
Edição das 00h49min de 9 de abril de 2024
Leitura
- Descoberta pode dobrar desempenho de PCs
- Daniel Trefilio |
- https://canaltech.com.br/hardware/descoberta-pode-dobrar-desempenho-de-pcs-282305/
Resumo
- Nova estrutura de processamento de dados capaz de utilizar de forma mais eficiente os recursos de CPUs com múltiplos núcleos e threads
- Multithreading Simultâneo e Heterogêneo (SHMT): quase dobram o desempenho de CPUs e reduzem o consumo pela metade
- Os PCs modernos são heterogêneos em termos de estruturas físicas, com CPU, GPUs, coprocessadores e, agora, NPUs, as linguagens de programação ainda são tecnicamente homogêneas
- Novo framework: evolução do pipelining, ao permitir que sub-rotinas menores sejam executadas em paralelo de forma oportunista em threads e aceleradores ociosos, otimizando desempenho e consumo
- CPU: Constituída por bilhões de transistores, a CPU pode ter vários núcleos de processamento e é comumente referida como o "cérebro" do computador. A CPU é importante para determinar a velocidade de execução dos programas, desde a navegação na web até a elaboração de planilhas.
- GPU: Unidade de Processamento Gráfico é composto por muitos núcleos menores e mais especializados. Ao trabalhar em conjunto, os núcleos oferecem desempenho massivo quando uma tarefa de processamento pode ser dividida em muitos núcleos ao mesmo tempo (ou em paralelo). A GPU é um componente integral para jogos modernos, permitindo visuais de qualidade mais alta e jogabilidade mais suave. As GPUs também são úteis em IA.
- NPU: Unidade de Processamento Neural responsável por acelerar tarefas de IA, como aprendizado de máquina e redes neurais. Está presente em smartphones, PCs e outros eletrônicos modernos. Também podem ser chamadas de TPU (Tensor Processing Unit) pelo Google e de Neural Engine pela Apple. Outra sigla menos conhecida é IPU (Intelligence Processing Unit).
Artigo
- Simultaneous and Heterogenous Multithreading
- Kuan-Chieh Hsu, Hung-Wei Tseng
- University of California, Riverside
- https://dl.acm.org/doi/pdf/10.1145/3613424.3614285
Resumo
- A programação tradicional subutiliza o poder de processamento dentro dos computadores heterogêneos, preocupando-se em usar apenas as unidades de processamento mais eficientes para cada região do código
- SHMT (Simultaneous and Heterogenous Multithreading) é um modelo de programação e execução que permite implementar um processamento paralelo real usando unidades de processamento heterogêneas e para isso pode utilizar tipos heterogêneos de unidades de processamento concorrentemente para a mesma região do código
- Além disso, o SHMT apresenta uma abstração e um sistema de processamento para facilitar a execução paralela
- Mais importante ainda, SHMT precisa abordar adicionalmente a heterogeneidade na precisão dos dados que várias unidades de processamento suportam para garantir a qualidade do resultado.
- Este artigo implementa e avalia SHMT em uma plataforma de sistema embarcado com uma GPU e um Edge TPU alcançando até 1,95× de aceleração e 51,0% de redução de energia em comparação com linha de base da GPU.
- Exemplos de modelos de computação heterogêneos:
- Tensor Cores (TCs)
- Ray Tracing Cores (RT Cores)
- NVIDIA GPUs
- Tensor Processing Units (TPUs) on Google Cloud servers
- Neural Engines on Apple’s iPhones
- Edge Tensor Processing Units (Edge TPUs) on Google Pixel Phones.
- Usados no framework:
- Plataforma de sistema embutido equipado com um processador multi-core ARM, um NVIDIA GPU, e um Edge TPU.
- Na programação convencional conseguem delegar uma região do código exclusivamente para um tipo de processador, deixando outros recursos de computação ociosos
- SHMT pode dividir o cálculo da mesma função para vários tipos de recursos de computação e explorar tipos heterogêneos de paralelismo
- Figura 1 - Vantagens do SHMT frente o modelo de execução convencional
- Programa contendo 5 funções primárias e 5 recursos de computação incluindo CPUs, GPUs e 3 aceleradores
- Fluxo de execução em um modelo de execução convencional
- Programa pode progredir com resultados parciais e execução de pipeline de diferentes funções em diferentes unidades de hardware. O desbalanço entre as fubções pode levar a perdas
- Permite à função B usar GPUs e outros aceleradores
- Resultado: Melhor latência fim-a-fim e menor consumo de energia.
- Desafios do SHMT:
- Deve prover algum mecanismo que possa descrever e dividir dados e operações equivalentes e em diferentes recursos de computação
- Diferentes da programação tradicional que delega cada região do código para um único tipo de hardware, SHMT deve ser habil a coordenar a execução em hardwares heterogêneos de maneira eficiente
- Como várias unidades de hardware entregam resultados em diferentes níveis de qualidade, SHMT deve garantir os resultados sem incorrer em uma sobrecarga significante.
- Framework SHMT - 3 componentes
- VOPS, conjunto de operações virtuais e HLOPS, operações de alto nível intermediando a linguagem de programação e as instruções do hardware facilitando as tarefas de casamento e distribuição
- SHMT apresenta um sistema de tempo de execução que ajusta dinamicamente as cargas de trabalho em várias unidades de hardware para maximizar a eficiência do hardware enquanto flexibiliza as políticas de agendamento
- SHMT apresenta uma política de escalonamento de baixa sobrecarga que considera tanto os resultados quanto desempenho.
- Contribuições:
- SHMT apresenta uma nova programação e execução paralela usando hardware heterogêneo simultaneamente para realizar tarefas paralelas do mesmo trecho de código
- SHMT avalia e demonstra o potencial de alavancagem de hardware antigo usando modelos de programação heterogêneos por meio de uma plataforma de sistema real
- SHMT apresenta uma abstração e mecanismos para coordenar execução simultânea em componentes de hardware heterogêneos
- SHMT propõe um mecanismo e agendamento de políticas com baixa sobrecarga para garantir a qualidade dos resultados.
- Tarefa da semana - Entrega 12/04/2024