This work describes my solution to the performance portability problem: between CPUs and GPUs in particular, but laying the foundation for even broader performance portability support. I argue that the best approach is to use a language like OpenCL as a portable, low-level programming model with well-defined mechanisms for expressing multi-level parallelism and locality. That low-level program representation can be supported with architecture-specific compilers, runtimes, and libraries to target the application code to various platforms with high performance. High-level language designers or tool developers could then target this single, low-level programming and parallelism model as a portable, high-performance intermediate p...
Open Computing Language (OpenCL) is an open standard for writing portable software for heterogeneous...
Computer systems equipped with graphics processing units (GPUs) have become increasingly common over...
As an open, royalty-free framework for writing programs that execute across heterogeneous platforms,...
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...
Accelerator processors allow energy-efficient computation at high performance, especially for comput...
This paper reports on the development of an MPI/OpenCL implementation of LU, an application-level be...
OpenCL is a standard for parallel programming of heterogeneous systems. The benefits of a common pro...
This paper investigates the development of a molecular dynamics code that is highly portable between...
The architecture diversity of many-core processors - with their different types of cores, and memory...
Recent developments in processor architecture have settled a shift from sequential processing to par...
The proliferation of heterogeneous computing systems presents the parallel computing community with ...
Graphics Processing Units (GPUs) are now commonplace in computing systems and are the most successf...
Shared memory multi-core processor technology has seen a drastic developmentwith faster and increasi...
Application development for modern high-performance systems with many cores, i.e., comprising multip...
Open Computing Language (OpenCL) is an open standard for writing portable software for heterogeneous...
Computer systems equipped with graphics processing units (GPUs) have become increasingly common over...
As an open, royalty-free framework for writing programs that execute across heterogeneous platforms,...
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...
Accelerator processors allow energy-efficient computation at high performance, especially for comput...
This paper reports on the development of an MPI/OpenCL implementation of LU, an application-level be...
OpenCL is a standard for parallel programming of heterogeneous systems. The benefits of a common pro...
This paper investigates the development of a molecular dynamics code that is highly portable between...
The architecture diversity of many-core processors - with their different types of cores, and memory...
Recent developments in processor architecture have settled a shift from sequential processing to par...
The proliferation of heterogeneous computing systems presents the parallel computing community with ...
Graphics Processing Units (GPUs) are now commonplace in computing systems and are the most successf...
Shared memory multi-core processor technology has seen a drastic developmentwith faster and increasi...
Application development for modern high-performance systems with many cores, i.e., comprising multip...
Open Computing Language (OpenCL) is an open standard for writing portable software for heterogeneous...
Computer systems equipped with graphics processing units (GPUs) have become increasingly common over...
As an open, royalty-free framework for writing programs that execute across heterogeneous platforms,...