Title
Automatic Insertion of Copy Annotation in Data-Parallel Programs
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