Mac Pro Puts the Pedal to Metal in Apple's Race with Nvidia
appleinsider.com
appleinsider.com
And, yes, that's a little mean of me, but I'm not kidding. In July 2010 he wrote three pages with illustrations about how Xcode 4 "could portend new HTML5 development tools" that delivered "solutions for parallel development tasks"; in April of that year, he wrote what might as well have been a short novel about how the iPad would "kill" DVDs, Microsoft Office, DVRs, and "idle moments." He at least used to fill his long, long articles with links that look like citations, but are actually just links to... earlier speculative articles he's written. Actual references tend to be very, very thin. He's also still remarkably committed to the notion that everything Apple does is mad genius four-dimensional chess, to the point where other bloggers in the Apple space including John Gruber (and, back when I could be described as "a blogger in the Apple space," me, I suppose) called him out for it.
The notion that Metal is a SECRET GRAND STRATEGY to replace CUDA is fascinating, it's just... not supported by any material evidence, despite the length of the article suggesting otherwise. In other words, it's pretty classic Dan Dilger.
In fairness I'd love to have a piece of that
A cheap Metal cloud computing offering from Apple would truly be something. Would probably make them better at writing cloud software, too ...
And DED is Apple's biggest Fanboy that barely understands tech or business and continue to fantasise Apple as a religion and Apple Park as Elysium.
And yet there is a group of people continue to follow its post. Even AI is still in my RSS feeds I cant remember when was the last time I actually clicked on any of its content.
I am even thinking if I should have flag this.
The worst part, is Horace Dediu, a well respected analyst that covers Apple, invite him to speak in one of his Apple investment conference.
Besides, what Metal represents is Apple's attempt to have yet another vector for their infamous walled garden and vendor lock-in strategies.
Further, the article and the website are intentionally and blatently biased. Quotes like this showcase their extreme bias:
> One can be righteously indignant that Apple isn't subsidizing everyone else with support for their platforms, whether CUDA, Vulkan, or even Android. But such emotions won't have any bearing on the final outcome of who wins and who loses in the market for developing and commercializing the graphics technology of the future.
The absolute derisiveness of open standards coupled with their insults against those that would showcases quite well the position of the article, its authors, and the website itself.
All mentions of the machine learning efforts seemed vague, as well.
That was the main reason for me for reading the article.
Seems like an unnecessary criticism. It's an Apple fan blog, not journalism. Nobody is going to Apple Insider for balanced information about tech trends.
(I don't have a relationship with either site.)
Many people are going to click on an HN link and assume it's a reasonably objective technical source. I didn't realize it was an Apple fan blog until I was well into the article.
The praise is lavish enough and thin on substance to make it offensive to the taste if you were expecting any kind of real substance on Metal or direction for it.
Basically, Valve is saying: "OS X is a completely useless environment but has lots of people who spend more money than Windows users. So, we can make lots of money if we can maintain one codebase by writing a shim wrapper even if we have to eat performance."
It’s also important to note that Vulkan at this point is as fragmented as OpenGL as far as extension support coverage goes.
But the competition here is not "Open Standards", it's CUDA, which is Nvidia's own proprietary standard. There is no Open Standard which has any kind of market share.
The claim that Apple is against Open Standards is a bit misleading in this case. Apple invested a lot of money and spent years pushing Open Standards in this market in the form of OpenCL... the open standard which Nvidia refused to support and in general the industry ignored.
Apple is no angel and in many other places they've ignore standards, but in this case, there have been standards around for years and both the competition and the market have largely ignored them. Singling out Apple here is just wrong.
They're not really talking about the higher level Vulkan-OpenGL-Metal stuff.
So CUDA and OpenCL are the specs being ignored by Apple.
My own opinion, everyone should probably just use OpenCL and contribute to it as necessary, but that's not gonna happen.
Both Vulkan Shader Language and OpenCL get you SPIR-V code, but they are not drop in replacements for each other.
In practice, you have to use CUDA or OpenCL. CUDA, because everyone uses it. OpenCL because it runs everywhere and you can easily translate all the opensource CUDA into OpenCL without as many gotchas as trying to get to Vulkan Shading Language.
Google has the poorly documented C99 dialect named Renderscript.
Some OEMs do actually ship OpenCL drivers, which can only be safely accessed via a device specific SDK.
That Apple hasn't invested in Vulkan is a fair criticism, but Vulkan hasn't exactly been grabbing market share either.
That said, I wasn't advocating to try and beat that particular dead horse. I was advocating for OpenCL. I understand why the Metal Shading Language is superior, but OpenCL is still very good, and works across platforms to boot.
CUDA and MSL are really nice. I just wish both NVidia and Apple would add to OpenCL and let the industry move forward with that standard and the ability to use whatever hardware we wanted.
Now all that said, I also understand Apple's hesitancy with OpenCL as well. It's definitely one of those "fool me once, shame on you" kind of things.
The point of the trash can Mac Pro, was to use OpenCL to leverage two mid level GPUs as a cheaper and higher performance alternative to one high end and expensive GPU.
Developers never really adopted OpenCL, and the whole idea was dropped.
Note how all proprietary shading languages are actually C++ dialects.
Only after loosing to the multiple language CUDA eco-system did Khronos start discussing about supporting C++, and even today it isn't as if OEMs are racing to bring SYCL drivers into the market.
Or was it because the best GPU option it ever had was the FirePro D700 from 2014?
I guess you could buy a bunch of eGPU enclosures and hook up better GPUs over Thunderbolt (I think those ports are effectively PCIe x4), but regardless of how much effort they may have put in on the software side, they didn't keep up with the hardware. And being a proprietary GPU module in a thermally limited environment, they didn't have 3rd parties keeping up with it for them.
Blender (specifically their Cycles rendering engine) was one piece of software that supported OpenCL on the Mac, and AMD put a bunch of work into getting that working as an alternative to CUDA. It's now been disabled on account of Apple deprecating OpenCL. Bummer. https://lists.blender.org/pipermail/bf-committers/2018-Decem...
I'm not sure I follow you here. The trash bin Mac Pro was flawed from day 1 and the fact that it's seen few upgrades (and no significant upgrades) in the 6 years since hasn't helped it a bit. I'm not attributing the failure of the Mac Pro to OpenCL, it flopped all on it's own.
If they wanted OpenCL to unseat CUDA (or even compete with it) for professional GPU compute users, they needed competitive GPU hardware, and they didn't have it.
AMD announced the existence of Mantle at their Developer Summit in November 2013. Apple announced Metal at WWDC the following June and shipped it that fall.
By the time AMD donated their Mantle code to Khronos to serve as the basis for Vulkan, Apple had already shipped Metal.
Metal v1 was so woefully incomplete, AMD was in no position to ship something similarly limited. Vulkan 1.0 is functionally similar to Metal v2, which shipped several months after Vulkan 1.0.
Wait? What?
I'm pretty sure Metal was around long before Vulkan?
I think it would be more accurate to say that Apple and MS should switch to Vulkan.
I think it's worth noting that Mantle was proprietary, and Vulkan is an open standard that was later spinned off it.
Metal was released soon after and then as a finished "product" in iOS. It likely has had more than a year in development inside Apple before the release too.
You make it almost sound like they coughed up Metal in the few months after Mantle was shown.
But my point was that Apple couldn't use Mantle even if they wanted to, because it was proprietary.
If they want, they can switch. In the long run Metal either: has no future; or must be opened; or will remain a proprietary tech with little advantage and recurring dev costs for both Apple and app devs.
With the existing competition, I personally don't think it will be both opened AND widely adopted. Probably already too late. So either you really want to get on Apple computers now, or the tech is, IMO, basically irrelevant.
Whereas OpenCL is, yes, laborious, but still relevant in the open world. And Vulkan is also used across different vendors.
Apple can get away with their current "my way or the highway" attitude solely because of their user base actually not negligible, and somehow "rich". Devs are not liking the platform a lot, and I phrased that carefully to be kind. Most of their "pro" product have been discontinued or have become laughable. The new Mac Pro is an interesting counter-example, but for a very niche market; which means that even with their pile of cash, they choose to concentrate instead of attempting to conquer new markets.
Given they sell basically luxury products, it is doubtful this will remain like that forever. They might transition their model, but I'm not sure toward what. Everybody talks all the time about services, but that's clearly not what vendors of gadgets are relying on for now. As for artificially monopolistic or quasi-monopolistic "app stores" and/or "clouds", I do not even consider that a "service", and they obviously rely completely on the consumable gadget model.
But coming back to the Mac Pro, unless you need Apple-specific software, the same is true compared to Ryzen/ThreadRipper + NVidia cards. The Mac costs 2-3x as much while delivering less performance.
At least the cloud can scale horizontally, the Mac Pro is just slow and inefficient.
Edit: You may also need the official Nvidia driver. I have never run anything with the OSS drivers.
Also the consumer cards have artificially small memory sizes (e.g. 11GB max) which painfully constrains DL jobs.
No manufacturer is allowed to build Tesla-like cards. Theoretically AMD could crush the nVidia profit margins by releasing cheap data center boards, but their developer support is rubbish and they want that high margin cash too.
In that context, the Mac Pro doesn't sound too bad a proposition. I say that as someone who recently built a dual-Titan/AMD Ryzen system, and while the pain of the build is almost gone away .. I do lust after that sexy Apple box, being plug 'n play and all ..
Apple can't really compete except in mobile GPUs, which is all about power constraints set to single digits Watts, vs >100W for server. That isn't all bad for Apple, there is lots of inference to be done, but by refusing nVidia hardware they impose a developer hurdle.
I'm looking forward to people putting 2080s into the new Mac Pro and seeing how reliable it is.
As for nVidia banning it, if you've the cash you can buy cards, just becomes painful. nVidia were doing it more because the GPGPU demand was choking the supply to graphics customers, and later dumping obsolete (for crunching) cards on the market en masse, interfering with the mid-tier card sales channel.
Basically, expertise is expensive and comes in $200k/year increments. You can use a lot of cloud GPU for that much money.
If your training takes more than an hour, you really need to checkpoint it periodically. If you have periodic checkpoints you can use spot instances and pay 10% or less of what on-demand would cost.
2) Where are you seeing 10%? More realistically spot instances are 25-30% of the cost. And if so fine, 6 weeks of machine time == dedicated workstation.
I assume you didn’t mention Switch because it, somewhat famously, does actually ship with Vulkan support natively. Which is cool.
Of course, even though video game consoles continue to converge into looking like computers, developers still don’t and can’t treat them as such. Sure, Switch runs Vulkan but that doesn’t mean you can compile a Vulkan game and ship it to the eShop. Same for a DirectX game on Xbox. Consoles are, by nature, very proprietary, and much more frugal than general purpose computing platforms.
Does adoption of Vulkan for game consoles matter? Maybe, but I’d guess probably not. It might help the consoles attract developers, but at the end of the day every console is going to get its own port with a decent amount of retooling to better suit the platform, especially in the case of Switch which is not a terribly high end piece of hardware in this day and age.
Vulkan is a kind of addendum.
Then apple started integrating well with everyone. They adopted intel cpus. Apple hardware let you have your cake and eat it too - you could run Mac OS or Windows or both. You could buy a system with intel, or ati (amd) or nvidia. You could put hard disks or ssds in your machine. You had choices. Mac laptops became the laptops that everyone wanted.
Now they're going back the other way.
That said, given Apple's hardware cost, I don't think Metal will make a big dent either.
On Windows it is only supported on classical Win32, on Win32 and UWP sandboxes only DirectX is supported.
XBox naturally is DirectX only.
On Sony PS4 there is LibGNM and doesn't appear PS 5 team will care about Vulkan.
Nintendo Switch does support Vulkan, as secondary 3D API, if you want to go full speed, there is NVN for that.
On Android, Google was forced to make Vulkan a required API on Android 10, because since its introduction as optional 3D API, outside Samsung and Google very few OEMs cared to ship good working Vulkan drivers, if at all.
It is so significant that Google is yet to add Vulkan market share information to the Android dashboard.
And also, UWP is practically dead in the water, no need to beat that horse.
Game consoles are their own beast. It would be nice if they provided either Vulkan or GL, for porting lower tech software, but otherwise it’s unclear whether a generalized API would make sense in such a specialized device.
WinUI 3.0 and XAML Islands roadmap at BUILD 2019
https://mybuild.techcommunity.microsoft.com/sessions/77008
React Native for Windows reimplementation
https://github.com/microsoft/react-native-windows
React Native @ Microsoft, https://www.youtube.com/watch?v=IUMWFExtDSg
And even if one disregards the fact that all new Windows 10 APIs are UWP based, the sandbox also applies to Win32 apps deployed via the store or MSIX packages.
As for DirectCompute, game developers naturally.
I realize anecdotes are worthless, but I know literally nobody that uses Windows Store to buy anything. If they had used it to buy books, they would already be SoL. Categorizing Windows Store as anything but a miserable option people use in any other condition than begrudgingly is a concept that is genuinely new to me, and I say this as someone that wanted to like Windows 10. Microsoft sent evangelists to my university twice while I was there in an attempt to push more developers towards UWP and the skepticism in the room was damn near palpable. To be fair, this was before UWP apps could run in windows without a Stardock utility (the Windows 8 era.)
UWP is not new. I believe both Chromium and Firefox have attempted to support it and ultimately given up (correct me if I’m wrong.) It may be gaining a bit of developer traction now, but I don’t exactly see the world shifting around it, in a world where most apps are Electron and most games are on Steam, and pretty much everything else is “on the cloud.”
All major Windows 10 APIs are UWP only, so even Chromium and Firefox need to use them, in case they need to access OS modern Windows 10 features.
Market share for games, I don't know, naturally plenty of Microsoft Studios games are there.
Personally I never bother with third party stores. Either I own the game in physical form or respective OS/console platform sales channels.
Although I expect the Steam market share to be quite big.
Finally, sandboxing any Win32, .NET or UWP is a feature of the new MSIX packages.
So even if companies are not directly deploying via the store, it doesn't mean it doesn't get sandboxed.
This article has a lot of interesting historical bits, but conflates a lot. Maybe Jobs hoped to take on the high-end graphics market, but my understanding is that the NeXT cube was fairly underpowered. It was its application development environment which made it a cult classic. (And arguably what led the the success of MacOS and iOS.)
The Mac Pro is definitely reminiscent of a time where SGI had some of the sexiest machines available. There’s always been the “Apple Tax”, but there’s also always been people willing to pay it because they love the Apple ecosystem, the aesthetics of the platform.
Not to mention machine learning is a totally different market, using OS X on workstations would be counterproductive as there isn't any feasible server solutions to run production data on.
Also the Tegra chips aren't irrelevant, they're powering the switch and extremely popular for drone/robotics application processors.
This entire article is biased beyond belief.
If you want to win me over as a developer, do it the right way. Provider superior tooling and win a customer base with superior implementation.
What I think is more realistic is that things like Vulcan will have Metal and CUDA adapters, etc., and that developers who don't need bleeding edge performance as much as they need broad compatibility will be able to use that.
In other words it's the same tradeoff as we've seen in software for decades -- you can write a fully-optimised native application per operating system, or you can use a cross-platform toolkit (increasingly the web) which can do a nice job but lacks some of the power and polish that a native application can deliver.
It's before my time, and the citation is a press release. Any one remember that?
>The lawsuit, filed on December 6, 1994, alleged that the San Francisco Canyon used some of the code developed under contract to Apple, in their additions to Video for Windows. Apple expanded the lawsuit to include Intel and Microsoft on February 10, 1995, alleging that Microsoft and Intel knowingly used the software company to aid them in stealing several thousand lines of Apple's QuickTime code in their effort to improve the performance of Video for Windows.
On March 3, 1995, a federal judge issued a temporary restraining order that prohibited Microsoft from distributing its current version of Video for Windows.[1] Microsoft subsequently released version 1.1e of Video for Windows, that removed all of the code contributed by San Francisco Canyon, stating in the release notes "does not include the low-level driver code that was licensed from Intel Corporation." Later testimony in the Microsoft anti-trust trial revealed that, at the time, Apple was threatening Microsoft with a multi-billion dollar lawsuit over the allegedly stolen code, and in return Bill Gates was threatening with the cancellation of Office for the Mac.[2]
https://itlaw.wikia.org/wiki/Apple_v._San_Francisco_Canyon
Microsoft and Apple eventually settled and cross licensed their patent portfolios.
"Following a bizarre intervention that took the form of a late-night telephone call to Microsoft head-lawyer Bill Neukom by Ann Bingaman, the head of the DoJ's antitrust division, in response to a request from Edward Stead, then Apple's general counsel, this was at last supplied. The next day, Apple added Microsoft to the list of defendants in the San Jose court case. The sub-text of the dispute also began to emerge: 'Apple is also claiming that Microsoft has been using the code in question to mess up [Apple's] attempts to make QuickTime a standard.'"
Ty folks.
For example I recently found myself doing some video encoding via ffmpeg. The default install from brew supports videotoolbox (T2 chip accelerated) out of the box, and boy howdy is it fast. It smokes my multicore intel server optimized with vaapi.
Soon users will do a `pip install pytorch` on their dev laptop and get the metal-optimized version of it without even thinking twice. Apple already has their foot in the door.
Time for Apple to unstick from their nasty lock-in attitude, and to support Vulkan. Such sickening lock-in approach in development tools is so much '90s. Apple got frozen in time with having this attitude.
Metal isn't even a competitor to Vulkan, due to Metal being Apple only. So it's not a question of what will win. It's a question, whether Apple will remain in the dark age of lock-in or will unstick from it and will become a good citizen that collaborates instead of taxing developers.
e.g.:
> By 1991 ATI was selling dedicated GPU cards that worked independently from the CPU. By enhancing the gameplay of titles like 1993's "Doom"
Hm I'm sorry, what???
AFAIK Doom never had a 8514/A mode, but there where a very few games that did: https://www.classicdosgames.com/game/Mah_Jongg_-8514-.html
Back then accelerators where about GUI/windows acceleration and then the 3dfx came out...
I'm not entirely confident that Metal will see widespread adoption become outside of iOS devices. And while that's a big market, it's on the opposite spectrum of the more powerful, and niche, Mac Pro.
Vulkan showed up in 3 paragraphs.