Not deferred, still immediate-mode

Article: Tile-based Rasterization in Nvidia GPUs
By: Philip Taylor (philip.delete@this.zaynar.co.uk), August 3, 2016 1:36 pm
Room: Moderated Discussions
Philip Taylor (philip.delete@this.zaynar.co.uk) on August 2, 2016 4:46 pm wrote:
> [...]
> The framebuffer is split into four partitions, one containing 4/13 of all the tiles (where each tile is 16x16
> pixels, and contains sub-tiles of 4x8 pixels), the others containing 3/13 each, in a sort of interleaved diagonal
> stripe pattern. (This presumably comes from the GTX 970 having 13 SMs, which are grouped into 4 SMMs.)

Got the terminology wrong: it has 13 SMMs, grouped into 4 GPCs.

Incidentally, I think this test demonstrates some mildly interesting variation in GTX 970s.

On my device, I see a clear 4:3:3:3 ratio in tile coverage per partition(/GPC) (by inserting delays in the shaders to make one of the partitions lag behind the rest). When running the original code with no delays, the partition with 4/13 of the tiles naturally takes longer to complete since it's doing more work - so I see 256x512-pixel regions that have 9/13 of their tiles rendered at once, and the remaining 4/13 gets filled in some time later.

David's video shows quite different behaviour for his GTX 970, e.g. around 11:20. The rightmost region only has 2/13 of its tiles rendered. (It's a repeating pattern of 13x13 tiles, with 2 rendered on each row of that pattern). The third from the right has 2/13 in one colour and 3/13 in another colour.

That indicates a 4:4:3:2 ratio.

The GTX 970 architecture diagram shows a 4:3:3:3 assignment of SMs to GPCs, which is consistent with my device. But it looks like David's has one GPC with only 2 SMs, so it's a less well balanced assignment of SMs to other per-GPC resources, which affects this test and maybe could result in very slightly different performance characteristics.

I guess in theory you could have a 4:4:4:1 ratio too, but perhaps that's too extreme and rare enough that those chips just get rejected.


The GTX 1070 (15:45 in the video) has 3 GPCs, which appear to partition the screen into vertical stripes, so their tile coverage has the ratio 11:11:10 in each 512x512 region. (They're uneven just because you can't divide 512x512 by 3). The one with 10/32ths completes a bit sooner than the others, which is why it gets to draw the red stripes in the next region before the others have caught up.

