
DawnCC
2017; Association for Computing Machinery; Volume: 14; Issue: 2 Linguagem: Inglês
10.1145/3084540
ISSN1544-3973
AutoresGleison Souza Diniz Mendonça, Breno Campos Ferreira Guimarães, Péricles Alves, Márcio Pereira, Guido Araújo, Fernando Magno Quintão Pereira,
Tópico(s)Software Engineering Research
ResumoDirective-based programming models, such as OpenACC and OpenMP, allow developers to convert a sequential program into a parallel one with minimum human intervention. However, inserting pragmas into production code is a difficult and error-prone task, often requiring familiarity with the target program. This difficulty restricts the ability of developers to annotate code that they have not written themselves. This article provides a suite of compiler-related methods to mitigate this problem. Such techniques rely on symbolic range analysis, a well-known static technique, to achieve two purposes: populate source code with data transfer primitives and to disambiguate pointers that could hinder automatic parallelization due to aliasing. We have materialized our ideas into a tool, DawnCC, which can be used stand-alone or through an online interface. To demonstrate its effectiveness, we show how DawnCC can annotate the programs available in PolyBench without any intervention from users. Such annotations lead to speedups of over 100× in an Nvidia architecture and over 50× in an ARM architecture.
Referência(s)