All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 00/17] Media scalability tooling
@ 2018-10-18 15:27 ` Tvrtko Ursulin
  0 siblings, 0 replies; 41+ messages in thread
From: Tvrtko Ursulin @ 2018-10-18 15:27 UTC (permalink / raw)
  To: igt-dev; +Cc: Intel-gfx

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

A bunch of patches to trace.pl and gem_wsim which enable simulation and load
balancing analysis of the Virtual Engine work done separately by Chris Wilson.

Culmination is being able to simulate a so called frame split media workloads.

Example workload for this looks like this (annotated only for cover letter):

  X.1.0			    ; disable preemption on context 1
  M.1.VCS1		    ; configure engine map on context 1
  B.1			    ; turn on load balancing on context 1
  X.2.0			    ; \
  M.2.VCS2		    ; -> same as above but for context 2
  B.2			    ; /
  b.2.1.VCS1		    ; bond VCS2 in context 2 with VCS1
  f			    ; create an unsignaled fence
  1.DEFAULT.*.f-1.0	    ; submit an infinite batch to ctx 1, with input fence
  2.DEFAULT.4000-6000.s-1.0 ; submit a 4-6ms batch to ctx 2, with submit fence from the previous step
  a.-3			    ; advance the fence created 3 lines above
  s.-2			    ; wait for ctx 2 batch to complete
  T.-4			    ; terminate ctx 1 infinite batch
  3.RCS.2000-4000.-5/-4.0   ; submit 2-4ms ctx 3 batch to RCS, with data dependencies
  3.VECS.2000.-1.0	    ; submit 2ms ctx 3 batch to VECS, data dependency on previous batch
  4.BCS.1000.-1.0	    ; submit 1ms ctx 4 batch to BCS, data dependency on previous batch
  s.-2			    ; wait for ctx 3 batch to complete
  p.16667		    ; start next iteration to hit 60fps simulation

And can be run for instance like this:

  ./gem_wsim -n <calibration> -w wsim/frame_split_60fps.wsim -r 60 -c 3

This runs three clients of the same workload, 60 iterations each.

This can then also be captured with trace.pl and a HTML representation of the
execution timeline analysed:

  ../scripts/trace.pl --trace ./gem_wsim ...
  perf script | ../scripts/trace.pl -s -c --gpu-timeline --html >timeline.html

[Vis npm module is required to be present in the same directory as the HTML    ]
[file, see trace.pl --help for instructions.				       ]

Tvrtko Ursulin (17):
  lib: Update uapi headers
  trace.pl: Virtual engine support
  trace.pl: Virtual engine preemption support
  wsim/media-bench: i915 balancing
  gem_wsim: Use IGT uapi headers
  gem_wsim: Fix shadowed local
  gem_wsim: Factor out common error handling
  gem_wsim: More wsim_err
  gem_wsim: Submit fence support
  gem_wsim: Extract str to engine lookup
  gem_wsim: Engine map support
  gem_wsim: Save some lines by changing to implicit NULL checking
  gem_wsim: Compact int command parsing with a macro
  gem_wsim: Engine map load balance command
  gem_wsim: Engine bond command
  gem_wsim: Some more example workloads
  gem_wsim: Infinite batch support

 benchmarks/gem_wsim.c                       | 1060 +++++++++++++------
 benchmarks/wsim/README                      |  111 +-
 benchmarks/wsim/frame-split-60fps.wsim      |   18 +
 benchmarks/wsim/high-composited-game.wsim   |   11 +
 benchmarks/wsim/media-1080p-player.wsim     |    5 +
 benchmarks/wsim/medium-composited-game.wsim |    9 +
 include/drm-uapi/amdgpu_drm.h               |   52 +-
 include/drm-uapi/drm.h                      |   16 +
 include/drm-uapi/drm_fourcc.h               |  224 ++++
 include/drm-uapi/drm_mode.h                 |   26 +-
 include/drm-uapi/etnaviv_drm.h              |    6 +
 include/drm-uapi/exynos_drm.h               |  240 +++++
 include/drm-uapi/i915_drm.h                 |  239 ++++-
 include/drm-uapi/msm_drm.h                  |    2 +
 include/drm-uapi/sync_file.h                |   98 --
 include/drm-uapi/tegra_drm.h                |  492 ++++++++-
 include/drm-uapi/v3d_drm.h                  |  194 ++++
 include/drm-uapi/vc4_drm.h                  |   13 +-
 include/drm-uapi/virtgpu_drm.h              |    1 +
 include/drm-uapi/vmwgfx_drm.h               |  166 ++-
 scripts/media-bench.pl                      |    9 +-
 scripts/trace.pl                            |  244 ++++-
 22 files changed, 2705 insertions(+), 531 deletions(-)
 create mode 100644 benchmarks/wsim/frame-split-60fps.wsim
 create mode 100644 benchmarks/wsim/high-composited-game.wsim
 create mode 100644 benchmarks/wsim/media-1080p-player.wsim
 create mode 100644 benchmarks/wsim/medium-composited-game.wsim
 delete mode 100644 include/drm-uapi/sync_file.h
 create mode 100644 include/drm-uapi/v3d_drm.h

-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2018-10-26 11:11 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-18 15:27 [PATCH i-g-t 00/17] Media scalability tooling Tvrtko Ursulin
2018-10-18 15:27 ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:27 ` [PATCH i-g-t 01/17] lib: Update uapi headers Tvrtko Ursulin
2018-10-18 15:27   ` [Intel-gfx] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 02/17] trace.pl: Virtual engine support Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 03/17] trace.pl: Virtual engine preemption support Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 04/17] wsim/media-bench: i915 balancing Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 05/17] gem_wsim: Use IGT uapi headers Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 06/17] gem_wsim: Fix shadowed local Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 07/17] gem_wsim: Factor out common error handling Tvrtko Ursulin
2018-10-18 15:28   ` [Intel-gfx] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 08/17] gem_wsim: More wsim_err Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 09/17] gem_wsim: Submit fence support Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 10/17] gem_wsim: Extract str to engine lookup Tvrtko Ursulin
2018-10-18 15:28   ` [Intel-gfx] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 11/17] gem_wsim: Engine map support Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 12/17] gem_wsim: Save some lines by changing to implicit NULL checking Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 13/17] gem_wsim: Compact int command parsing with a macro Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 14/17] gem_wsim: Engine map load balance command Tvrtko Ursulin
2018-10-18 15:28   ` [Intel-gfx] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 15/17] gem_wsim: Engine bond command Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 21:48   ` Chris Wilson
2018-10-18 21:48     ` Chris Wilson
2018-10-26 11:11     ` Tvrtko Ursulin
2018-10-26 11:11       ` Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 16/17] gem_wsim: Some more example workloads Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:28 ` [PATCH i-g-t 17/17] gem_wsim: Infinite batch support Tvrtko Ursulin
2018-10-18 15:28   ` [igt-dev] " Tvrtko Ursulin
2018-10-18 15:37 ` [igt-dev] ✗ Fi.CI.BAT: failure for Media scalability tooling Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.