Arrayfire Webinar: Opencl and CUDA Trade-Offs and Comparisons GPU Software Features Programmability Portability Scalability

Arrayfire Webinar: Opencl and CUDA Trade-Offs and Comparisons GPU Software Features Programmability Portability Scalability

ArrayFire Webinar: OpenCL and CUDA Trade-Offs and Comparisons GPU Software Features Programmability Portability Scalability Performance Community Leading GPU Computing Platforms Programmability Portability Scalability Performance Community Performance • Both CUDA and OpenCL are fast • Both can fully utilize the hardware • Devil in the details: – Hardware type, algorithm type, code quality Performance • ArrayFire results at end of webinar Scalability • Laptops --> Single GPU Machine – Both CUDA and OpenCL scale, no code change • Single GPU Machine --> Multi-GPU Machine – User managed, low-level synchronization • Multi-GPU Machine --> Cluster – MPI Scalability Interesting developments: • Memory Transfer Optimizations – CUDA GPUDirect technology • Mobile GPU Computing – OpenCL available on ARM, Imgtec, Freescale, … Scalability • Laptops --> Single GPU Machine – ArrayFire’s JIT optimizes for GPU type • Single GPU Machine --> Multi-GPU Machine – ArrayFire’s deviceset() function is super easy • Multi-GPU Machine --> Cluster – MPI Portability • CUDA is NVIDIA-only – Open source announcement – Does not provide CPU fallback • OpenCL is the open industry standard – Runs on AMD, Intel, and NVIDIA – Provides CPU fallback Portability • ArrayFire is fully portable – Same ArrayFire code runs on CUDA or OpenCL – Simply select the right library Community • NVIDIA CUDA Forums – 26,893 topics • AMD OpenCL Forums – 4,038 topics • Stackoverflow CUDA Tag – 1,709 tags • Stackoverflow OpenCL Tag – 564 tags Community • AccelerEyes GPU Forums – 1,435 topics – Largest GPU forums by a software company • Next largest – PGI GPU Forums – 485 topics Programmability • Both CUDA and OpenCL are low-level – Time consuming kernel development – Data-parallel algorithm design • Focus on programmability interfaces Programmability Faster SSE or Slower AVX Time-consuming Easy-to-use Programmability Writing Faster Kernels SSE or Slower AVX Time-consuming Easy-to-use Programmability Writing Faster Kernels SSE or Compiler Slower AVX Directives Time-consuming Easy-to-use Programmability Writing Using Faster Kernels Libraries SSE or Compiler Slower AVX Directives Time-consuming Easy-to-use Libraries Make the Difference Raw math libraries in NVIDIA CUDA • CUBLAS, CUFFT, CULA, Magma – Provides all BLAS, LAPACK, and FFT routines necessary for most dense matrix operations • CUSPARSE – A good start for sparse linear algebra Libraries Make the Difference Raw math libraries in AMD OpenCL • clAmdBlas, clAmdFft – Provides most important Blas routines – Provides radix 2, 3, and 5 FFT routines – No LAPACK support – No sparse data support Libraries Make the Difference Raw math libraries in AMD OpenCL • clAmdBlas, clAmdFft – Provides most important Blas routines – Provides radix 2, 3, and 5 FFT routines – No LAPACK support – No sparse data support – Runs on any OpenCL-compliant device ArrayFire Code and Benchmarks .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    21 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us