OCCA: A unified approach to multi-threading languages
arXiv:1403.0968
Abstract
The inability to predict lasting languages and architectures led us to develop OCCA, a C++ library focused on host-device interaction. Using run-time compilation and macro expansions, the result is a novel single kernel language that expands to multiple threading languages. Currently, OCCA supports device kernel expansions for the OpenMP, OpenCL, and CUDA platforms. Computational results using finite difference, spectral element and discontinuous Galerkin methods show OCCA delivers portable high performance in different architectures and platforms.
25 pages, 6 figures, 9 code listings, 8 tables, Submitted to the SIAM Journal on Scientific Computing (SISC), presented at the Oil & Gas Workshop 2014 at Rice University
References in corpus (2)
Cited by in corpus (25)
- The deal.II finite element library: design, features, and insights
- GPU-accelerated discontinuous Galerkin methods on hybrid meshes
- Efficient Exascale Discretizations: High-Order Finite Element Methods
- GPU Accelerated Discontinuous Galerkin Methods for Shallow Water Equations
- GPU performance analysis of a nodal discontinuous Galerkin method for acoustic and elastic models
- An entropy stable discontinuous Galerkin method for the shallow water equations on curvilinear meshes with wet/dry fronts accelerated by GPUs
- Nodal Discontinuous Galerkin Simulations for Reverse-Time Migration on GPU Clusters
- GPU accelerated spectral finite elements on all-hex meshes
- Pressio: Enabling projection-based model reduction for large-scale nonlinear dynamical systems
- mdspan in C++: A Case Study in the Integration of Performance Portable Features into International Language Standards
- A weight-adjusted discontinuous Galerkin method for wave propagation in coupled elastic-acoustic media
- Highly Optimized Full-Core Reactor Simulations on Summit
- Discontinuous Galerkin Discretizations of the Boltzmann Equations in 2D: semi-analytic time stepping and absorbing boundary layers
- High order weight-adjusted discontinuous Galerkin methods for wave propagation on moving curved meshes
- Optimization of Tensor-product Operations in Nekbone on GPUs
- Scaling Computational Fluid Dynamics: In Situ Visualization of NekRS using SENSEI
- GPU-accelerated Bernstein-Bezier discontinuous Galerkin methods for wave problems
- Monitoring of water volume in a porous reservoir using seismic data: A 3D simulation study
- Portable high-order finite element kernels I: Streaming Operations
- Orthogonal bases for vertex-mapped pyramids
- Bernstein-Bezier weight-adjusted discontinuous Galerkin methods for wave propagation in heterogeneous media
- Scalability of High-Performance PDE Solvers
- Mixed-Precision Performance Portability of FFT-Based GPU-Accelerated Algorithms for Block-Triangular Toeplitz Matrices
- Reduced storage nodal discontinuous Galerkin methods on semi-structured prismatic meshes
- Unified schemes for directive-based GPU offloading