(I hypothesise the GTX 980 (16 SMMs in 4 GPCs), 960 (8 SMMs in 2 GPCs), 1080 (20 SMMs in 4 GPCs) and 1060 (10 SMMs in 2 GPCs) would give vertical stripes like the 1070 (though with a stride of 4 or 2 instead of 3) since all their GPCs are uniform and they don't need a funny partition pattern to balance it well enough. But their partitions will all be exactly uniform numbers of tiles, so they'll largely stay in sync and the stripes wouldn't be visible - you should just see each 256x512/512x512 region filling up solidly from top to bottom.)
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Article: Tile-based Rasterization in Nvidia GPUsDavid Kanter2016/08/01 12:01 AM
  Article: Tile-based Rasterization in Nvidia GPUsBenjamin2016/08/01 02:22 AM
    GM, M = Maxwell, Tile = YesJohn H2016/08/01 05:59 AM
      GM, M = Maxwell, Tile = YesDavid Kanter2016/08/01 08:33 AM
        Updated articleDavid Kanter2016/08/01 08:35 AM
    Article: Tile-based Rasterization in Nvidia GPUsDavid Kanter2017/01/17 05:56 PM
      Optimus (d*mn, it isn't blue now)blue2017/01/19 06:34 PM
    Probably not in earlier MaxwellsDavid Kanter2017/01/17 05:56 PM
  Article: Tile-based Rasterization in Nvidia GPUsDan2016/08/01 03:12 AM
    Article: Tile-based Rasterization in Nvidia GPUsGionatan Danti2016/08/01 03:20 AM
      Article: Tile-based Rasterization in Nvidia GPUsSimon Farnsworth2016/08/01 04:00 AM
      Article: Tile-based Rasterization in Nvidia GPUsGiGNiC2016/08/01 04:30 AM
      Not deferred, still immediate-modeDavid Kanter2016/08/01 07:25 AM
        Not deferred, still immediate-modeRob Clark2016/08/01 09:44 AM
          Not deferred, still immediate-modeRob Clark2016/08/01 10:12 AM
            Not deferred, still immediate-modeSeni2016/08/01 12:25 PM
              Not deferred, still immediate-modeRob Clark2016/08/01 02:38 PM
              Not deferred, still immediate-modevvid2016/08/03 12:59 AM
            Not deferred, still immediate-modePhilip Taylor2016/08/01 04:55 PM
              Not deferred, still immediate-modeRob Clark2016/08/01 05:56 PM
                Not deferred, still immediate-modePhilip Taylor2016/08/01 07:33 PM
                  Not deferred, still immediate-modePhilip Taylor2016/08/02 04:46 PM
                    Not deferred, still immediate-modePhilip Taylor2016/08/03 01:36 PM
    Article: Tile-based Rasterization in Nvidia GPUsGabriele Svelto2016/08/01 06:48 AM
      Article: Tile-based Rasterization in Nvidia GPUsExophase2016/08/01 11:35 AM
        Article: Tile-based Rasterization in Nvidia GPUsGabriele Svelto2016/08/04 01:22 AM
  Article: Tile-based Rasterization in Nvidia GPUsGionatan Danti2016/08/01 03:16 AM
    Not deferred, still immediate-modeDavid Kanter2016/08/01 07:40 AM
  Article: Tile-based Rasterization in Nvidia GPUsJohn H2016/08/01 06:13 AM
    Article: Tile-based Rasterization in Nvidia GPUsAndrei Frumusanu2016/08/01 06:21 AM
      Article: Tile-based Rasterization in Nvidia GPUsblue2016/08/01 08:58 AM
        Article: Tile-based Rasterization in Nvidia GPUsAndrei Frumusanu2016/08/01 10:38 AM
          Article: Tile-based Rasterization in Nvidia GPUsblue2016/08/01 01:02 PM
  Article: Tile-based Rasterization in Nvidia GPUsKlimax2016/08/01 07:14 AM
    Article: Tile-based Rasterization in Nvidia GPUsAaron Spink2016/08/01 07:29 AM
  Everybody using tilesvvid2016/08/01 09:45 AM
    Everybody using tilesRob Clark2016/08/01 09:49 AM
      Everybody using tileswumpus2016/08/01 11:29 AM
        Everybody using tilesSimon Farnsworth2016/08/01 01:01 PM
          Everybody using tileswumpus2016/08/02 07:57 AM
            Everybody using tilesSimon Farnsworth2016/08/02 08:12 AM
  Testing MethodologyDavid2016/08/01 01:22 PM
    Testing MethodologyJoel H2016/08/01 01:57 PM
      Testing MethodologyDavid2016/08/01 04:09 PM
  Flicker?Wanderer2016/08/01 05:08 PM
    Flicker?Philip Taylor2016/08/01 05:30 PM
      Flicker?Beastian2016/08/01 09:33 PM
    Flicker?David Kanter2016/08/01 06:19 PM
      Flicker?Wanderer2016/08/02 07:14 AM
  Article: Tile-based Rasterization in Nvidia GPUsPM2016/08/01 06:39 PM
    Article: Tile-based Rasterization in Nvidia GPUsGiGNiC2016/08/02 12:03 PM
    GCN Imagesvvid2016/08/03 12:22 AM
      GCN ImagesVertexMaster2016/08/04 10:06 AM
        GCN Imagesvvid2016/08/04 11:30 AM
          GCN ImagesVertexMaster2016/08/04 04:38 PM
            GCN Imagesvvid2016/08/05 03:30 AM
              GCN ImagesVertexMaster2016/08/05 05:16 AM
                TBDRvvid2016/08/05 09:15 AM
                GCN1.2?vvid2016/08/07 04:33 AM
  Sorry, this is not a tile based renderer.Peter McGuinness2016/08/02 08:11 AM
    Render != RasterizeDavid Kanter2016/08/02 08:30 AM
      Render != RasterizePeter McGuinness2016/08/02 08:43 AM
        Render != RasterizeDavid Kanter2016/08/02 09:45 AM
          Render != RasterizePeter McGuinness2016/08/02 10:05 AM
            Render != RasterizePhilip Taylor2016/08/02 06:53 PM
              Render != RasterizePeter McGuinness2016/08/02 09:41 PM
                Render != RasterizePhilip Taylor2016/08/03 03:41 AM
                  Render != RasterizePeter McGuinness2016/08/04 12:34 PM
                    Render != RasterizePhilip Taylor2016/08/04 04:06 PM
                      Render != RasterizeMontaray Jack2016/08/05 02:26 PM
                        Render != RasterizeJouni Osmala2016/08/05 11:49 PM
                          Render != RasterizeMegol2016/08/06 03:30 AM
                            Render != RasterizeJouni Osmala2016/08/06 09:08 AM
                              Scratching that itchMontaray Jack2016/08/06 10:42 AM
                            Render != RasterizeMontaray Jack2016/08/06 10:08 AM
  Article: Tile-based Rasterization in Nvidia GPUsDoug Patel2016/08/02 09:39 AM
  Article: Tile-based Rasterization in Nvidia GPUsMontaray Jack2016/08/02 10:35 AM
    Article: Tile-based Rasterization in Nvidia GPUsdglow2016/08/02 05:08 PM
      Article: Tile-based Rasterization in Nvidia GPUsMontaray Jack2016/08/03 04:43 AM
        Article: Tile-based Rasterization in Nvidia GPUsdglow2016/08/03 07:04 AM
          Article: Tile-based Rasterization in Nvidia GPUsmarees2016/08/03 12:46 PM
      Article: Tile-based Rasterization in Nvidia GPUsDavid Kanter2016/08/04 08:03 AM
        Article: Tile-based Rasterization in Nvidia GPUsMontaray Jack2016/08/04 11:47 AM
    Oh god, the spambots have finally found us (NT)Anon2017/01/17 05:27 AM
      Delete the messages ASAPGtoo2017/01/17 03:19 PM
  Article: Tile-based Rasterization in Nvidia GPUssteve m2017/05/10 05:16 PM
    Article: Tile-based Rasterization in Nvidia GPUsGabriele Svelto2017/05/10 07:15 PM
      Article: Tile-based Rasterization in Nvidia GPUssteve m2017/05/11 10:11 AM
        Article: Tile-based Rasterization in Nvidia GPUsGabriele Svelto2017/05/12 02:15 AM
          Article: Tile-based Rasterization in Nvidia GPUssteve m2017/05/16 11:49 AM
            Article: Tile-based Rasterization in Nvidia GPUsGabriele Svelto2017/05/17 05:43 AM
              Article: Tile-based Rasterization in Nvidia GPUssteve m2017/05/17 08:35 PM
                Article: Tile-based Rasterization in Nvidia GPUspocak2017/05/18 04:19 PM
                  Article: Tile-based Rasterization in Nvidia GPUsDavid Kanter2017/05/20 07:55 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell tangerine? 🍊