-1

Starting April 2015, nVIDIA drivers report that OpenCL 1.2 is supported in their GPUs (at least on Kepler and Maxwell).

I have not seriously used OpenCL on nVIDIA GPUs yet (just toyed with it a bit). I remember people reporting poor OpenCL support, e.g. no support for events; no support for providing sources in SPIR/SPIR-V; and so on.

What has actually improved w.r.t. OpenCL support? And what are the significant parts missing that are actually supported in CUDA (in some alternate form)?

PS - Here are the OpenCL 1.2 extensions listed with CUDA 8.0 for my Kepler/Maxwell cards:

cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics 
cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics
cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing 
cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll 
cl_nv_copy_opts
Community
  • 1
  • 1
einpoklum
  • 118,144
  • 57
  • 340
  • 684

1 Answers1

0

In 2015 and 2016 NVIDIA have stepped up their OpenCL support. Modern NVIDIA hardware supports OpenCL 1.2, and at GTC 2016 they announced that pieces of OpenCL 2.0 will appear later this year (not all of it, just a few things). Within the last year their OpenCL driver performance has improved markedly; I have measured improvements like 1.4x in profiling tests.

Dithermaster
  • 6,223
  • 1
  • 12
  • 20
  • "Supports OpenCL 1.2" does not say all that much, actually - there's a large number of extensions, which are not necessary to meet OpenCL 1.2, but without you lose out on a great deal of the functionality of your GPU. And looking at the list with CUDA 8 I still don't see that many. – einpoklum Jun 07 '16 at 12:36