Computers have become increasingly complex with the emergence of heterogeneous hardware combining multicore CPUs and GPUs. These parallel systems exhibit tremendous computational power at the cost of increased programming effort resulting in a tension between performance and code portability. Typically, code is either tuned in a low-level imperative language using hardware-specific optimizations to achieve maximum performance or is written in a high-level, possibly functional, language to achieve portability at the expense of performance. We propose a novel approach aiming to combine high-level pro-gramming, code portability, and high-performance. Starting from a high-level functional expression we apply a simple set of rewrite rules to tra...
Parallel processors have become ubiquitous; most programmers today have access to parallel hardware ...
The relentless demands for improvements in the compute throughput, and energy efficiency have driven...
OpenCL is a programming language standard which enables the programmer to express the application by...
Computers have become increasingly complex with the emergence of heterogeneous hardware combining mu...
Computing systems have become increasingly complex with the emergence of heterogeneous hardware comb...
Graphics Processing Units (GPUs) are now commonplace in computing systems and are the most successf...
This work describes my solution to the performance portability problem: between CPUs and GPUs in par...
The rising pressure to simultaneously improve performance and reduce power consumption is driving mo...
Parallel accelerators such as GPUs are notoriously hard to program; exploiting their full pe...
The problem of automatically generating hardware modules from high level application representations...
Application development for modern high-performance systems with many cores, i.e., comprising multip...
Multicore heterogeneous architectures are spreading from desktop computers to mobile and em-bedded s...
OpenCL is a standard for parallel programming of heterogeneous systems. The benefits of a common pro...
International audienceManycore architectures are now available in a wide range of HPC systems. Going...
General purpose GPU based systems are highly attractive as they give potentially massive performance...
Parallel processors have become ubiquitous; most programmers today have access to parallel hardware ...
The relentless demands for improvements in the compute throughput, and energy efficiency have driven...
OpenCL is a programming language standard which enables the programmer to express the application by...
Computers have become increasingly complex with the emergence of heterogeneous hardware combining mu...
Computing systems have become increasingly complex with the emergence of heterogeneous hardware comb...
Graphics Processing Units (GPUs) are now commonplace in computing systems and are the most successf...
This work describes my solution to the performance portability problem: between CPUs and GPUs in par...
The rising pressure to simultaneously improve performance and reduce power consumption is driving mo...
Parallel accelerators such as GPUs are notoriously hard to program; exploiting their full pe...
The problem of automatically generating hardware modules from high level application representations...
Application development for modern high-performance systems with many cores, i.e., comprising multip...
Multicore heterogeneous architectures are spreading from desktop computers to mobile and em-bedded s...
OpenCL is a standard for parallel programming of heterogeneous systems. The benefits of a common pro...
International audienceManycore architectures are now available in a wide range of HPC systems. Going...
General purpose GPU based systems are highly attractive as they give potentially massive performance...
Parallel processors have become ubiquitous; most programmers today have access to parallel hardware ...
The relentless demands for improvements in the compute throughput, and energy efficiency have driven...
OpenCL is a programming language standard which enables the programmer to express the application by...