Tesla K20 da NVIDIA oferece o mais alto desempenho da indústria de computação

Nós jÁ havíamos dito que a GPU NVIDIA Tesla K20, baseada na arquitetura Kepler, é o processador de mais alto desempenho da indústria da High-performance Computing, quando foi revelada na GPU Technology Conference em maio.

No entanto, os testes de desempenho recentes em aplicativos científicos mostram que a GPU ultrapassou facilmente as nossas melhores expectativas.

Estamos particularmente entusiasmados com o novo recurso Hyper-Q da Kepler, que ajuda a aumentar o desempenho de milhares de aplicativos com códigos baseados em MPI sem a necessidade de reescrever o código principal.

Para ilustrar o poder do Hyper-Q, pegamos um código tradicionalmente difícil para GPUs chamado CP2K, um popular código baseado em MPI para simulações. O Hyper-Q maximiza a utilização da GPU para aplicativos CP2K, resultando em mais que o dobro de desempenho em comparação à execução do código sem ele.

Como o Hyper-Q funciona


A GPU é composta de múltiplos núcleos CUDA agrupados em multiprocessadores de streaming operando em paralelo. A unidade de hardware chamado de CUDA Work Distributor (CWD) é responsÁvel pela atribuição de atividades para os multiprocessadores individuais.

Na arquitetura Fermi atual, a CWD tem uma única conexão com a CPU host e o trabalho de diferentes processos MPI é incorporado em uma fila única. Esse fato pode facilmente limitar a quantidade de tarefas que podem ser executadas simultaneamente na GPU. O que resulta, muitas vezes, em GPUs subutilizadas.

O Hyper-Q remove essa limitação. Como mostra o figura abaixo, a nova Tesla K20 oferece 32 filas de trabalho entre o hospedeiro e a GPU, permitindo que vÁrios processos MPI possam ser executados simultaneamente no chip grÁfico. Cada processo pode ser atribuído a uma fila diferente, maximizando a utilização da GPU e aumentando o desempenho global.


Ao permitir mais processos MPI, o Hyper-Q maximiza a utilização do GPU, aumentando o desempenho global

Reduzido o esforço para os desenvolvedores

Além dos desenvolvedores MPI ficarem encantados com o desempenho que foi acrescentado, vão ficar igualmente impressionados com a forma como o Hyper-Q compila códigos MPI para a GPU significativamente mais fÁcil.

Os Códigos MPI foram muitas vezes criados para rodar em CPUs com sistemas multicore, com a quantidade de trabalho atribuída a cada processo MPI adaptada em conformidade. No entanto, isso muitas vezes significa que processos MPI não geram trabalho suficiente para ocupar completamente a GPU. Para que o código lançe trabalho suficiente para utilizar plenamente a GPU, os desenvolvedores frequentemente foram obrigados a modificar os seus códigos de forma significativa.

Hyper-Q reduz consideravelmente os esforços porque os desenvolvedores podem agora jogar muitos processos MPI com cargas de trabalho de pequeno e médio porte em uma GPU. Os desenvolvedores não precisam modificar seus códigos para colocar bastante trabalho em um único processo MPI. Em vez disso, eles podem enviar até 32 processos MPI com cargas de trabalho variÁveis ​​para a GPU e deixar a GPU fazer todo o trabalho pesado.

Caso em questão: CP2K


CP2K é um código de simulação que roda em muitos sites no mundo da supercomputação. O CP2K é paralelizado usando MPI e OpenMP, além do CUDA, que é usado em alguns modelos.

Com GPUs baseadas em Fermi, os desenvolvedores experimentaram ganhos de desempenho reduzidos quando os processos MPI foram limitadas a pequenas quantidades de trabalho, principalmente em simulações de escala fortes. Enquanto a CPU foi muito utilizada, a GPU ficou completamente inativo em porções substanciais da simulação.


O índice de referência mostra o impacto do Hyper-Q

Sem o Hyper-Q, apenas um processo MPI é executado em cada elo com a GPU e a curva de desempenho entre 1 a 16 nós não é muito melhor do que com simulações com somente a CPU.

Com Hyper-Q, é possível desbloqueiar os benefícios da GPU, levando a um aumento de velocidade de 2,5 vezes com sua habilitação.

E a melhor parte? Nenhum esforço adicional de codificação é necessÁrio para permitir o Hyper-Q. Só é preciso um Tesla GPU K20 com o CUDA 5 instalado e definir uma variÁvel.

Esteja preparado!


O K20 Tesla serÁ o primeiro a contar com o Hyper-Q. Ele estÁ programado para estar disponível até o final do ano, mas você pode começar a se preparar de hoje.

Começe por acelerar o seu código usando OpenACC. Com diretivas OpenACC, os desenvolvedores simplesmente inserem dicas de compilador para o código e o compilador mapeia automaticamente partes de código para a GPU. Usando diretivas dentro dos processos MPI, você não precisa se preocupar com a quantidade de carga de trabalho que é criado pelo compilador OpenACC, porque o Hyper-Q assegura as estadias da GPU.

Você pode obter uma licença de teste de 30 dias para um compilador OpenACC no site da NVIDIA.

Assuntos
Tags
  • Redator: Carolina Franco

    Carolina Franco

    Com pouca habilidade no playstation, leva surra de toda na redação. Seu vício são os games para celular e as tecnologias mobile. Desde que passou a cursar jornalismo na Universidade Federal de Santa Catarina, descobriu nas notícias sua verdadeira vocação: escrevê-las e publicá-las agilmente.

Deve ter lançamentos como leve melhorias na mesma arquitetura

O que você achou deste conteúdo? Deixe seu comentário abaixo e interaja com nossa equipe. Caso queira sugerir alguma pauta, entre em contato através deste formulário.