Live data from Hacker News

GPU advancements in M3 and A17 Pro [video]

developer.apple.com

131–140 of 148 posts

Re: GPU advancements in M3 and A17 Pro [video]

#131
post #127
post #113

Earlier quoted context omitted.

But Apple support blames that Dell makes shitty monitors and it is not their problem :D They advised me to buy Apple Display.

To be fair Apple usually follow specs to a fault- the problem they have when tying into non-Apple ecosystems is when de facto standards others follow are widespread- they often don’t implement/test those and don’t consider it their problem when encountered…

They know that their software/hardware is buggy for three years, but blaming others is easier than admit they made mistake.

Other monitors work without flicker in Intel Macs, and suddenly M1 Macs have flicker issue...

Solution: "Buy Apple Display"

Re: GPU advancements in M3 and A17 Pro [video]

#132
post #97
post #92

> I'm excited to tell you about the new Apple family 9 GPU architecture in A17 Pro and the M3 family of chips, which are at the heart of iPhone 15 Pro and the new Max. "The new Max"? He clearly meant "the new Macs". Kinda weird that Apple can't properly transcribe its own content.

Why is it surprising, it's not like content ownership gives you any advantage in the typical transcription algorithms

It’s surprising since I would expect Apple to check whatever they get back from a transcription service.

Re: GPU advancements in M3 and A17 Pro [video]

#133

Earlier quoted context omitted.

It’s pretty weird to count the number of games. Wouldn’t it be better to count the number of players? Many of those games will have close to zero players.

Mobile gamers dwarf the number of console and PC gamers.

What does dwarf in numbers actually means?

As in facts from certified market analysis company, showing actual number of players per platform.

Re: GPU advancements in M3 and A17 Pro [video]

#134
post #109
post #104

Earlier quoted context omitted.

This issue can be fixed by switching the display to RGB [1]. So I think it’s a software bug but it‘s really annoying since the fix sometimes resets and the bug only occurs when there is a lot of black on the screen. [1] https://gist.github.com/GetVladimir/c89a26df1806001543bef4c8...

I have two monitors connected to M1 mac. One works perfectly fine and is automatically RGB. Other flickers and when changing to RGB mode it is lime green. Wonder why it is not problem with Intel Macs and if M3 fixes those bugs? Maybe it is Apples feature to sell more of their own monitors. They make sure other high end brands do not work with macOS. It does not make sense that this kind of bug is 3 years active.

That's hilarious because that sounds like the old sync-on-green problem that Macs and monitors used to have. And that used to happen a lot with Dell monitors.

How very odd.

Re: GPU advancements in M3 and A17 Pro [video]

#135
post #88
post #57

Earlier quoted context omitted.

