Última versão | 2,7 (12 de novembro de 2018) |
---|---|
Escrito em | C , C ++ e Fortran |
Sistema operacional | Multi plataforma |
Meio Ambiente | Plataforma cruzada |
Modelo | API |
Local na rede Internet | www.openacc.org |
OpenACC (para S caneta Prec elerators) é um padrão de programação para a computação paralela desenvolvido por Cray , CAPS, Nvidia e IGP (br) . Este padrão é projetado para permitir a computação paralela em sistemas heterogêneos de CPU / GPU .
Assim como o OpenMP , é possível adicionar comandos em código-fonte C , C ++ e Fortran para identificar partes que podem se beneficiar da aceleração, usando diretivas para o compilador. Como no OpenMP 4.0 e posterior, o código pode ser executado na CPU e GPU.
Os desenvolvedores do OpenACC também trabalharam no padrão OpenMP para criar uma especificação comum para estender o OpenMP para oferecer suporte a novos tipos de aceleradores em versões futuras do OpenMP. Este trabalho resultou em um relatório técnico incluindo comentários e discussões para discussão durante a Conferência Anual de Supercomputação em Salt Lake City, emnovembro de 2012, para abordar o suporte para aceleradores não-Nvidia por fabricantes de hardware que participam do OpenMP.
Durante o ISC'12, as demonstrações OpenACC foram realizadas em hardware Nvidia , AMD e Intel , mas sem fornecer dados de desempenho.
O 12 de novembro de 2012, durante o SC12, um rascunho da especificação do OpenACC 2.0 foi apresentado. Novidades neste lançamento incluem novos recursos em transferência de dados (como uma forma de processar dados não estruturados e dados não contíguos na memória) e suporte para chamadas de função explícitas, bem como a possibilidade de compilação separada (permitindo a criação e uso de dados acelerados bibliotecas de código).