CUDA or OpenCL
Hi! I´m learning CUDA and GPGPU programming, but I wonder if it wouldn´t be better start with OpenCL, since NVIDIA is supporting it and OpenCL targets devices from different manufacturers. I´ve also read that in terms of performance OpenCL is just a little slower than CUDA and in some cases it´s even faster. What would be the best choice if we look at the near future?

Thanks,

JP
Hi! I´m learning CUDA and GPGPU programming, but I wonder if it wouldn´t be better start with OpenCL, since NVIDIA is supporting it and OpenCL targets devices from different manufacturers. I´ve also read that in terms of performance OpenCL is just a little slower than CUDA and in some cases it´s even faster. What would be the best choice if we look at the near future?



Thanks,



JP

#1
Posted 01/18/2011 04:19 PM   
[quote name='jpaulorio' date='18 January 2011 - 06:19 PM' timestamp='1295367581' post='1179052']
Hi! I´m learning CUDA and GPGPU programming, but I wonder if it wouldn´t be better start with OpenCL, since NVIDIA is supporting it and OpenCL targets devices from different manufacturers. I´ve also read that in terms of performance OpenCL is just a little slower than CUDA and in some cases it´s even faster. What would be the best choice if we look at the near future?

Thanks,

JP
[/quote]

The Cuda compiler is more mature (you are less likely to suffer from compiler bugs), and starting kernels from your program requires less setup code with Cuda than it does with OpenCL. Plus, converting programs from Cuda to OpenCL and vice versa is not difficult. So if your current goal is to learn GPU programming then you are better of with Cuda. If you decide at some point that you need to use OpenCL for some reason then you won't have any problems because your knowledge from Cuda will easily transfer to OpenCL.
[quote name='jpaulorio' date='18 January 2011 - 06:19 PM' timestamp='1295367581' post='1179052']

Hi! I´m learning CUDA and GPGPU programming, but I wonder if it wouldn´t be better start with OpenCL, since NVIDIA is supporting it and OpenCL targets devices from different manufacturers. I´ve also read that in terms of performance OpenCL is just a little slower than CUDA and in some cases it´s even faster. What would be the best choice if we look at the near future?



Thanks,



JP





The Cuda compiler is more mature (you are less likely to suffer from compiler bugs), and starting kernels from your program requires less setup code with Cuda than it does with OpenCL. Plus, converting programs from Cuda to OpenCL and vice versa is not difficult. So if your current goal is to learn GPU programming then you are better of with Cuda. If you decide at some point that you need to use OpenCL for some reason then you won't have any problems because your knowledge from Cuda will easily transfer to OpenCL.

The views and opinions expressed herein are my own personal opinions and do not represent my employer's view(s) in any way.

#2
Posted 01/19/2011 07:19 AM   
[quote name='jjp' date='19 January 2011 - 04:19 AM' timestamp='1295421582' post='1179561']
The Cuda compiler is more mature (you are less likely to suffer from compiler bugs), and starting kernels from your program requires less setup code with Cuda than it does with OpenCL. Plus, converting programs from Cuda to OpenCL and vice versa is not difficult. So if your current goal is to learn GPU programming then you are better of with Cuda. If you decide at some point that you need to use OpenCL for some reason then you won't have any problems because your knowledge from Cuda will easily transfer to OpenCL.
[/quote]

thanks for the answer... i think i´ll stick to CUDA by now...
[quote name='jjp' date='19 January 2011 - 04:19 AM' timestamp='1295421582' post='1179561']

The Cuda compiler is more mature (you are less likely to suffer from compiler bugs), and starting kernels from your program requires less setup code with Cuda than it does with OpenCL. Plus, converting programs from Cuda to OpenCL and vice versa is not difficult. So if your current goal is to learn GPU programming then you are better of with Cuda. If you decide at some point that you need to use OpenCL for some reason then you won't have any problems because your knowledge from Cuda will easily transfer to OpenCL.





thanks for the answer... i think i´ll stick to CUDA by now...

#3
Posted 01/21/2011 08:09 PM   
In my opinion, writing programs for OpenCL is much harder than writing programs for CUDA. When I learned OpenCL, having CUDA as a base was extremely helpful in understanding what OpenCL was trying to do, so I would also recommend that you start with CUDA.

Matt
In my opinion, writing programs for OpenCL is much harder than writing programs for CUDA. When I learned OpenCL, having CUDA as a base was extremely helpful in understanding what OpenCL was trying to do, so I would also recommend that you start with CUDA.



Matt

#4
Posted 01/24/2011 09:08 PM   
Scroll To Top