
Universidade Federal de Santa catarina (UFSC)
Programa de Pós-graduação em Engenharia, Gestão e Mídia do Conhecimento (PPGEGC)
Detalhes do Documento Analisado
Centro: Tecnológico
Departamento: Não Informado
Dimensão Institucional: Pós-Graduação
Dimensão ODS: Econômica
Tipo do Documento: Dissertação
Título: GERAÇÃO DE CÓDIGO ESTÊNCIL OTIMIZADO PARA GPUS
Orientador
- MARCIO BASTOS CASTRO
Aluno
- ALYSON DEIVES PEREIRA
Conteúdo
Programas paralelos estruturados seguem padrões de computação e coordenação. um destes padrões é o estêncil, presente em vários domínios científicos e da engenharia. pesquisas recentes tentam explorar o uso eficiente de processadores massivamente paralelos para a execução de aplicações estêncil, tendo em vista o seu alto grau de paralelismo de dados. dentre estes processadores, um dos mais utilizados são as unidades de processamento gráfico (gpus). as abordagens para a programação de aplicações estêncil em gpus incluem: linguagens de baixo nível (e.g., cuda), bibliotecas de esqueletos paralelos (e.g., pskel) e diretivas de compilação (e.g., openacc). a linguagem cuda permite um controle maior de otimizações de código, porém requer um conhecimento da arquitetura de gpus e pode ser desafiadora para os menos experientes. as bibliotecas de esqueletos paralelos facilitam a programação e permitem explorar determinadas otimizações, no entanto requerem uma reescrita de códigos já existentes e geralmente apresentam certas restrições. com o uso de diretivas, o programador pode anotar um código fonte já existente com as devidas diretivas, indicando os trechos de códigos que serão executados na gpu. apesar do uso das diretivas ser mais simples do ponto de vista de programação, elas não exploram otimizações de baixo nível que podem ser obtidas ao se utilizar as abordagens anteriores. o presente trabalho propõe duas abordagens para a geração de código otimizado para gpus. a primeira abordagem fornece uma diretiva de compilação para expor o padrão estêncil a um compilador que gerará automaticamente códigos estêncil otimizados para execução em gpus com auxílio de uma biblioteca de esqueletos paralelos. a segunda abordagem realiza uma análise estática no código-fonte para detectar o padrão estêncil e gerar um código cuda com otimização específicas. experimentos utilizando códigos estênceis sequenciais mostram a aplicabilidade das abordagens propostas e revelam que é alcançado um desempenho superior em relação a abordagens existentes na literatura.
Índice de Shannon: 3.97225
Índice de Gini: 0.935152
ODS 1 | ODS 2 | ODS 3 | ODS 4 | ODS 5 | ODS 6 | ODS 7 | ODS 8 | ODS 9 | ODS 10 | ODS 11 | ODS 12 | ODS 13 | ODS 14 | ODS 15 | ODS 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4,17% | 5,54% | 7,33% | 7,06% | 5,31% | 5,71% | 7,98% | 6,77% | 7,26% | 4,57% | 8,05% | 6,34% | 4,43% | 5,78% | 6,15% | 7,57% |
ODS Predominates


4,17%

5,54%

7,33%

7,06%

5,31%

5,71%

7,98%

6,77%

7,26%

4,57%

8,05%

6,34%

4,43%

5,78%

6,15%

7,57%