Abstract | ||
---|---|---|
Directive-based programming models, such as OpenACC and OpenMP arise today as promising techniques to support the development of parallel applications. These systems 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 paper provides one fundamental component in the solution of this problem. We introduce a static program analysis that infers the bounds of memory regions referenced in source code. Such bounds allow us to automatically insert data-transfer primitives, which are needed when the parallelized code is meant to be executed in an accelerator device, such as a GPU. To validate our ideas, we have applied them onto Polybench, using two different architectures: Nvidia and Qualcomm-based. We have successfully analyzed 98% of all the memory accesses in Polybench. This result has enabled us to insert automatic annotations into those benchmarks leading to speedups of over 100x. |
Year | DOI | Venue |
---|---|---|
2016 | 10.1109/SBAC-PAD.2016.13 | 2016 28th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD) |
Keywords | Field | DocType |
Compilers,Parallelism,Optimization | Static program analysis,Programming language,Annotation,Programming paradigm,Source code,Computer science,Parallel computing,Directive,Compiler | Conference |
ISSN | ISBN | Citations |
1550-6533 | 978-1-5090-6109-9 | 0 |
PageRank | References | Authors |
0.34 | 8 | 6 |
Name | Order | Citations | PageRank |
---|---|---|---|
Gleison Souza Diniz Mendonca | 1 | 7 | 0.90 |
Breno Campos Ferreira Guimaraes | 2 | 10 | 1.96 |
Péricles Rafael Oliveira Alves | 3 | 5 | 1.10 |
Fernando Magno Quintão Pereira | 4 | 216 | 20.03 |
Marcio Machado Pereira | 5 | 17 | 4.52 |
Guido Araujo | 6 | 39 | 13.69 |