marnovo / macOS-eGPU-CUDA-guide

Set up CUDA for machine learning (and gaming) on macOS using a NVIDIA eGPU
MIT License
222 stars 16 forks source link

Investigate support of macOS 10.14 #8

Closed marnovo closed 4 years ago

marnovo commented 6 years ago

With the upcoming macOS 10.14 (Mojave) in the next weeks/months, there will be a fair amout of people eager to update from their older versions given all the new features.

However, it is very likely that, being 10.14 a new major update (despite being minor according to semantic versioning), previous support will be broken. Hopefully this means less work than more work to make NVIDIA eGPUs a reality on macOS.

Therefore research on running eGPU + NVIDIA + CUDA on top of macOS 10.14 and updates to the repository are necessary.

marnovo commented 6 years ago

Some preliminary info available at:

marnovo commented 6 years ago

More good news:

marnovo commented 5 years ago

"Official" topic from NVIDIA/latest news on macOS 10.14 Mojave NVIDIA web drivers: https://devtalk.nvidia.com/default/topic/1042279/?comment=5286813

10/18 Update:

Developers using Macs with NVIDIA graphics cards are reporting that after upgrading from 10.13 to 10.14 (Mojave) they are experiencing rendering regressions and slow performance. Apple fully control drivers for Mac OS. But if Apple allows, our engineers are ready and eager to help Apple deliver great drivers for Mac OS 10.14 (Mojave).

Apple's recently released macOS 10.14 (Mojave) does not support CUDA. For CUDA developers who are on macOS 10.13, it is recommended to not upgrade to Mojave. Developers may not be able to use Xcode 10 to build GPU applications or run CUDA applications. Both macOS 10.13.6 and Xcode 9.4 support CUDA and work great with CUDA 10. NVIDIA is working with Apple to get Mojave to support CUDA. CUDA Product Management

1

Posted 09/28/2018 11:21 PM

marnovo commented 5 years ago

More info regarding Apple's macOS 10.14 Mojave x NVIDIA web drivers--and very upset users: https://www.forbes.com/sites/marcochiappetta/2018/12/11/apple-turns-its-back-on-customers-and-nvidia-with-macos-mojave/

ZhiquanW commented 5 years ago

Is is possible that apple will not support CUDA even in the later version?

Nick-Harvey commented 5 years ago

I really hope this gets addressed! Lots of developers looking to do AI/ML development need this to work.

marnovo commented 5 years ago

The "political" deadlock is still on between NVIDIA and Apple, unfortunately.

I have been following the discussions around this last month and although there are some workarounds available, they focus on much simpler compatibility than actual hardware acceleration & CUDA (see post). Sadly, it could be that there's a driver ready for months already but the standoff keeps it unavailable (see post).

There are some renewed hopes for a community-driven compatibility layer as Apple announced a DriverKit API alongside macOS 10.15 Catalina, but these may fall short if the support is merely at user (not kernel) level. More info on: https://devtalk.nvidia.com/default/topic/1042520/drivers/-when-will-the-nvidia-web-drivers-be-released-for-macos-mojave-10-14-/86

In terms of pressure towards Apple dropping the fight and accepting NVIDIA back again, there's a 16k+ signatures online petition and the newly announced, more modular & pro-focused Mac Pro could be another vector, but I wouldn't hold my breath until year-end.

marnovo commented 5 years ago

This post on the NVIDIA forum puts the current situation well:

metacollin

I don't understand why this is still being so widely misunderstood. As per statements made in support tickets by NVIDIA that were subsequently posted in this thread, the issue is that Apple requires that any video drivers from Mojave onward support Metal and NVIDIA is still working on adding Metal support, and Apple won't approve the driver until this support is complete and meets some kind of reasonable expectation for stability and performance.

What is ridiculous is that his is hardly unreasonable, considering that the entire operating system's GUI and window manager renderer uses Metal and only Metal for hardware acceleration. If this still isn't clear enough, Mojave deprecated OpenGL entirely and the operating system no longer uses it. Yet here we are, with your #UnblockNVIDIA hashtag. What, exactly, is the course of action you want to happen? What would you have Apple do? Unblock a driver that won't even work, that isn't finished and doesn't have working or complete Metal support? OpenGL programs could be accelerated, but most of macOS itself couldn't be. It would damage the reputation of both Apple and NVIDIA if they approved something in such a state.

This isn't even mysterious in anyway. We KNOW why Apple would not approve drivers. Apple has always refused approval for stuff for one reason. And that is is because it didn't meet a certain minimum expectation of quality. That's Apple's entire business model for f--k's sake.

For better or worse, they try to control their platforms to create a walled garden where a certain expectation of stability, security, quality, performance, and compatibility can be not just expected but relied upon. People who value that and want that are Apple's entire customer base. This is the entire reason Apple even exists. (Note: I am not saying this is 'better' or 'correct' or anything. There are plenty of disadvantages to this walled garden model as well, and it boils down to personal preference, that's all. People who don't like it don't use Apple products, and there is nothing wrong with liking or not liking, using or not using Apple or any other brand of tech, 'holy wars' or not).

But I digress.

Your assumption that this is some sort of political decision on Apple's part is just that, an assumption. And one that has already been contradicted by other official statements from NVIDIA statements made in support tickets posted in this very thread.

