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
  1. Fluxo de execução em um modelo de execução convencional
  2. 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
  3. Permite à função B usar GPUs e outros aceleradores
  • Resultado: Melhor latência fim-a-fim e menor consumo de energia.


  • Desafios do SHMT:
  1. Deve prover algum mecanismo que possa descrever e dividir dados e operações equivalentes e em diferentes recursos de computação
  2. 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
  3. 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
  1. 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
  2. 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
  3. 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