[Piglit] [PATCH 0/6] make gen_vs_in_fp64 run faster

Andres Gomez agomez at igalia.com
Thu Jun 9 13:45:49 UTC 2016


Nice optimizations, Dylan.

I'm quite impressed/surprised on the gain through avoiding the
inheritance/include mechanisms in the mako templates.

This series is:

Reviewed-by: Andres Gomez <agomez at igalia.com>

On Tue, 2016-06-07 at 14:15 -0700, Dylan Baker wrote:
> This recently introduced generator is rather slow, even on a
> relatively
> fast processor. On my system it takes 4 minutes to run with a hot
> mako
> cache, and nearly 6 minutes with a cold cache. This is in comparison
> to
> this series which runs in about 1 minute on my system, with only
> about 1
> second to fill the cache.
> 
> This series first goes after some low hanging optimizations in the
> generator itself, building lists out of generators when there isn't
> any
> need to, using interable chaining instead of building lists, and
> converting some functions that build lists into generators. While
> that
> work (the first 3 patches) manages to get some improvement, it isn't
> enough.
> 
> There is a patch for shader_runner in here that the last two patches
> need. It's pretty trivial and I've tested that it doesn't break
> anything
> else.
> 
> The final two patches give all the performance. By reworking the mako
> I
> was about to cut 3/4 of the run time. There are some things about
> these
> patches that could be better, they're pretty naive reimplementations
> of
> the original templates, and if we wanted we could probably further
> improve the runtime of the generator. But ~260 tests a second seems
> pretty good to me for performance.
> 
> Dylan Baker (6):
>   generators/gen_vs_in_fp64: don't list-ize generators for no reason.
>   generators/gen_vs_in_fp64: don't store the filenames print them
>     immediately
>   generators/gen_vs_in_fp64: use more generators/iterators save more
>     runtime
>   shader_runner: Allow whitespace before [require] declarations
>   generators/gen_vs_in_fp64: Rewrite the columns test generator
>   generators/gen_vs_in_fp64: reimplement require_execution template
> 
>  generated_tests/CMakeLists.txt                     |   7 +-
>  generated_tests/gen_vs_in_fp64.py                  |  90 +++++----
> ---
>  generated_tests/templates/gen_vs_in_fp64/base.mako |  27 ----
>  .../gen_vs_in_fp64/columns.shader_test.mako        | 137
> ++++++++++++++++++
>  .../columns_execution.vert.shader_test.mako        |  41 ------
>  .../gen_vs_in_fp64/columns_shader.vert.mako        |  17 ---
>  .../gen_vs_in_fp64/execution.vert.shader_test.mako |  32 ----
>  .../templates/gen_vs_in_fp64/execution_base.mako   |  85 -----------
>  .../gen_vs_in_fp64/regular.shader_test.mako        | 161
> +++++++++++++++++++++
>  .../regular_execution.vert.shader_test.mako        |  67 ---------
>  .../gen_vs_in_fp64/regular_shader.vert.mako        |  19 ---
>  .../templates/gen_vs_in_fp64/shader.vert.mako      |  16 --
>  .../templates/gen_vs_in_fp64/shader_base.mako      |  12 --
>  tests/shaders/shader_runner.c                      |   5 +
>  14 files changed, 339 insertions(+), 377 deletions(-)
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/base.mako
>  create mode 100644
> generated_tests/templates/gen_vs_in_fp64/columns.shader_test.mako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/columns_execution.vert.shade
> r_test.mako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/columns_shader.vert.mako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/execution.vert.shader_test.m
> ako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/execution_base.mako
>  create mode 100644
> generated_tests/templates/gen_vs_in_fp64/regular.shader_test.mako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/regular_execution.vert.shade
> r_test.mako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/regular_shader.vert.mako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/shader.vert.mako
>  delete mode 100644
> generated_tests/templates/gen_vs_in_fp64/shader_base.mako
> 
-- 
Br,

Andres




More information about the Piglit mailing list