A Performance Comparison of CUDA and OpenCL
arXiv:1005.2581
Abstract
CUDA and OpenCL are two different frameworks for GPU programming. OpenCL is an open standard that can be used to program CPUs, GPUs, and other devices from different vendors, while CUDA is specific to NVIDIA GPUs. Although OpenCL promises a portable language for GPU programming, its generality may entail a performance penalty. In this paper, we use complex, near-identical kernels from a Quantum Monte Carlo application to compare the performance of CUDA and OpenCL. We show that when using NVIDIA compiler tools, converting a CUDA kernel to an OpenCL kernel involves minimal modifications. Making such a kernel compile with ATI's build tools involves more modifications. Our performance tests measure and compare data transfer times to and from the GPU, kernel execution times, and end-to-end application execution times for both CUDA and OpenCL.
12 pages, 6 Tables, 5 Figures
References in corpus (2)
Cited by in corpus (9)
- Astrophysical Supercomputing with GPUs: Critical Decisions for Early Adopters
- NLSEmagic: Nonlinear Schrödinger Equation Multidimensional Matlab-based GPU-accelerated Integrators using Compact High-order Schemes
- Pipelined Iterative Solvers with Kernel Fusion for Graphics Processing Units
- An Exploration of OpenCL for a Numerical Relativity Application
- A Unified Optimization Approach for CNN Model Inference on Integrated GPUs
- Investigation of heterogeneous computing platforms for real-time data analysis in the CBM experiment
- Accelerating a Cloud-Based Software GNSS Receiver
- Fast Integral Histogram Computations on GPU for Real-Time Video Analytics
- Advanced Programming Platform for efficient use of Data Parallel Hardware