-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRR-8706.tex
147 lines (116 loc) · 3.34 KB
/
RR-8706.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
\documentclass[twoside]{article}
\usepackage[a4paper]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{RR}
\usepackage{hyperref}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,fit,positioning}
\usepackage[toc,page]{appendix}
\include{includes}
\RRNo{8706}
%% date de publication du rapport
\RRdate{May 2015}
%% Cas d'une version deux
% \RRversion{2}
%% date de publication de la version 2
% \RRdater{Septembre 2015}
%%
\RRauthor{
Riyadh Baghdadi%
\thanks[ens]{\'Ecole Normale Sup\'erieure de Paris and Institut National de Recherche en Informatique et en Automatique}%
\and
Albert Cohen%
\thanksref{ens}
\and
Tobias Grosser%
\thanksref{ens}
\and
Sven Verdoolaege%
\thanksref{ens}\thanks{Katholieke Universiteit Leuven}
\and
Anton Lokhmotov%
\thanks[dividiti]{dividiti}
\and
Javed Absar%
\thanks[arm]{ARM}
\and
Sven van Haastregt%
\thanksref{arm}
\and
Alexey Kravets%
\thanks[nvidia]{Nvidia}
\and
Alastair Donaldson%
\thanks[icl]{Imperial College London}
}
%% Ceci apparait sur chaque page paire.
\authorhead{}
%% titre francais long
\RRtitle{}
%% English title
\RRetitle{PENCIL Language Specification}
\titlehead{PENCIL Language Specification}
\RRnote{This work was partly supported by the European
FP7 project CARP id.\ 287767.}
%\RRresume{}
\RRabstract{Programming accelerators such as GPUs with
low-level APIs and languages such as OpenCL and CUDA is difficult,
error prone, and not performance-portable.
Automatic parallelization and domain specific languages (DSLs)
have been proposed to hide this complexity and to regain some
performance portability.
We present PENCIL, a rigorously-defined subset of GNU C99 with
specific programming rules and few extensions.
Adherence to this subset and the use of these extensions enable
compilers to exploit parallelism and to better optimize code when
targeting accelerators.
We intend PENCIL both as a portable implementation language to
facilitate the acceleration of applications, and as a tractable
target language for DSL compilers.}
%%
%\RRmotcle{}
\RRkeyword{Intermediate language, domain specific language,
code optimization, PENCIL, OpenCL}
%% INRIA Projets-team names
\RRprojets{}
\RCParis % Paris Rocquencourt
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{3}
\renewcommand{\thesection}{\arabic{section}}
% Version Number
% Change this for any language change
\newcommand{\VersionNumber}{1.1}
% Change this after fixing typos, minor things
\newcommand{\RevisionNumber}{1}
\begin{document}
\makeRR
\section*{Revision history}
\begin{center}
\begin{tabular}{ | l | l | l |}
\hline
Version/Revision & Date & Comments \\
\hline
\pencil 1.0 --- revision 1 & 24-May-2015 & First public version \\
\pencil 1.1 --- revision 1 & 15-Aug-2015 & Add \lstinline!__pencil_npr_mem_tag! \\
\hline
\end{tabular}
\end{center}
\newpage
\tableofcontents
\include{PENCIL}
\begin{appendix}
\input{pencil_ebnf.tex}
\input{license.tex}
\end{appendix}
\clearpage
\bibliographystyle{abbrv}
\bibliography{CARP-ENS-RP-004}
\end{document}
\endinput
% Possible Future PENCIL Extensions:
% -----------------------------------
% - Support for atomic operations:
% Currently we use a non portable way to implement atomic operations
% in PENCIL, it would be good to add atomic builtins in PENCIL
% (atomics are widely used).