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