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