Seriously though, just think about it: why has no one ever been able to come up with a compelling, logical, sensical reason as to why Apple would block a finished, working, good-to-go graphics card driver? How could this possibly benefit Apple? It wouldn't. It is simply not in Apple's own best interest to do that. They aren't blocking a perfectly working and ready to go driver.

I mean I get it. I am pissed about the situation as much as anyone else. But if you believe that it is so simple as Apple stopping the release of an otherwise fully functional Mojave driver and if enough people use some hashtag, with enough outcry, the problem can be immediately solved... I don't see how that could possibly be the case. It is not so simple.

The real issue is Apple deciding to deprecate OpenGL, and sadly that ship has very much sailed. So now the issue is the glacial pace NVIDIA is developing the updated driver that supports Metal, which I would also point out is specific to MacOS, whereas OpenGL was used on Linux and to some degree on Windows (albeit not as much as DirectX). So they can't port code from anything else, it is all going to be written from scratch, and the potential market is, sadly, quite small in comparison to all others NVIDIA competes in. I couldn't say what the specific issues are. Are they having trouble hiring people with the highly niche and also uncommon expertise to support a proprietary new graphics API? Or do they have the people, just not very many of them so development is slow, simply because it doesn't make business sense to spend money on enough engineers to develop it any quicker? The real reason is probably more complex and convoluted, and also known only to a handful of NVIDIA employees.

The bigger picture can be argued to involve Apple's gradual transition to total disuse of NVIDIA hardware in their products, for whatever reason, but that is a gradual change spanning years, and as a result, it no longer makes sense for NVIDIA to expend the resources to develop a new driver in the timespan that they normally merely update an existing one that supports a graphics API they already support on all other platforms, rather than no other platforms.

I mean, its a crappy situation but it is the situation we're in. But seriously? #UnblockNVIDIA? All that is doing is making you look foolish, no offense.

So, yes, if one choses to ignore all relevant context in the name of pedantry and ignore the bigger picture, then the statement 'Apple is blocking the driver' is not incorrect. But it sure as hell isn't correct. It's mostly just devoid of any real meaning.

Also, this turned into quite a ramble, at this point I don't know if anyone will even slog through it. But I want to wrap up by pointing out what the the official NVIDIA statement in the FAQ does not say.

It does not say:

  1. That Apple is blocking the driver.
  2. That they've submitted a driver, or anything else, to apple for approval.
  3. That there even is a working or finished driver to submit.
  4. That they submitted a driver but Apple has denied approval.
  5. Or that they're just awaiting approval.

No where in that statement are any of those things said. In fact, they have been very careful to avoid saying any of those things. All that is said is "NVIDIA cannot release the driver unless it is approved by Apple". Which has always been true. If the driver wasn't done and NVIDIA has yet to submit anything for approval, that statement would still be true. It would be true regardless of any possible situation that is behind the lack of any mojave driver.

he statement is uselessly vague and very carefully avoids any language that actually asserts any action on the part of Apple. It does not say 'Apple is refusing to approve the driver', or, 'the driver is awaiting approval by apple' or any reasonable statement one would think would be made if that were actually the situation.

The only reason to make a statement so infuriatingly useless and vague is so people will make an assumption that isn't true but is to the statement maker's benefit. Which is exactly what has happened.

1227

Posted 07/03/2019 04:28 PM

Another thread to follow for updates (if you still have hope) is from the Hackintosh community: https://www.tonymacx86.com/threads/nvidia-drivers-for-mojave-10-14-not-available-no-workaround-works-well.260857/page-90

Mrs-Feathers commented 5 years ago

should probably take mojave off the "requirements" as mojave its nearing the end of its lifespan and will not be receiving support for nvidia drivers. period. next version might, if magic happens. but yeah.. i came here because it says it works with mojave. but it doesn't seem to do that.

marnovo commented 4 years ago

So finally NVIDIA CUDA 10.2 will be the last version to support macOS (up to 10.13):

CUDA 10.2 (Toolkit and NVIDIA driver) is the last release to support macOS for developing and running CUDA applications. Support for macOS will not be available starting with the next release of CUDA.

So this + Apple's move to their own silicon make it fair to assume macOS 10.14+ support will not come.

Nick-Harvey commented 4 years ago

Looks like this one can be marked closed/won't-fix ;)

On Mon, Oct 19, 2020, 6:59 PM Marcelo Novaes notifications@github.com wrote:

So finally NVIDIA CUDA 10.2 https://docs.nvidia.com/cuda/archive/10.2/cuda-toolkit-release-notes/index.html#title-new-features will be the last version to support macOS (up to 10.13 https://developer.nvidia.com/cuda-10.2-download-archive?target_os=MacOSX&target_arch=x86_64&target_version=1013 ):

CUDA 10.2 (Toolkit and NVIDIA driver) is the last release to support macOS for developing and running CUDA applications. Support for macOS will not be available starting with the next release of CUDA.

So this + Apple's move to their own silicon seem fair to assume macOS 10.14+ support will not come.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/marnovo/macOS-eGPU-CUDA-guide/issues/8#issuecomment-712486760, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAE4QRUXNIPUEYKPFMEIAOLSLTAFRANCNFSM4FI3SSPQ .