Interpretation of intel_gpu_top output

Rob Agar picture Rob Agar · Mar 5, 2015 · Viewed 7k times · Source

Can anyone shed any light on the output of intel_gpu_top? Specifically, what is task GAM, VS etc (The man page isn't much help.)

What does bitstream busy mean? It always seems to be zero...

               render busy:  45%: █████████                              render space: 83/131072
            bitstream busy:   0%:                                     bitstream space: 0/131072
              blitter busy:   0%:                                       blitter space: 0/131072

                      task  percent busy
                       GAM:  43%: ████████▋               vert fetch: 0 (0/sec)
                        VS:  35%: ███████                 prim fetch: 0 (0/sec)
                        CL:  33%: ██████▋              VS invocations: 2101845324 (1427552/sec)
                        SF:  33%: ██████▋              GS invocations: 0 (0/sec)
                        VF:  33%: ██████▋                   GS prims: 0 (0/sec)
                      GAFS:  33%: ██████▋              CL invocations: 701123988 (475776/sec)
                       SOL:  32%: ██████▌                   CL prims: 701708489 (475888/sec)
                        GS:  32%: ██████▌              PS invocations: 1254669239424 (116548992/sec)
                        DS:  32%: ██████▌              PS depth pass: 604287310764 (222384008/sec)
                       TDG:   2%: ▌                    
                      URBM:   2%: ▌                    
                      GAFM:   1%: ▎                    
                        HS:   0%:                      
                       SVG:   0%:                      
                       VFE:   0%:                      

Answer

F.X. picture F.X. · Jun 29, 2016

I was curious as well, so here are just a few things I could grab from the reference manuals. Also of interest is the intel-gpu-tools source, and especially lib/instdone.c which describes what can appear in all Intel GPU models. This patch was also hugely helpful in translating all those acronyms!

Some may be wrong, I'd love it if somebody more knowledgeable could chime in! I'll come back to update the answer with more as I learn this stuff.

First, the three lines on the right :

  • The render space is probably used by regular 3D operations.
  • The bitstream section refers to the BSD (Bit-Stream Decoder), which handles hardware acceleration for media decoding. It does not appear on my GPU though (Skylake HD 530), so it might not be enabled/visible everywhere.
  • The blitter is described in vol. 11 and seems responsible for hardware acceleration of 2D operations (blitting).

Fixed function (FF) pipeline units (old-school GPU features) :

  • VF: Vertex Fetcher (vol. 1), the first FF unit in the 3D Pipeline responsible for fetching vertex data from memory.
  • VS: Vertex Shader (vol.1), computes things on the vertices of each primitive drawn by the GPU. Pretty standard operation on GPUs.
  • HS: Hull Shader
  • TE: Tessellation Engine
  • DS: Domain Shader
  • GS: Geometry Shader
  • SOL: Stream Output Logic
  • CL: Clip Unit
  • SF: Strips and Fans (vol.1), FF unit whose main function is to decompose primitive topologies such as strips and fans into primitives or objects.

Units used for thread and pipeline management, for both FF units and GPGPU (see Intel Open Source HD Graphics Programmers Manual for a lot of info on how this all works) :

  • CS: Command Streamer (vol.1), functional unit of the Graphics Processing Engine that fetches commands, parses them, and routes them to the appropriate pipeline.
  • TDG: Thread Dispatcher
  • VFE: Video Front-End
  • TSG: Thread Spawner
  • URBM: Unified Return Buffer Manager

Other stuff :

  • GAM: see GFX Page Walker (vol. 5), also called Memory Arbiter, has to do with how the GPU keeps track of its memory pages, seems quite similar to what the TLB (see also SLAT) does for your RAM.
  • SDE: South Display Engine ; according to vol. 12, "the South Display Engine supports Hot Plug Detection, GPIO, GMBUS, Panel Power Sequencing, and Backlight Modulation".