A Look Inside Apple’s Custom GPU for the iPhone

Article: A Look Inside Apple’s Custom GPU for the iPhone
By: Exophase (exophase.delete@this.gmail.com), October 25, 2016 8:08 pm
Room: Moderated Discussions
Interesting read, thanks David.

I'm probably out of my depth, but honestly I feel like I could use more convincing on this. Maybe I'm missing some of the evidence? I'll indicate what seems evident from Apple.

In the datatypes section of the Advanced Metal Shader Optimization presentation:

"A8 and later GPUs use 16-bit register units
Use the smallest possible data type
• Fewer registers used → better occupancy
• Faster arithmetic → better ALU usage"

I could see how this description, at least in a broad sense, could apply to 2xFP16 SIMD. Particularly since this is meant to be a set of guidelines for optimization and not an architecture description. SIMD lanes could, under liberal interpretation, possibly be considered "register units." Stating that A8 and later use 16-bit units doesn't mean that they do so exclusively. Packed 16-bit SIMD will result in fewer registers used and faster arithmetic/better ALU usage when vectorization is successful, and on average it will be at least some of the time.

If it does have bonafide scalar 16-bit register addressing for operations it may be aliased on top of a 32-bit register file, similar to how NEON works in AArch32. In this case the register file would be extended to include isolating the top/bottom half of a register for operation inputs, and updating only one half for writeback. Would this really drive a redesign of the entire shader core?

The part about free conversion is here:

"For texture reads, interpolates, and math, use half when possible
• Not the texture format, the value returned from sample()
• Conversions are typically free, even between float and half"

In this particular context this seems to mean that conversion specifically from the texture sampler is free in most cases, and not just from float to half (hence why that's specified as even being free). This suggests that at least some set of integer to float operations are free, and I doubt this would be the case for ALU ops. And I don't see why they would use this section to talk about anything more than texture sampling.

IMG's optimization guide makes it clear that there's a conversion cost when changing precision between shader operations. It does not as far as I can find specify a cost for sampling conversion or make any format recommendations on this basis. Including a variety of conversion capabilities as part of the fixed function sampler hardware seems like fairly standard functionality, given that using floating point sampler variables with integer format textures is pretty desirable.

If there's more information in the video can someone please quote it? I can't seem to view it except in Safari or through some app...
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
A Look Inside Apple’s Custom GPU for the iPhoneDavid Kanter2016/10/25 06:35 AM
  A Look Inside Apple’s Custom GPU for the iPhoneRicardo B2016/10/25 08:25 AM
    A Look Inside Apple’s Custom GPU for the iPhoneExophase2016/10/25 08:08 PM
      A Look Inside Apple’s Custom GPU for the iPhoneExophase2016/10/25 11:39 PM
  A Look Inside Apple’s Custom GPU for the iPhoneDoug S2016/10/25 08:59 AM
    A Look Inside Apple’s Custom GPU for the iPhonedmcq2016/10/25 11:07 AM
      A Look Inside Apple’s Custom GPU for the iPhoneMaynard Handley2016/10/25 05:28 PM
    A Look Inside Apple’s Custom GPU for the iPhoneGroo2016/10/30 09:28 PM
  A Look Inside Apple’s Custom GPU for the iPhoneGabriele Svelto2016/10/25 01:58 PM
  A Look Inside Apple’s Custom GPU for the iPhoneAndreas2016/10/26 02:48 AM
    A Look Inside Apple’s Custom GPU for the iPhoneGabriele Svelto2016/10/26 03:28 AM
    A Look Inside Apple’s Custom GPU for the iPhoneDoug S2016/10/26 08:06 AM
  A couple of typosJim Trent2016/10/26 07:15 AM
    A couple of typosDavid Kanter2016/10/26 01:22 PM
  A9 has non-DX tessellation pipelineanon2016/10/26 08:23 AM
  A Look Inside Apple’s Custom GPU for the iPhoneEd2016/10/27 04:52 AM
    A Look Inside Apple’s Custom GPU for the iPhoneanon2016/10/27 06:58 AM
    A Look Inside Apple’s Custom GPU for the iPhoneDoug S2016/10/27 11:44 PM
  A Look Inside Apple’s Custom GPU for the iPhonePeter McGuinness2016/11/04 11:48 AM
    A Look Inside Apple’s Custom GPU for the iPhoneSalvatore De Dominicis2016/11/05 03:20 AM
    A Look Inside Apple’s Custom GPU for the iPhoneNickK2017/01/23 03:36 PM
      A Look Inside Apple’s Custom GPU for the iPhoneBrett2017/01/28 03:33 PM
        A Look Inside Apple’s Custom GPU for the iPhoneIreland2017/01/28 04:02 PM
        A Look Inside Apple’s Custom GPU for the iPhoneBrett2017/04/03 03:09 AM
        A Look Inside Apple’s Custom GPU for the iPhoneAnon2017/04/04 04:15 PM
          A Look Inside Apple’s Custom GPU for the iPhoneBrett2017/04/04 11:44 PM
  Imagination's Furian architectureDoug S2017/03/08 10:02 AM
    Imagination's Furian architectureGabriele Svelto2017/03/08 02:29 PM
  A Look Inside Apple’s Custom GPU for the iPhoneAnonymous coward2017/04/03 03:03 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell green?