14 research outputs found

    PENCIL: Towards a Platform-Neutral Compute Intermediate Language for DSLs

    Full text link
    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

    Get PDF
    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

    No full text
    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

    No full text
    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

    Get PDF
    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

    No full text
    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 compute intermediate language for accelerator programming

    No full text
    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
    corecore