On 7 July 2013 14:31, Jon Nordby <[email protected]> wrote:

>
>
>
> On 7 July 2013 08:55, Martin Renold <[email protected]> wrote:
>
>> On Sat, Jul 06, 2013 at 07:28:53PM +0200, Jon Nordby wrote:
>>
>  > where most things are limited by how fast we can fetch tiles from the
>> tile
>> > store, ie: _get_tile_numpy() in lib/tiledsurface.py
>>
>> If this is really the per-tile overhead adding up, we can just increase
>> MYPAINT_TILE_SIZE.  But looks like _get_tile_numpy() is doing a lot more
>> than just fetching tiles.
>>
>
> Increasing the tile size is on option, but it will limit concurrency more
> (as multi-threading is done on a tile-by-tile basis). It may also lead to
> poorer
>
... poorer cache locality, is what I mean to say there.
I tested various altenative tile sizes now, and with git master using 128
instead of 64 is ca +5 better in some tests, -5% in others. Main reason is
that the mipmap calculation is inside Python, so the lower overhead in
get_tile_numpy() is offset by increased computation costs in
tile_downscale_rgba16()

When using the branch with this code moved down into C/C++ and outside of
the critical section so it can be parallized, a tile size of 128 gives
significantly better performance than 64. So it might be the way to
go.http://gitorious.org/~jonnor/mypaint/jonnors-clone/commits/compositing-mt

This branch is getting into shape now, except for some rendering artifacts
and a crash in paint_rotated and save_png. The goal is to reach 2x
performance in layer/paint_zoomed_out_5x over MyPaint 1.1 for quad-core
systems, and 1.5x for dualcore.

[jon@jon-thinkpad ~]$ python2 ./guidiff.py
mypaint-master-11july-2thread.txt mypaint-compositing-mt-11july-2thread.txt
memory_zoomed_out_5x: 0.755781 (-24%)
paint_zoomed_out_5x: 1.257549 (26%)
startup: 1.012263 (1%)
brushengine_paint_hires: 0.973888 (-3%)
paint: 1.052738 (5%)
layerpaint_nozoom: 1.172061 (17%)
layerpaint_zoomed_out_5x: 1.302708 (30%)
save_ora: 0.805556 (-19%)
save_ora_again: 0.784585 (-22%)
load_ora: 0.820920 (-18%)

Need to fix the ORA load/save performance regression though, havent looked
at all at that code yet.


-- 
Jon Nordby - www.jonnor.com
_______________________________________________
Mypaint-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/mypaint-discuss

Reply via email to