6 comments on “AMD’s OpenCL heaven and hell

  1. Pingback: AMD’s OpenCL – The Good, the Bad, and the Ugly | insideHPC.com

  2. I think you hit the nail on the head.

    I’ve worked with both CUDA and OpenCL on Linux and I can say that CUDA is by far the best in terms of ease of development and stability. The driver is basically rock solid and the debugger/profiler tells you anything and everything you might need to improve your code. That said, though, it is also absolutely true that OpenCL is better than CUDA on the ultimately most important points: capabilities and execution speed.

    About use of global memory, coalesced memory accesses, etc., this is has long been very important aspects of GPGPU programming. I mean, you simply couldn’t get around changing your algorithms to make correct use of them (otherwise, performance is, as you noted, abysmal). I’ve heard, though, that the latest generation of cards are getting improved caches so that these things don’t matter as much as they used to.

  3. I will attempt to identify key personnel at AMD and forward them this article you have written along with my request that they properly support their hardware.

    Intel not only ensures that Intel graphics drivers are available, working, and documented for Linux, but also contributes to the Linux kernel itself to sustain the system that leverages these drivers.

    As someone who looks forward to leveraging OpenCL to accelerate compression, encryption, and all sorts of other important infrastructural things, I care a lot about GPLv2 compatible drivers for hardware that can be leveraged by OpenCL.

    I am hoping AMD makes the right choice to remain relevant in the market.

  4. I cant obviously say too much on an open forum but I do work for AMD and I do work for a team that is integral to getting GPGPU out to market. Let me just say that I hear your message loud and clear and we are certainly trying our best to address your concerns. The biggest issue has been the lack of mainstream acceptance of OCL. The majority of the market is still split behind OCL and CUDA. But the way forward, atleast to me, is definitely OCL. And to that end, expect a LOT more support for that from AMD in the next 1-2 years. Also, thanks for highlighting issues like this. You may think your just a lone voice in the wilderness, but it does get back to us and we do appreciate feedback from the people that actually stand to benefit from this. Thank you for that!

    • I am happy you liked the post. I honestly do like AMD, and the cards are extremely fast. I could also see that the team must be working hard, releasing drivers and SDKs so often, and I appreciated that. I hope now that OpenCL seems to be the top choice for developers, it will get more attention, and will be fixed — this is what I tried to allude to in the conclusion. Keep up the good work! :)

  5. Thank you for this review of AMD OpenCL on Linux. A honest review works better than a big smile. Just be sure that if they solve the problems, to mention that on this page.

    As I develop OpenCL on Linux, I recognise the problems with stability of AMD’s drivers on Linux. At AMD they know about these problems and have taken it more seriously lately, as their drivers were blacklisted for i.e. WebGL. At Phoronix there has been some updates on this. Trust me, I bugged them A LOT with Linux driver issues. Have you tried the latest 11.12-drivers? They are much, much more stable.

    You missed that you cannot use Radeons in a headless configuration, making it impossible to use it as a compute-device only. Also that it is quite cumbersome to program host-code that transfers data really fast, and the super-fast “zero-copy” is not implemented under Linux. Their AMD APP Fusion competition is Windows-only, giving us Linux-devs a disadvantage from the start.

    Part 1 of the “The OpenCL Programming Guide” is simply a waste of paper, but the second part with the examples is really useful. “OpenCL in Action” is a much better read, and what I see around it is currently the most popular . “Heterogeneous Computing with OpenCL” is very AMD-orientated, but together with “CUDA by example” and the various optimisation-guides it forms a good base for GPGPU with OpenCL. More resources are on my website, if you are looking for more.

    Copy&paste is hopefully solved when OpenCL is going to support templates. Each new OpenCL-compiler is better, so the optimisation-problems certainly will get less in time. As you discovered a lot of responsibility is given to the developer to take care of memory-type choices, buffer-sizes and optimisations – it can sometimes be very frustrating, can’t it? :) Integration in other IDEs than VisualStudio is my big wish too, as highlighting and project-wizards are only a part of what is needed.

Leave a Reply

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>