The Experts below are selected from a list of 75 Experts worldwide ranked by ideXlab platform
Rudolf Eigenmann - One of the best experts on this subject based on the ideXlab platform.
-
openmp to gpgpu a compiler framework for automatic translation and optimization
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2009Co-Authors: Seyong Lee, Seungjai Min, Rudolf EigenmannAbstract:GPGPUs have recently emerged as powerful vehicles for general-purpose high-performance computing. Although a new Compute Unified Device Architecture (CUDA) programming model from NVIDIA offers improved programmability for general computing, programming GPGPUs is still complex and error-prone. This paper presents a compiler framework for automatic source-to-source translation of standard OpenMP applications into CUDA-based GPGPU applications. The goal of this translation is to further improve programmability and make existing OpenMP applications amenable to execution on GPGPUs. In this paper, we have identified several key transformation techniques, which enable efficient GPU Global Memory Access, to achieve high performance. Experimental results from two important kernels (JACOBI and SPMUL) and two NAS OpenMP Parallel Benchmarks (EP and CG) show that the described translator and compile-time optimizations work well on both regular and irregular applications, leading to performance improvements of up to 50X over the unoptimized translation (up to 328X over serial).
-
openmp to gpgpu a compiler framework for automatic translation and optimization
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2009Co-Authors: Rudolf EigenmannAbstract:GPGPUs have recently emerged as powerful vehicles for general-purpose high-performance computing. Although a new Compute Unified Device Architecture (CUDA) programming model from NVIDIA offers improved programmability for general computing, programming GPGPUs is still complex and error-prone. This paper presents a compiler framework for automatic source-to-source translation of standard OpenMP applications into CUDA-based GPGPU applications. The goal of this translation is to further improve programmability and make existing OpenMP applications amenable to execution on GPGPUs. In this paper, we have identified several key transformation techniques, which enable efficient GPU Global Memory Access, to achieve high performance. Experimental results from two important kernels (JACOBI and SPMUL) and two NAS OpenMP Parallel Benchmarks (EP and CG) show that the described translator and compile-time optimizations work well on both regular and irregular applications, leading to performance improvements of up to 50X over the unoptimized translation (up to 328X over serial).
Jean-jacques Roux - One of the best experts on this subject based on the ideXlab platform.
-
Global Memory Access Modelling for Efficient Implementation of the LBM on GPUs
Lecture Notes in Computer Science, 2011Co-Authors: Christian Obrecht, Frederic Kuznik, Bernard Tourancheau, Jean-jacques RouxAbstract:In this work, we investigate the Global Memory Access mechanism on recent GPUs. For the purpose of this study, we created specific benchmark programs, which allowed us to explore the scheduling of Global Memory transactions. Thus, we formulate a model capable of estimating the execution time for a large class of applications. Our main goal is to facilitate optimisation of regular data-parallel applications on GPUs. As an example, we finally describe our CUDA implementations of LBM flow solvers on which our model was able to estimate performance with less than 5% relative error.
-
Global Memory Access Modelling for Efficient Implementation of the Lattice Boltzmann Method on Graphics Processing Units
2011Co-Authors: Christian Obrecht, Frederic Kuznik, Bernard Tourancheau, Jean-jacques RouxAbstract:In this work, we investigate the Global Memory Access mech- anism on recent GPUs. For the purpose of this study, we created spe- cific benchmark programs, which allowed us to explore the scheduling of Global Memory transactions. Thus, we formulate a model capable of estimating the execution time for a large class of applications. Our main goal is to facilitate optimisation of regular data-parallel applications on GPUs. As an example, we finally describe our CUDA implementations of LBM flow solvers on which our model was able to estimate performance with less than 5% relative error.
Christian Obrecht - One of the best experts on this subject based on the ideXlab platform.
-
Global Memory Access Modelling for Efficient Implementation of the LBM on GPUs
Lecture Notes in Computer Science, 2011Co-Authors: Christian Obrecht, Frederic Kuznik, Bernard Tourancheau, Jean-jacques RouxAbstract:In this work, we investigate the Global Memory Access mechanism on recent GPUs. For the purpose of this study, we created specific benchmark programs, which allowed us to explore the scheduling of Global Memory transactions. Thus, we formulate a model capable of estimating the execution time for a large class of applications. Our main goal is to facilitate optimisation of regular data-parallel applications on GPUs. As an example, we finally describe our CUDA implementations of LBM flow solvers on which our model was able to estimate performance with less than 5% relative error.
-
Global Memory Access Modelling for Efficient Implementation of the Lattice Boltzmann Method on Graphics Processing Units
2011Co-Authors: Christian Obrecht, Frederic Kuznik, Bernard Tourancheau, Jean-jacques RouxAbstract:In this work, we investigate the Global Memory Access mech- anism on recent GPUs. For the purpose of this study, we created spe- cific benchmark programs, which allowed us to explore the scheduling of Global Memory transactions. Thus, we formulate a model capable of estimating the execution time for a large class of applications. Our main goal is to facilitate optimisation of regular data-parallel applications on GPUs. As an example, we finally describe our CUDA implementations of LBM flow solvers on which our model was able to estimate performance with less than 5% relative error.
Tinghong Lin - One of the best experts on this subject based on the ideXlab platform.
-
optimizing dynamic programming on graphics processing units via data reuse and data prefetch with inter block barrier synchronization
International Conference on Parallel and Distributed Systems, 2012Co-Authors: Kaicheng Wei, Tinghong LinAbstract:Our previous study focused on accelerating an important category of DP problems, called nonserial polyadic dynamic programming (NPDP), on a graphics processing unit (GPU). In NPDP applications, the degree of parallelism varies significantly in different stages of computation, making it difficult to fully utilize the compute power of hundreds of pro-cessing cores in a GPU. To address this challenge, we proposed a methodology that can adaptively adjust the thread-level parallelism in mapping a NPDP problem onto the GPU, thus providing sufficient and steady degrees of parallelism across different compute stages. This work aims at further improving the performance of NPDP problems. Sub problems and data are tiled to make it possible to fit small data regions into shared Memory and reuse the buffered data for each tile of sub problems, thus reducing the amount of Global Memory Access. However, we found invoking the same kernel many times, due to data consistency enforcement across different stages, makes it impossible to reuse the tiled data in shared Memory after the kernel is invoked again. Fortunately, the inter-block synchronization technique allows us to invoke the kernel exactly one time with the restriction that the maximum number of blocks is equal to the total number of streaming multiprocessors. In addition to data reuse, invoking the kernel only one time also enables us to prefetch data to shared Memory across inter-block synchronization point, which improves the performance more than data reuse. We realize our approach in a real-world NPDP application â" the optimal matrix parenthesization problem. Experimental results demonstrate invoking a kernel only one time cannot guarantee performance improvement unless we also reuse and prefetch data across barrier synchronization points.
Seyong Lee - One of the best experts on this subject based on the ideXlab platform.
-
openmp to gpgpu a compiler framework for automatic translation and optimization
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2009Co-Authors: Seyong Lee, Seungjai Min, Rudolf EigenmannAbstract:GPGPUs have recently emerged as powerful vehicles for general-purpose high-performance computing. Although a new Compute Unified Device Architecture (CUDA) programming model from NVIDIA offers improved programmability for general computing, programming GPGPUs is still complex and error-prone. This paper presents a compiler framework for automatic source-to-source translation of standard OpenMP applications into CUDA-based GPGPU applications. The goal of this translation is to further improve programmability and make existing OpenMP applications amenable to execution on GPGPUs. In this paper, we have identified several key transformation techniques, which enable efficient GPU Global Memory Access, to achieve high performance. Experimental results from two important kernels (JACOBI and SPMUL) and two NAS OpenMP Parallel Benchmarks (EP and CG) show that the described translator and compile-time optimizations work well on both regular and irregular applications, leading to performance improvements of up to 50X over the unoptimized translation (up to 328X over serial).