Well, they got into that position starting from a near bankrupt company, which couldn't negotiate anything exclusive, and which was for a long time at the mercy of Motorola and the Intel. So it's something they took advantage of after they grew (well, which company at their scale wouldn't ask for the best wholesale deals?), but not what made them big in the first place.

What made them big in the first place were the iPod/iTunes/iPhone and the ludicrous revenues from the App Store. The iPod's only notable hardware that wasn't just a random off the shelf part was the click wheel, the chips were all off-the-shelf (until old iPhone chips counted as that), and iPhones didn't get custom chips until the 4. So I guess the other part of the winning formula is "use market dominance in one sec…

Weren't they the first product to ship the small form Toshiba hard drives?

Re: GPU advancements in M3 and A17 Pro [video]

#136

Earlier quoted context omitted.

Those statements have to be made carefully. A lot of the time the GPU is memory-bandwidth bound, so a increase in FLOPS does nothing. Doesn't mean they're worthless.

Even if you're not memory bandwidth bound, leveraging these 2x FLOPs on recent designs is hard, often due to issues like register bank clashes. They are low utilization, but apparently still worth it because process node changes have made more ALUs take relatively little area. So doubling the ALU count, even with low utilization is still apparently an overall benefit (ie, there wasn't something better to spend that d…

Well if you're not memory bandwidth bound, you're compute bound by definition.

Re: GPU advancements in M3 and A17 Pro [video]

#137
post #61

Earlier quoted context omitted.

Many of us still use our graphics chips for graphics, where FP32 is king.

Not on mobile, which is where Apple GPUs come from. FP32 is not necessary for many computations related to graphics, it is just simpler to deal with one data type.

Are you claiming that people aren't using FP32 on mobile, or are you claiming that people are using FP32 on mobile but could technically have gotten away with FP16?

If it's the latter, it's still correct to say that FP32 is king in mobile graphics.

Re: GPU advancements in M3 and A17 Pro [video]

#139

Earlier quoted context omitted.

Even if you're not memory bandwidth bound, leveraging these 2x FLOPs on recent designs is hard, often due to issues like register bank clashes. They are low utilization, but apparently still worth it because process node changes have made more ALUs take relatively little area. So doubling the ALU count, even with low utilization is still apparently an overall benefit (ie, there wasn't something better to spend that d…

Well if you're not memory bandwidth bound, you're compute bound by definition.

Not really, there is no such definition that you're referring to.

Perf of a GPU can be limited by any one of the thousand little things within the micro-architectural organization of the GPU in question, any on-chip path can become the bottleneck:

1. DRAM bandwidth

2. ALU counts

3. Occupancy

4. Instruction issue port counts

5. Quality of Warp scheduling (the scheduling problem)

6. Operand delivery

7. Any given cache bandwidth

8. Register file bandwidth (SRAM port counts)

9. Head of the line blocking in one of the many queues / paths in the design whatever that path is responsible for:

- sending memory request from the instruction processing pipelines to the memory hierarchy - or sending the reply with the data payload back, - or doing the same but with the texture filtering block (rather than memory H), - or the path that parses GPU commands from command buffers created by the driver, - or the path that subsequently processes those already decoded commands and performs on-chip resource allocation, warp creation / tear down, all of which need to be able to spawn the work further down fast enough to keep the rest of the design fed;

and so on and so on and so on.

By the time a high quality design is fully finished, matured, and successful enough on the market to show up on everyone's radar outside of the hardware design space, due to the commonly occurring ratios of costs of solutions for these various problems above, it usually ends up being 1, 2, or 3, but that's experimental data + statistics + survivorship bias, there is no "definition" that that's the case.

Further, what's "commonly occurring" is changing over time as designs drift into different operational areas in the phase space of operating modes as they pick out low-hanging fruits, science and experience behind the micro-architecture grows, common workloads change in nature, and new process nodes with new properties become the norm. Doubling up of F32 ALUs in Ampere is a good example of that, that was done in a way that changed the typical ratios substantially. And now M3 threw a giant wrench into incumbent statistics of relationships between (3) and the rest of the limiters, as well as between (3) and what's actionable for a GPU program developer to do to mend it.

You can be low on DRAM bandwidth util and ALU util at the same time. How would that be if there were no other limiters?

Generally, a component X of a computer system needs to be a limiter Y% of the time where Y equals the portion of the total cost of the system X is responsible for.

The principle is the easiest to apply in a "calculus of variations" manner: if doubling the key performance metric of X results in an increase of the cost of the entire system as a whole by 5%, but how often X is the limiter drops from 10% of the time to 5% of the time, doing the doubling would bring the design quite close to proper balance wrt. X.

Things that are cheap to beef up are relatively rare a limiter in well-designed systems as a result. Things that are expensive to beef up are often the limiter. What is and isn't expensive to do depends heavily on where in the design space the current design is at and where the technology is at, all of which is changing over time.

FP32 was cheap to double up in Ampere, so they doubled it up, even though that provided only relativelyl small performance improvement. But now as a result, FP32 is very rarely a limiter (in Ampere and Ada). That doesn't automatically mean that these designs are "gimped" in DRAM bandwidth or anything of the kind. Rather, the whole perception that a good GPU design just gotta be ALU limited all the time is nothing but a mistaken perception, just like "it's either ALU limited or DRAM bandwidth limited by definition" also is just untrue. See "occupancy limited" for a prime example.

Re: GPU advancements in M3 and A17 Pro [video]

#140

So ... the registers are dynamically allocated from a chunk of cache? Does this mean there, effectively, are no registers? Does this cache have one clock latency?

I doubt anyone will be able to answer questions this fine grained, not now (if the implementation is architecturally exposed - leaks into the ISA - and Asahi Linux group figures some of it out), or possibly not ever (if it's architecturally transparent and thus entirely micro-architectural).

> Does this mean there, effectively, are no registers?

I can only point out just for context that if by any chance you're asking whether the registers are implemented as actual hardware design "registers" - individually routed and and individually accessible small strings of flip-flops or D-latches - then the history of the question is actually "it never was registers in the first place" - architectural (ISA) registers in GPUs are implemented by a chunk of addressable ported SRAM, with an address bus, data bus, and limited number of accesses at the same time and limited b/w [1].

[1] see the diagram at https://www.renesas.com/us/en/products/memory-logic/multi-po...

Post reply on HN