Inside Metal: How Apple plans to unlock the secret graphics performance of the A7 chip

135

Comments

  • Reply 41 of 94
    wizard69wizard69 Posts: 13,377member
    eggimage wrote: »
    I've gotta say it's the best article I've seen in a while



    I don't Know about that. Lots of fluff doesn't make for an engaging article. I was waiting for the big reveal of the internals of the A7 and all we got was more fluff and strung along. The article would have been great if it actually was able to describe A7's internals a bit.
  • Reply 42 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    In other words, the author doesn't realize that Unity is a primary example or how metal is supposed to be used.

    Unity is an example of software that can opt to use Metal to optimize performance on the A7. It currently does not, so developers using it and other middleware to reach cross platform audiences can choose to wait for that to happen or choose to roll their own optimizations.

    Contribute your own comments (even corrections) without assuming to know everything that anyone else is thinking or aware of.
  • Reply 43 of 94
    freediverxfreediverx Posts: 1,423member
    Quote:

    Originally Posted by auxio View Post

     

     

    I understand the point of Metal.  However, my point is that people who are really into 3D games still prefer consoles because you can have a more immersive experience (large screen, surround sound, better graphics, etc).  For Apple to win over that market (which is the target for Metal), they need to provide the same experience: either by allowing the iPad to deliver it to the TV/stereo, or by having the AppleTV itself do it.


     

    Which do you think has more potential, the shrinking console gaming market with $500 devices or some version of Apple TV expanding into gaming with $99 devices?

     

     

    http://stratechery.com/2014/apple-tv-might-disrupt-microsoft-sony/

     

     

  • Reply 44 of 94
    wizard69wizard69 Posts: 13,377member
    ctmike78 wrote: »
    Not sure how there are still doubters, but everything in this article shows that Apple is laying the groundwork for future A"x" based MacBooks and iMacs... A9 is only a year away. Metal will make it work.

    This could easily happen with A8 this year! It all depends upon what is important to Apple with A8, if they go after lower power maybe we won't get a laptop chip. If they go after performance, that is add more cores and beef up I/O we just might see portables and a Mini replacement. I don't see Apple undermining their i86 product line though, so IMacs and Mac Books would remain i86 for awhile.

    Think of these devices as a new category that is neither Mac Book nor iPad. I'm really excited about the prospects really.
  • Reply 45 of 94
    ecsecs Posts: 307member
    Quote:

    Originally Posted by stuffe View Post

     

     

    I don't think you know what OpenCL is, if you are comparing it to Metal as an either/or thing.


     

    Why do you think I don't know OpenCL? Did you read the article? I quote the line of interest here:

    Quote:


    Apple hasn't yet made OpenCL available for public developer access on its mobile devices, but Metal solves that problem too, because it works with both GPU and "GPGPU" (General-Purpose Computing on Graphics Processing Units) tasks


  • Reply 46 of 94
    crowleycrowley Posts: 10,453member
    Quote:

    Originally Posted by Corrections View Post





    Unity is an example of software that can opt to use Metal to optimize performance on the A7. It currently does not, so developers using it and other middleware to reach cross platform audiences can choose to wait for that to happen or choose to roll their own optimizations.

    It's been two weeks Dan.  No one is going to drop developing with Unity because they haven't updated their development kit with technology announced just two weeks ago.  Especially not with all the other benefits Unity offers.

     

    Apple worked with Unity to develop Metal, so name checking it as a contrast to Metal doesn't really sit right.  Unity have publicly stated their support for Metal, and will update their tools soon enough.  Given the development lifecycle of games that would benefit from Metal (and the fact that iOS8 is still a way off itself), no one is being substantively put out by a little bit of lag.

     

    You're probably right in that the best optimisations will be the ones hand-coded in by developers who get intimate with the technology, but that's true of anything.

  • Reply 47 of 94
    auxioauxio Posts: 2,717member
    Quote:
    Originally Posted by Corrections View Post



    You can certainly champion the opinion that open specifications are always preferable, but you are factually wrong in claiming "the supposedly advantages of Metal over OpenGL could have been done exactly the same (or even better) on a custom implementation of OpenGL highly optimized for new Apple hardware."



    Wanting to believe something doesn't make it true.



    There are plenty of well meaning but flawed "open standards" that simply can't be optimized better than a superior integrated solution.

     

    I believe it's possible to do both if you design it right.

     

    Any software architect worth their salt knows that you start with high-level generic ideas for your overall architecture and then work on the specific implementation details afterwards.  And it's not like Apple is creating a whole new type of hardware component here: GPUs are pretty well-defined now.  Some are obviously more capable than others, but the overall architecture is the same.  So it should be possible to come up with a high-level architectural specification which could be applied to any modern GPU (the open part).

     

    Then Apple would simply implement that specification for they're own GPU(s) (the proprietary part).  Anyone else who wants to provide compatibility for their particular platform would need to do the same (implement it according to the specification you provided).  The benefit here is that, if enough platforms did this, game developers then simply need to create their games to match the common API specification, and they'll work on all platforms which have implementations of it (like OpenGL).

     

    Why would Apple care about that when they want you to use they're platform?  Because it provides incentive for more game developers to write their games using a technology which works well on Apple's platform (as opposed to using DirectX or other technologies which don't).  Game developers obviously want to target the largest number of platforms (to get the largest user base), and if your technology works across a number of different platforms, they'll use it.  So it generates buy in for Apple's technology, and thus there'll be more/better games for their platform.

     

    The risk obviously is that other platform creators get all of the R&D you put into the open specification for free.  It may also give other GPU manufacturers clues as to how your particular hardware works.  But, at this point, most of the advances happening in GPUs are well known, so I don't think it's that big a deal.  And, like I mentioned in an earlier post, they could try the licensing model (though that would likely slow adoption by other vendors).

  • Reply 48 of 94
    ecsecs Posts: 307member
    Quote:
    Originally Posted by Corrections View Post



    […]If you insist that Metal can't exist because you like the idea of OpenGL, you might as well argue that Cocoa should not exist and that all development must be done in JavaScript because it's "open." […]

    Oh, no, please, everything but JavaScript!!!  I'd rather prefer OSF/Motif (and seriously).

     

    Jokes aside, I don't consider Cocoa a proprietary API. Cocoa is just NeXTSTEP, which was made open through OpenStep, and used as a standard by several vendors at the time (at least available for Windows NT and Solaris). In fact, even today you can use the Cocoa API without a Mac, because there's GNUstep.

     

    Now you can argue that Metal is so incredibly revolutionary it will change our minds and our way of living, so Apple will sublicense it to Google and Microsoft, and everybody will be using Metal in the next decade. But that belongs to the future, and all proprietary stuff created by Apple fits in one of two groups:

     

    Group A: Proprietary stuff which was announced like awesome, a revolution, something you really need to learn if you want to earn a living as a developer, but that… at the end, it was abandoned and forgotten (think of QuickDraw3D, AltiVec, Carbon, and quite a few more).

     

    Group B: Stuff which most of the times didn't have such a huge hype, but that at the end was a industry success and become an standard (think of the NeXTSTEP API which turned into Cocoa, the Objective C language, OpenCL -not created by Apple but almost- , and quite a few more).

     

    IMHO, Metal and Swift belong to Group A, but time will tell. In the mean time, I continue using technologies from Group B (with perhaps backends to Metal and Swift if Apple really wants to force us to use them).

  • Reply 49 of 94
    crowleycrowley Posts: 10,453member
    Quote:

    Originally Posted by auxio View Post

     

    Any software architect worth their salt knows that you start with high-level generic ideas for your overall architecture and then work on the specific implementation details afterwards.  And it's not like Apple is creating a whole new type of hardware component here: GPUs are pretty well-defined now.  Some are obviously more capable than others, but the overall architecture is the same.  So it should be possible to come up with a high-level architectural specification which could be applied to any modern GPU (the open part).


    That's all well and good, but it's the specific implementation details that get the juice flowing, and if you're having to interpret high level abstractions that are bogged down by years of legacy (which I understand OpenGL is) then you're pretty encumbered from the start.  Apple have ditched the legacy and brought in something much closer to the specific implementation details that allow developers to write much closer to the machine.  And yes, that makes cross platform development a little bit harder, but if players like Unity can make the cross-development tools translate down to Metal (and any low level APIs Microsoft or Google want to apply to their platforms) then the cross platform problem is solved by the tools rather than the API, and everyone's device is the better for it.

  • Reply 50 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    Quote:

    Originally Posted by auxio View Post

     

     

    I believe it's possible to do both if you design it right.

     

    Any software architect worth their salt knows that you start with high-level generic ideas for your overall architecture and then work on the specific implementation details afterwards.  ... So it should be possible ... Then Apple would simply implement that specification ...


     

    That all sounds nice, but if you look at the radical changes Apple made to achieve the performance gains in Metal, it becomes obvious that there is no way the same radical changes could have been made to OpenGL ES. Additionally, Apple can't make unilateral changes to OpenGL ES even if it thinks it knows best.

     

    What you're arguing is like saying the US or any other country shouldn't make any laws until the UN ratifies a global legal framework covering all possible issues first. 

     

    Metal is not really a direct competitor to OpenGL. It is an A7 specific API for doing things one can't do (or can't do nearly as fast) using a more general purpose API like OpenGL. Apple also has other APIs that are specific to iOS, to Cocoa, and to Objective C. You might as well insist that Apple also launch an open specification for Cocoa so that everyone else can benefit.

     

    Then recall that Steve Jobs tried that ~1993-96. It didn't work, and the companies that were supposed to contribute and benefit from OpenStep didn't, or said they would and then pulled out (Sun, HP, IBM). 

     

    Apple shares a universal open platform in WebKit and contributes/collaborates with a series of open standards and specifications, from H.264 to OpenGL to Unix. It contributes royalty free patents to HTML5 and creates its own open specifications like Bonjour. And Apple is the primary reason why OpenGL even survived the onslaught of Microsoft.

     

    But to demand that Apple give away all of its work in the form of universal specifications so that competitors that contribute virtually noting to the world (ahem Samsung) could benefit more than they already do, or to suggest that everything Apple does be delayed until it can be implemented in a OSI-style bureaucratic global specification, is just beyond ridiculous.

  • Reply 51 of 94
    crowleycrowley Posts: 10,453member
    Quote:
    Originally Posted by Corrections View Post

     

    But to demand that Apple give away all of its work in the form of universal specifications so that competitors that contribute virtually noting to the world (ahem Samsung) could benefit more than they already do... is just beyond ridiculous.


     

    No one is demanding that.

     

    And as you mention, Apple already does that in one area, with WebKit, so it's not all that ridiculous.

  • Reply 52 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    Quote:

    Originally Posted by ecs View Post

     

    Group A: Proprietary stuff which was announced like awesome, a revolution, something you really need to learn if you want to earn a living as a developer, but that… at the end, it was abandoned and forgotten (think of QuickDraw3D, AltiVec, Carbon, and quite a few more).

     

    Group B: Stuff which most of the times didn't have such a huge hype, but that at the end was a industry success and become an standard (think of the NeXTSTEP API which turned into Cocoa, the Objective C language, OpenCL -not created by Apple but almost- , and quite a few more).

     

    IMHO, Metal and Swift belong to Group A, but time will tell. In the mean time, I continue using technologies from Group B (with perhaps backends to Metal and Swift if Apple really wants to force us to use them).


     

    QuickDraw 3D and RAVE were both cross platform initiatives with partly open API specifications that died when proprietary competitors (Microsoft) beat them.

     

    AltiVec is an open specification that's part of the PowerPC standard. Again, beaten by proprietary AMD/Intel standards.

     

    Carbon was Apple's proprietary, procedural API from the Classic 1980s Macintosh. Apple sought to replace it with OpenStep, but Mac developers demanded it remain around for another decade so they wouldn't have to shift to adopt an open platform at great cost to themselves.

     

    Cocoa is proprietary. OpenStep implementations are not compatible and haven't been since Cocoa was birthed from the ashes of YellowBox.

     

    Objective C is an open specification but is almost exclusively used for proprietary iOS/OS X development

     

    The primary reason for Apple's failure in the early 1990s and its success in the 2000/2010s is not open vs. proprietary but rather having the clout to do what it wanted to do because it made the most money selling the most stuff at a profit. 

     

    Google says its open, but all the money it makes comes from proprietary technology. And all the openness that it embraces has gone nowhere but to fortify China (and to keep Amazon busy) with little or no economic benefit to Google.

     

    Microsoft has always been closed and proprietary, but that only worked as long as it could maintain a monopoly. It doesn't help Windows Phone, Windows 8.1 or the Zune or KIN or Surface one bit if none of those things are selling and generating profits, regardless of whether Microsoft pursues an open or proprietary strategy. 

  • Reply 53 of 94
    ecs wrote: »
    Nope. Abandoning standards is bad for end users, because less app developers are going to do an effort in releasing an app for several platforms if each platform needs a custom API and/or a major rewrite.

    Did OpenGL stop working in iOS 8? Or are you just climbing a hill called "it's only bad when Apple does it"? Console makers have offered coding directly-to-hardware for years. Oh but it's not bad when Sony does it, only when Apple does.
  • Reply 54 of 94
    Dan_DilgerDan_Dilger Posts: 1,583member
    Quote:

    Originally Posted by Crowley View Post

     

     

    No one is demanding that.

     

    And as you mention, Apple already does that in one area, with WebKit, so it's not all that ridiculous.


     

    Don't jump into a conversation and say "nobody is demanding" what somebody just demanded.

     

    Also: WebKit serves the purpose of maintaining open compatibility with the open Web specification. 

     

    It makes no sense for Apple to seek to "maintain compatibility" with nonexistent group of competitors. Nobody has the same need to drive high end gaming and GPGPU on mobile devices over an installed base of tens of millions of A7-class Application Processors. 

     

    Nobody else cares about GPUs (Samsung is shipping premium flagships with Mali graphics!), and Android exists solely to provide the UK, the Germans and the Third World with cheap phones that provide an illusion of freedom while allowing the NSA to spy on Google's dossier of their every move. 

  • Reply 55 of 94
    auxioauxio Posts: 2,717member
    Quote:
    Originally Posted by Crowley View Post

     

    That's all well and good, but it's the specific implementation details that get the juice flowing, and if you're having to interpret high level abstractions that are bogged down by years of legacy (which I understand OpenGL is) then you're pretty encumbered from the start.  Apple have ditched the legacy and brought in something much closer to the specific implementation details that allow developers to write much closer to the machine.


     

    So just make it an entirely new open SDK -- no OpenGL required (call it OpenMetal).  It _could_ be implemented using OpenGL if someone chooses to do so, but it doesn't need to be.

     

    Look, I know everyone believes there's some technical reason instead platform lock-in here, but I don't really see it.  And that's fine, Apple is gambling that their platform is strong enough now that they don't need to go the open standard route (as they typically did in the past with OS X).  Time will tell if enough game developers are willing to lock in, or whether someone will take a look at what they did with Metal and create a similar open technology (which will become the standard).

  • Reply 56 of 94
    auxioauxio Posts: 2,717member
    Quote:
    Originally Posted by Corrections View Post

     

    That all sounds nice, but if you look at the radical changes Apple made to achieve the performance gains in Metal, it becomes obvious that there is no way the same radical changes could have been made to OpenGL ES. Additionally, Apple can't make unilateral changes to OpenGL ES even if it thinks it knows best.


     

    See my other post.  Just don't base on OpenGL then.  Compiling high-level code to GPU-specific code and uploading it to a GPU is nothing new. There is an abstraction to be had here (with tweaks for each GPU).

     

    Quote:
    What you're arguing is like saying the US or any other country shouldn't make any laws until the UN ratifies a global legal framework covering all possible issues first. 

     

    Not at all.  Why does one need a governing body to publish an open standard?  Just put it out there and let a community form around it.

     

    Quote:
    Metal is not really a direct competitor to OpenGL. It is an A7 specific API for doing things one can't do (or can't do nearly as fast) using a more general purpose API like OpenGL. Apple also has other APIs that are specific to iOS, to Cocoa, and to Objective C. You might as well insist that Apple also launch an open specification for Cocoa so that everyone else can benefit.

     

    See above for the first part.  Cocoa came out of NeXT, and there are plenty of open specs related to the parts which make it up.  Look up the Cocotron project for an example of another implementation of Cocoa which works across platforms.

     

    Quote:

    But to demand that Apple give away all of its work in the form of universal specifications so that competitors that contribute virtually noting to the world (ahem Samsung) could benefit more than they already do, or to suggest that everything Apple does be delayed until it can be implemented in a OSI-style bureaucratic global specification, is just beyond ridiculous.



     

    So just make a small portion of the spec open (and leave a lot of the implementation details to the proprietary part).  That way you don't get bogged down in bureaucracy anytime you want to move forward.  Also, Apple could do the same thing they do with WebKit to keep things moving at the pace they need.

  • Reply 57 of 94
    sockrolidsockrolid Posts: 2,789member

    Originally Posted by AppleInsider View Post



    ...  there were additional months of unanimous media agreement that the power of the A7 "wasn't even necessary" for a mobile device ...

     

    "I laid out memory so the bottom 640K was general purpose RAM and the upper 384 I reserved for video and ROM, and things like that. ... It was ten times what we had before. But to my surprise, we ran out of that address base for applications within—oh five or six years people were complaining."

    - Bill Gates, 1993

     

    Things move a whole lot faster in tech than they did 20+ years ago.

    Better to release a product that's a quantum leap ahead, then let developers catch up to its potential.

    (And nope, it won't take anywhere near " five or six years.")

  • Reply 58 of 94
    crowleycrowley Posts: 10,453member
    Nobody else cares about GPUs (Samsung is shipping premium flagships with Mali graphics!), and Android exists solely to provide the UK, the Germans and the Third World with cheap phones that provide an illusion of freedom while allowing the NSA to spy on Google's dossier of their every move. 
    What's with the weird selective country name checking? Android has dominant market share in the US as well, so android doesn't exist "solely" for what you say at all.
  • Reply 59 of 94
    ecsecs Posts: 307member
    Quote:

    Originally Posted by Corrections View Post

     

     

    QuickDraw 3D and RAVE were both cross platform initiatives with partly open API specifications that died when proprietary competitors (Microsoft) beat them.

     

    AltiVec is an open specification that's part of the PowerPC standard. Again, beaten by proprietary AMD/Intel standards.

     

    Carbon was Apple's proprietary, procedural API from the Classic 1980s Macintosh. Apple sought to replace it with OpenStep, but Mac developers demanded it remain around for another decade so they wouldn't have to shift to adopt an open platform at great cost to themselves.

     

    Cocoa is proprietary. OpenStep implementations are not compatible and haven't been since Cocoa was birthed from the ashes of YellowBox.

     

    Objective C is an open specification but is almost exclusively used for proprietary iOS/OS X development

     

    The primary reason for Apple's failure in the early 1990s and its success in the 2000/2010s is not open vs. proprietary but rather having the clout to do what it wanted to do because it made the most money selling the most stuff at a profit. 

     

    Google says its open, but all the money it makes comes from proprietary technology. And all the openness that it embraces has gone nowhere but to fortify China (and to keep Amazon busy) with little or no economic benefit to Google.

     

    Microsoft has always been closed and proprietary, but that only worked as long as it could maintain a monopoly. It doesn't help Windows Phone, Windows 8.1 or the Zune or KIN or Surface one bit if none of those things are selling and generating profits, regardless of whether Microsoft pursues an open or proprietary strategy. 


     

    Nope. Microsoft didn't "beat" QuickDraw3D (Apple chose OpenGL rather than Direct3D for replacing QD3D, and not because it was "beaten", but because OpenGL was a industry standard that everybody needed to support).

     

    Also, AltiVec wasn't "beaten" by anybody. It's just Apple who decided to drop it on their platform after having convinced all developers that they needed to use it if they wanted the best performance in Macs.

     

    And Cocoa is not what I call "proprietary" (at least it's not what I call nonstandard). When something is so good you really need to use it, and besides you also have it on other platforms, I consider it's a standard.

     

    We could go on arguing on this for a year. But then Metal and Swift will be stuff from the past and nobody will remember this WWDC (or at least these technologies).

  • Reply 60 of 94
    knowitallknowitall Posts: 1,648member
    Excellent story!
    Apple shows some real groundwork advancements.
    That's very hard to do.
Sign In or Register to comment.