14 research outputs found
PENCIL: Towards a Platform-Neutral Compute Intermediate Language for DSLs
We motivate the design and implementation of a platform-neutral compute
intermediate language (PENCIL) for productive and performance-portable
accelerator programming
Pencil A Platform-Neutral Compute Intermediate Language for DSL Compilers
International audienceProgramming accelerators such as GPUs with low-level APIs and languages like 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. In this presentation, I will present PENCIL (Platform-Neutral Compute Intermediate Language) and present some details about how it is compiled. PENCIL is 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 language to facilitate accelerator programming, and as an intermediate language for DSL compilers. We validate the potential of PENCIL on a state-of-the-art polyhedral compiler, extending the applicability of the compiler to dynamic, data-dependent control flow and non-affine array accesses
Search for an optimal model for using online education in higher education in the context of sustainable digitalization
The relevance of the presented article is determined by the widespread use of online distance learning technologies in the educational space of higher education in Russia. This process is supported and initiated, among other things, by the modern Russian authorities, whose actions are based on the presumption of the ability of online education to provide the same quality of the educational process that takes place in the classroom-contact format. The authors â hypothesis is based on the fact that the widespread introduction of online education cannot be evaluated positively, since its quality has not been tested empirically. Institutionalization should be carried out only after it is scientifically confirmed âwhereâ,â for whomâ,â by whom â online education can be implemented. For this purpose, the authors study the types of online education, its content, and assess the readiness of students to study online. The goal is formulated as determining the segments of the educational process in higher education in which online education will improve the quality of training of qualified specialists
Life-cycle management of educational programs and resources in a smart learning environment
Abstract Lifecycle management questions of educational program and resources in the smart learning environment are considered to provide a convergent process of specialistâs continuous training. The main results of the research are: (a) analysis of the training specialistâs problems, (b) smart environment synthesis to support convergent education processes, (c) lifecycles formalization of the educational environment components, (d) synchronization of lifecycle models, (e) personalized learning paths synthesis, (f) support for the updating of educational resources according to the standards and employerâs requirements. The article describes the results of the development of educational environment components. Functional lifecycle models and a cloud storage model for educational content with ubiquitous access support through the Web portal are proposed. The intellectual management system for the learning process in the information educational environment based on the componentâs lifecycle model is implemented. The intellectual platform includes content management system Alfresco, learning management system Moodle, training content presentation Web system, knowledge assessment system, learning activity management system, standards and employerâs requirements analysis system. The system provides support for lifecycle stages of personalized educational programs, electronic educational resources, and specialist training levels
PENCIL Language Specification: PENCIL (Platform-Neutral Compute Intermediate Language) Language Specification
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
VOBLA: a vehicle for optimized basic linear algebra
International audienceWe present VOBLA, a domain-specific language designed for programming linear algebra libraries. VOBLA is compiled to PENCIL, a domain independent intermediate language designed for efficient mapping to accelerator architectures such as GPGPUs. PENCIL is compiled to efficient, platform-specific OpenCL code using techniques based on the polyhedral model. This approach addresses both the programmer productivity and performance portability concerns associated with accelerator programming.We demonstrate our approach by using VOBLA to implement a BLAS library. We have evaluated the performance of OpenCL code generated using our compilation flow on ARM Mali, AMD Radeon, and AMD Opteron platforms. The generated code is currently on average 1.9x slower than highly hand-optimized OpenCL code, but on average 8.1x faster than straightforward OpenCL code. Given that the VOBLA coding takes significantly less effort compared to hand-optimizing OpenCL code, we believe our approach leads to improved productivity and performance portability
PENCIL: A platform-neutral intermediate language for the parallelizing compilation of DSLs
International audienceno abstrac
PENCIL: a platform-neutral compute intermediate language for accelerator programming
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 complexity and regain performance portability.
We present PENCIL, a rigorously-defined subset of GNU C99---enriched with
additional language constructs---that enables
compilers to exploit parallelism and produce highly
optimized code when targeting accelerators. PENCIL
aims to serve both as a portable implementation language for
libraries, and as a target language for DSL compilers.
We implemented a PENCIL-to-OpenCL
backend using a state-of-the-art polyhedral compiler. The polyhedral
compiler, extended to handle data-dependent control flow and non-affine array
accesses, generates optimized OpenCL code.
To demonstrate the potential and performance portability of PENCIL
and the PENCIL-to-OpenCL compiler, we consider a number of
image processing kernels, a set of benchmarks
from the Rodinia and SHOC suites, and DSL embedding
scenarios for linear algebra (BLAS) and signal processing radar applications
(SpearDE), and present experimental results for four GPU platforms: AMD Radeon
HD~5670 and R9~285, NVIDIA
GTX~470, and ARM Mali-T604.status: publishe