Programming CUDA and OpenCL: a case study using modern C++ libraries
From MaRDI portal
Abstract: We present a comparison of several modern C++ libraries providing high-level interfaces for programming multi- and many-core architectures on top of CUDA or OpenCL. The comparison focuses on the solution of ordinary differential equations and is based on odeint, a framework for the solution of systems of ordinary differential equations. Odeint is designed in a very flexible way and may be easily adapted for effective use of libraries such as Thrust, MTL4, VexCL, or ViennaCL, using CUDA or OpenCL technologies. We found that CUDA and OpenCL work equally well for problems of large sizes, while OpenCL has higher overhead for smaller problems. Furthermore, we show that modern high-level libraries allow to effectively use the computational resources of many-core GPUs or multi-core CPUs without much knowledge of the underlying technologies.
Recommendations
- ViennaCL-linear algebra library for multi- and many-core architectures
- Solving ordinary differential equations on GPUs
- An OpenCL implementation for the solution of the time-dependent Schrödinger equation on GPUs and CPUs
- Introduction to high performance scientific computing
- Finite-Difference in Time-Domain Scalable Implementations on CUDA and OpenCL
Cited in
(10)- Development and analysis of a block-preconditioner for the phase-field crystal equation
- Thermoelectric properties of Wigner crystal in two-dimensional periodic potential
- ViennaCL-linear algebra library for multi- and many-core architectures
- Program package MPGOS: challenges and solutions during the integration of a large number of independent ODE systems using GPUs
- Solving random ordinary differential equations on GPU clusters using multiple levels of parallelism
- CUDA
- Preconditioned nonlinear conjugate gradient method for micromagnetic energy minimization
- Scaling of chaos in strongly nonlinear lattices
- The use of functional programming library for parallel computing on CUDA
- High-performance processing of covariance matrices using GPU computations
This page was built for publication: Programming CUDA and OpenCL: a case study using modern C++ libraries
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2870663)