3 ms·
> you find that the GPU often sits idle, not for lack of work, but because the CPU hasn't told it what to do next yet. This phenomenon is called a GPU bubble.
by nl 3mo ago
> you find that the GPU often sits idle, not for lack of work, but because the CPU hasn't told it what to do next yet. This phenomenon is called a GPU bubble.
This is true, but I've never heard anyone refer to this as a GPU bubble before.
I think most people hear "GPU bubble" and think of a financial bubble of some kind.
- nnevatie 3mo agoYes, the title seems off - I also thought I am going to be reading about the AI/pricing bubble.
- rusk 3mo agoThe term I would use would be “underutilised”
- barries11 3mo ago"stall" is the best term I can think of as in "pipeline stall". Better term, anyone?
- _zoltan_ 3mo agoit's not stalled, as that would imply that it waits for something, which is not necessarily the case with bubbles. most often it shows lack of proper pipelining or wrong pipeline dependencies (pipeline A waits for pipeline B, pipeline C waits for pipeline B, while pipeline B waits for an event X, now you've just made all three pipelines stalled on event X - not good).
- rusk 3mo agoWhen an engine stalls, the implication is that the chain reaction that drives it is failing - I don’t think that is the case with a GPU as it will quite happily sit there drawing watts til you give it things. In systems nomenclature the inverse term for bubble is utilisation. This or that link is or node is using x% of its capacity. Indeed, if you monitor your GPU with nvidia-smi you will see that very term in the instrumentation.
- cma 3mo agoIt's very common to call it a GPU bubble in gamedev, though not strictly for CPU induced bubbles.
- SCdF 3mo agoIt appears to be a real term? https://docs.vulkan.org/tutorial/latest/Synchronization/Async_Compute_Overlap/04_bubble_problem.html https://docs.vulkan.org/tutorial/latest/Synchronization/Asyn... Very odd, but perhaps more familiar to graphics programmers? I will say I'd probably call it a stall, which is exactly what the Vulkan docs call it moments later, so :shrug:
- kibibu 3mo ago"bubble" used to be used a lot more when talking about very deep pipelines, eg Pentium 4 depth.
- tux3 3mo agoOr in the case of my poor Verilog, even very short pipelines :(
- alfiedotwtf 3mo agoAnd before that, graphics programmers called it vertical retrace :upsidedown:
- deleted 3mo ago[deleted]
- ralferoo 3mo agoI'm a rendering engineer and have used this term frequently. It's actually a very common technique in rendering to not always be able to easily fill in the gaps, that we frequently deliberately introduce an extra frame of latency, so that the GPU is rendering jobs for the latter half of rendering passes for frame N+1 and the early half of rendering passes of frame N+2 while frame N is visible. This still means that a frame takes the same total GPU time to render, but means that the gaps between jobs on a single frame can be usefully filled with something else from the other.
- vkazanov 3mo agoI saw it in literature on cpu pipelines in quotes, never without.
- IshKebab 3mo agoI've never seen it in quotes, but yeah it is a very common term in pipelined CPUs.
- _zoltan_ 3mo agowhile the title is misreading, when reading GPU profiling data, we do call these bubbles - where the GPU _could_ do something, but it's idle. any time your GPU is idle = you are losing $$$ = your TCO is going up. you don't want that.
- spaqin 3mo agoPretty sure that would be "[GPU performance] bottlenecked [by the CPU]" in most common terms.
- Eisenstein 3mo agoI thought it was normal for the AI field to confuse people by repurposing other terms of art? To: "transformer", "lora", "diffusion", "hallucination", etc, we can now add "bubble".
- brrrrrm 3mo agoit's very much an in-domain term for folks in machine learning. heavily used when pipeline parallelism caught on in training https://alband.github.io/doc_view/pipeline.html https://alband.github.io/doc_view/pipeline.html