Escalonamento, distribuição de carga e Auto

Transcrição

Escalonamento, distribuição de carga e Auto
Escalonamento, distribuição de carga e
Auto-tuning de algoritmos em clusters CPU/
GPU
Instituto de Computação
Universidade Federal Fluminense
Coordenador: Esteban Clua
[email protected]
Equipe
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
Prof. Esteban Clua (GPU)
Prof. Cristina Nader
Prof. Lúcia Drummont (CPU)
Prof. Orlando Loques
Rommel Quintanilla (mestrando)
Eduardo Charles (doutorando)
Bernardo Breder (mestrando)
João Gabriel Gazzola (doutorando)
Marcelo Zamith (pesquisador)
José Ricardo (pesquisador)
Objetivos
• 
• 
• 
• 
• 
Melhor arranjo de execução concorrente em
Ambientes Paralelos híbridos
Previsão de carga de kernels em GPU
Estimativa de uso de recursos
Criar uma base de conhecimento, baseado em
deep learning
Tuning de coalescencia com ML
Modelos de estimação de desempenho no
desenvolvimento de aplicações CUDA
Ferramentas de desempenho atuais
Ex. NVIDIA Visual Profiler, são muito utéis, porém
ainda em evolução.
Informação que ainda não é fornecida por elas:
Qual configuração do meu kernel atinge meus
limites de energia e ainda dá bom desempenho?
• 
Qual é o tempo estimado de execução da minha
aplicação?
• 
Qual é o número de streams adequado?
• 
Qual tipo de memória usar?
etc.
• 
Modelos de desempenho
Pseudocódigo
Estimativa de consumo de
energia
Código fonte
Modelo de
Desempenho
PTX
(Representação
intermediária)
- Analítico
- Estatístico
- Simulação
CUBIN
(Código binario)
Informação de
dispositivo GPU
Usados com sucesso em:
• 
Entrada
• 
• 
• 
Scheduling de kernels
concorrentes
Autotuning
Balanceamento de carga
...
Previsão de tempo de
execução em um dispositivo
alvo
Identificação de gargalos de
desempenho
Saída
Kernels Concorrentes
Extensão dos modelos de desempenho para incluir:
• 
Execução de kernels concorrentes
• 
Transferências de memória
* Imagem: http://www.turkpaylasim.com/cevahir
Kernels Concorrentes
•  GPUs possui recursos de
hardware limitado
•  Tarefas que ultrapassam os
limites de hardware entraram
na fila de execução
•  Dependendo da ordem que as
tarefas entram na fila, o tempo
para finalizar todas elas pode
ser diferente
Programação Dinâmica
•  O problema da mochila
implementado com
programação dinâmica resulta
na melhor ordem de execução
por calcular a melhor opção
perante todas elas:
•  Nas GPUs são usadas as
seguintes variáveis: #warps,
#registradores, #memória
compartilhada
Dynamic Intelligent Kernel Assignment in
Heterogeneous Multi-GPU Systems
StarPU
Overview of the
Framework
Proposal 01:
Self-Configuring and Dynamic Scheduling
Contexts
Proposal 02:
Proposal 03:
Base de conhecimento de distribuição de
carga (deep Learning)
Tuning de Coalescencia com ML