7 ms·
GPU Architecture Types Explained
- qd6pwu4 5y ago503 Service Unavailable
- squarefoot 5y ago2021: the year GPUs became unavailable, just like websites about them.
- Pieman103021 5y agoArchived link - https://web.archive.org/web/20210720135744/https://rastergrid.com/blog/gpu-tech/2021/07/gpu-architecture-types-explained/ https://web.archive.org/web/20210720135744/https://rastergri...
- nspattak 5y agoapparently the poor web site felt some of the infinite hacker news exposure love :)
- ribit 5y agoI think that the article focuses too much on the academic distinction between immediate renders and tilers but fails short to discuss how these techniques relate to real-world GPUs. For example, the fact that all contemporary AMD and Nvidia gaming GPUs are tilers with large tiles (that's one of the key reasons why Maxwell and Navi got a big boost in performance). Or that many mainstream mobile GPUs employ various hacks (e.g. vertex shader splitting) in order to simplify the architecture, but which ultimately blocks their ability to scale to more advanced applications. Notably missing any mention of TBDR which currently powers the fastest low-power mobile and desktop GPUs on the market.
- cma 5y ago>For example, the fact that all contemporary AMD and Nvidia gaming GPUs are tilers with large tiles (that's one of the key reasons why Maxwell and Navi got a big boost in performance) There's a whole section on it near the end: "Another class of hybrid architecture is one that is often referred to as tile-based immediate-mode rendering. As dissected in this article, this hybrid architecture is used since NVIDIA’s Maxwell GPUs." >Notably missing any mention of TBDR which currently powers the fastest low-power mobile and desktop GPUs on the market. Another section mentions: "There’s a long-standing myth (that luckily slowly disappears) that deferred rendering techniques are not suitable for TBR GPUs. "
- ribit 5y ago> "Another class of hybrid architecture is one that is often referred to as tile-based immediate-mode rendering. As dissected in this article, this hybrid architecture is used since NVIDIA’s Maxwell GPUs." Yes, they do mention it, but I feel that the relevance of this technique would warrant a more in-depth discussion. > "There’s a long-standing myth (that luckily slowly disappears) that deferred rendering techniques are not suitable for TBR GPUs. " This has nothing to do with TBDR. "Deferred rendering" is a "software" rendering technique used to optimize lighting computation, "tile based deferred rendering" describes a hardware GPU architecture that delays fragment shading to the latest possible moment to optimize shader unit efficiency.
- cma 5y ago> Yes, they do mention it, but I feel that the relevance of this technique would warrant a more in-depth discussion. They do have a long section on it at the end discussing hybrid stuff. > This has nothing to do with TBDR You are right about TBDR vs deferred rendering on a tile based architecture, but it still seems the article did discuss TBDR too just without naming it (probably due to confusion with explicit deferred rendering by the application): https://docs.imgtec.com/Architecture_Guides/PowerVR_Architecture/topics/powervr_architecture_tile_based_deferred_rendering__tbdr.html https://docs.imgtec.com/Architecture_Guides/PowerVR_Architec... The main technique in there is described in the original article I believe: [original article] "Some TBR GPUs go even further than that and perform perfect per-pixel hidden surface removal and thus can guarantee that every single pixel gets shaded exactly once throughout the whole subpass. " vs [imgtech description of TBDR] "Deferred rendering means that the architecture will defer all texturing and shading operations until all objects have been tested for visibility. The efficiency of PowerVR Hidden Surface Removal (HSR) is high enough to allow overdraw to be removed entirely for completely opaque renders."
- phire 5y agoRegarding Maxwell and Navi: Actually, that's not true. The micro-benchmark that suggested Maxwell (and later) was a tiled deferred gpu was actually measuring something else. Each GPC gets assigned different sceenspace areas, and concurrency rules between the areas is relaxed (unless explicitly required by shader atomics). The result looks somewhat like tiled deferred rendering in that micro-benchmark. But it's still very much immediate mode. A similar thing happened with Navi. However, there are mobile GPUs (Qualcomm's Adreno) that dynamically switch between tiled deferred mode and immediate mode on a per renderpass basis, depending on what driver heuristics suggest will be faster.
- Jasper_ 5y agoWhen did Adreno gain a deferred more? Back when I was talking to Rob Clark in 2014 or so, it sounded like it was all immediate per-tile.
- phire 5y agoGPU terminology is confusing at times. Imgtec and Apple use the term "Tile-Based Deferred Rendering" to mean a combination of tiling and deferred shading. Because that's what their GPUs do. Other vendors, like qualcomm [1] still use the term "Deferred" in regards to their Tile-Based Rendering, simply because the draw calls are deferred. It doesn't mean deferred shading. Every company appears to make the the terminology as they go. I found an early presentation from ARTX [2] and they are using database terminology to describe what we now call vertex buffers. [1] https://developer.qualcomm.com/docs/adreno-gpu/developer-guide/gpu/overview.html https://developer.qualcomm.com/docs/adreno-gpu/developer-gui... [2] http://www.graphics.stanford.edu/courses/cs448a-01-fall/lectures/tvh/tvh.2up.pdf http://www.graphics.stanford.edu/courses/cs448a-01-fall/lect...
- Jasper_ 5y agoGah, so when Qualcomm uses the word "deferred", they just mean "tiled", and each tile still rasterizes each tri in order. Agreed on terrible terminology, this is a disaster.
- 5y ago
- dragontamer 5y agoThis seems like a misnomer. This seems more like rendering API architectures more so than GPU-architecture. Which is still important: Immediate mode vs Tile-based is a big shift in overall style. And GPU-hardware is designed for particular software architectures (because the CPU will be inevitably invoking calls in a certain pattern). But it'd probably be more accurate to call this blogpost "Rendering Architecture Types Explained" moreso than "GPU Architecture". A modern GPU running DirectX 9.0 or OpenGL 2.0 would still be immediate mode for example.
- oflordal 5y agoNo, this is about HW architectures. While they are likely evolving towards one a other there are tile based (like Imagination and ARM Mali) And immediate mode (Nvidia AMD) that both implement the same APIs (OpenGL, Vulkan etc). All these HW architectures are modern and in use.
- monocasa 5y agoInterestingly, Nvidia has been using tile based rasterizers for a bit too. https://www.techpowerup.com/231129/on-nvidias-tile-based-rendering https://www.techpowerup.com/231129/on-nvidias-tile-based-ren...
- Arelius 5y agoIt's been often quoted that Nvidia has switched to tile based for their Desktop renderers, but I haven't seen a source that confirms this. I suspect this is speculation due to changes in raster order that produce side-effects that look tiled even though they aren't.
- ribit 5y agoThis has been empirically tested on multiple occasions. There is an article on realwordtechnologies discussing this, and the results have been related for newer AMD GPUs as well. I have a little tool for macOS that tests these things out, and the Navi GPU on my MacBook is definitely a tiler (the Gen10 Intel GPU is not).
- qwerty456127 5y agoBy the way, let me ask a couple of stupid questions about GPUs: Do RISCV-style free GPU projects exist or would they be unviable because of some specific properties of the GPU nature? Why even bother implementing actual rendering in hardware when you can just implement fast general-purpose calculations and use them to accelerate software rendering? CPU-based software rendering did pretty well for the first versions of Unreal and Half-Life, I imagine it could also make sense today if accelerated with something like CUDA.
- als0 5y agoIntel had a project called Larrabee where they put a lot of small but general purpose x86 cores on a GPU card. I've heard that it was a flop because certain GPU operations weren't fast enough on those little cores - you still needed some hardware acceleration. It wasn't a total failure though, Intel managed to pivot it from a GPU project into a moderately successful datacenter product, the Xeon Phi. Of course, time has passed and maybe it's worth revisiting the idea again. The biggest barrier for anyone making a purchasable GPU is the current patent minefield dominated by Nvidia, Imagination, and others.
- Arelius 5y ago> Do RISCV-style free GPU projects exist or would they be unviable because of some specific properties of the GPU nature? Not that I know of, I don't think they are specifically unviable, but even RiscV is relatively new and in it's infancy, and CPU's in a sense are a subset of GPUs (modern GPUs have pretty comprehensive computation ISAs) and additionally, there exists a much more viable market for low-end CPUs that doesn't exist for GPUs in microcontrollers. > Why even bother implementing actual rendering in hardware when you can just implement fast general-purpose calculations and use them to accelerate software rendering? The answer is sort of a mixture of A. That's what we have and B. because custom hardware is very hard to beat. Do read up on Larrabee[1] So, GPU's have been converging on being more and more programmable, there are a few parts that are still much faster done in silicon, and very widely used, specifically rasterization (Though, software can be a win with e.g. micropolygons, See UE4's Nanite), Texture Sampling, and we're starting to see BVH traversal in the case of ray-tracing. And rasterization specifically is the one that pretty much dictates the structure of the render pipeline, with vertex/fragment shaders, etc and is broadly what makes it's hard to fit it into a "general-purpose" pipeline with specialized instructions. And just keep in mind, Cuda is basically just a compute shader, and a compute shader itself is basically just a fragment shader without rasterization stuck on the front and without render target blending stuck on the end, and that's also specifically the history of how we got to general-purpose GPU computation ala Cuda. [1]https://brightsideofnews.com/an-inconvenient-truth-intel-larrabee-story-revealed/ https://brightsideofnews.com/an-inconvenient-truth-intel-lar...