MATLAB Answers

2

Support for HIP and/or OpenCL GPU acceleration

Asked by Hamid Moazed on 21 Jan 2019
Latest activity Commented on by Joss Knight
on 27 Nov 2019 at 17:09
I may be wrong but it seems MathWorks is not planning on supporting an open standard for GPU acceleration, which is bad news for those of us who use Macs.
It seems Apple is trying to fight nVidia’s monopoly in the GPU market... they switched from nVidia to AMD chips in the new Macs and MacBooks, and now they are reportedly refusing to cooperate with nVidia (according to a sticky post by nVidia on their developer's forum) to create drivers for MacOS Mojave. Which means once you upgrade your OS to Mojave you are SoL if you want to use CUDA etc. on your Mac. No more hardware acceleration when, say, running deep learning AI code etc. On one had I'm sad that I can't upgrade my OS anymore if I want to continue developing on a Mac, and on the other hand I'm tired of nVidia using their monopoly to crank up the price of their GPUs. Unlike any other technology which has gotten cheaper and cheaper with time, GPUs are getting more and more expensive, and it is my belief that is due to nVidia being a near-total monopoly in that field. $3000 for a graphics card is kinda hard to swallow, given the entire rest of your rig, including a 12 core CPU and 64 gigs of RAM probably cost you less than that. Of course AMD has been trying to break the monopoly, but unless software vendors, from MathWorks to game developers, switch from nVidia's proprietary API to an open standard (AMD has been pushing H.I.P. which they have open-sourced, since OpenCL failed to gain much marketshare), nVidia will remain the only game in town. This reminds me of when Apple decided to break Adobe's Flash monopoly in online animation, and refused to allow Flash plugins on iPhones and iPads. It was super frustrating for a while since most sites used Flash (which according to Apple was poorly implemented, bloated, and resource intensive, and to top it off, it was proprietary and required licensing), but thanks to Apple's stubbornness most sites eventually switched to HTML5, a free open standard. So I'm kinda torn, in the immediate future not having any support for nVidia on Apple computers is going to suck (I'll probably switch to TensorFlow), but at the same time I do understand (and appreciate) Apple's end-game. An open standard for GPU programming would bring about competition in the GPU market which would translate into lower prices and higher performance, so maybe a little bit of pain now is worth the major benefits in the future. So I'm hoping MathWorks will help out and invest in porting their GPU acceleration code to HIP or OpenCL (HIP has a C++ translator that supposedly does much of the core work for converting existing CUDA C++ source code to HIP C++ source code), and I'm almost certain AMD would be more than happy to lend resources to help out in the conversion. Here is me hoping...

  0 Comments

Sign in to comment.

2 Answers

Answer by Joss Knight
on 26 Jan 2019

MathWorks regularly reviews its policies on GPU support. Where there is a market, a robust, stable, performance portable language and runtime, and an extensive, supported, multi-platform ecosystem of tools, there is a good incentive to expand.

  2 Comments

Here we are a few months from the new year and I have the same question as OP.
I want to buy an AMD card, many of my other programs support it, but MATLAB does not! Is there any plan to fix this?
Joss Knight
on 26 Nov 2019 at 11:35
The answer I gave here is still correct. Our plan is to assess the options on a regular basis.
When you say 'other programs support it', do you mean for compute, or for graphics? MATLAB supports graphics on AMD cards.

Sign in to comment.


Answer by michael woodcock on 27 Nov 2019 at 16:28

Gosh, I just hate to contribute to a company with proprietary software/hardware adopted by everyone, when that proprietary software/hardware entangles you into an unnecessarily overpriced line of graphics cards, for no reason other than software developers not supporting alternative hardware options.
I have an older nvidia, and it works good, but I want an upgrade, it only supports Cuda 6.5 (Invidia quadro fx4800, MATLAB can not support this older card :( ) AMD is my card of choice EXCEPT for the deep learning and other features in MATLAB which I understand require investment into NVIDIA cards to take advantage of GPU acceleration.
I love options, it seems NVIDIA also supports OPENCL, Perhaps future development of OPENCL will open doors for your users to have a choice in graphics cards :)

  1 Comment

Joss Knight
on 27 Nov 2019 at 17:09
Hi Michael. I'm sorry it winds you up! There is no hidden agenda. We genuinely want to provide our customers with support for commonly used hardware within the limitations of what we can feasibly support. Unfortunately there isn't just one OpenCL (or HIP, or SYCL), one compiler, one set of maths libraries, or one technical support network for those libraries. Things are changing though, watch this space!

Sign in to comment.