[Mesa-dev] [PATCH 0/4] improve buffer cache and reuse
Eero Tamminen
eero.t.tamminen at intel.com
Mon May 7 15:10:33 UTC 2018
Hi,
On 05.05.2018 03:56, James Xiong wrote:
> From: "Xiong, James" <james.xiong at intel.com>
>
> With the current implementation, brw_bufmgr may round up a request
> size to the next bucket size, result in 25% more memory allocated in
> the worst senario. For example:
> Request size Actual size
> 32KB+1Byte 40KB
> .
> 8MB+1Byte 10MB
> .
> 96MB+1Byte 112MB
> This series align the buffer size up to page instead of a bucket size
> to improve memory allocation efficiency.
>
> Performance and memory usage were measured on a gen9 platform using
> Basemark ES3, GfxBench 4 and 5, each test case ran 6 times.
>
> Basemark ES3
> score peak memory size(KB)
> before after diff before after diff
> max avg max avg max avg
> 22 21 23 21 2.83% 1.21% 409928 395573 -14355
> 20 20 20 20 0.53% 0.41%
Thanks for the new data!
As the values below seem similar to what you earlier sent, I assume
the tests are listed here in the same order, i.e:
> GfxBench 4.0
> scorepeak memory size(KB)
> score peak memory
size(KB)
> before after diff before after
diff
> max avg max avg max avg
gl_4 > 584 577 586 583 0.45% 1.02% 566489 539699
-26791
manhattan > 1604 1144 1650 1202 2.81% 4.86% 439220 411596
-27624
gl_trex > 2711 2222 2718 2152 0.25% -3.25% 126065 121398
-4667
gl_alu2 > 1218 1213 1212 1154 -0.53% -5.10% 54153 53868
-285
driver2 > 106 104 106 103 0.85% -1.66% 12730 12666
-64
gl_4_off > 728 727 727 726 -0.03% -0.16% 614730 586794
-27936
manhattan_off > 1732 1709 1740 1728 0.49% 1.11% 475716 447726
-27990
gl_trex_off > 3051 2969 3066 3047 0.50% 2.55% 154169 148962
-5207
gl_alu2_off > 2626 2607 2626 2625 0.00% 0.70% 84119 83150
-969
driver2_off > 211 208 208 205 -1.26% -1.21% 39924 39667
-257
> GfxBench 5.0
> score peak memory size(KB)
> before after diff before after diff
> max avg max avg max avg
gl_5 > 260 258 259 256 -0.39% -0.85% 1111037 1013520
-97517
gl_5_off > 298 295 298 297 0.00% 0.45% 1143593 1040844
-102749
As expected, max gives more stable results than average.
There could be performance improvement in Manhattan v3.0. At least it
had largest peak memory usage saving in GfxBench v4, both absolutely &
relatively (6%).
gl_alu2 onscreen average drop seems also suspiciously large, but as it's
not visible in max value, or in alu2 offscreen, or your previous test,
I think it it's just random variation.
In light of what I know of these tests variance on TDP limited devices,
I think rest of your GfxBench v4 & v5 performance changes also fall
within random variance.
- Eero
> Xiong, James (4):
> i965/drm: Reorganize code for the next patch
> i965/drm: Round down buffer size and calculate the bucket index
> i965/drm: Searching for a cached buffer for reuse
> i965/drm: Purge the bucket when its cached buffer is evicted
>
> src/mesa/drivers/dri/i965/brw_bufmgr.c | 139 ++++++++++++++++++---------------
> src/util/list.h | 5 ++
> 2 files changed, 79 insertions(+), 65 deletions(-)
More information about the mesa-dev
mailing list