The NEW Build Your Own Arcade Controls

Software Support => GroovyMAME => Topic started by: krick on January 28, 2013, 11:30:34 am

Title: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: krick on January 28, 2013, 11:30:34 am
I noticed this small bit of news over on MAMEWorld that may get some people excited...

http://www.mameworld.info/ubbthreads/showthreaded.php?Number=303299 (http://www.mameworld.info/ubbthreads/showthreaded.php?Number=303299)
Quote
we found a "magic fast box" or two in the code this week. Many drivers will be between 2 and 9 times faster starting in u1 and continuing on, which will be huge for lower-end hardware. Watch SVN (http://git.redump.net/mame/) for "tagmap" commits. (Most of them are for MESS right now since it got audited first, but there are several MAME drivers that could benefit a lot according to the stats Tafoid just ran).
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: Calamity on January 28, 2013, 12:28:22 pm
This sounds FANTASTIC. I'm definitely going to sync the release of the new builds with u1. I wish SNES is one of the lucky drivers.
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: Endprodukt on January 28, 2013, 12:44:57 pm
awesome! Can't wait!
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: kourampies on January 29, 2013, 02:39:39 am
This sounds FANTASTIC. I'm definitely going to sync the release of the new builds with u1. I wish SNES is one of the lucky drivers.

Yup, the SNES performance is the only thing stopping me from using groovyUME. Looking forward to that.
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: krick on January 29, 2013, 05:33:28 pm
I haven't seen any "tagmap" commits on the SVN for snes.c yet, but I'm pretty sure that someone will get to it soon since it's a high-profile driver.  It's possible that one of the other developers has it "locked" due to some other uncommitted changes.  By the time version 0.149 rolls around, I'm certain that the tagmap changes will be made to all drivers as the actual code changes seem to be pretty simple to implement.

In case anyone is curious, the general issue is that the way stuff has been coded in MAME up to this point, people have been doing lookups from a tagmap (a kind of hashmap) on the fly whenever they needed to.  The problem is that pulling stuff out of a hashmap is relatively slow, so it's not the kind of thing that you want to be doing in a performance intensive code loop.  From what I can see from looking at the SVN commits, the majority of the lookups are now done once up-front when the driver is initialized and stored in member variables.  Then when the value is needed in a loop, it can be pulled directly from the member variable, which is far faster.  I simplified a little, but that's more or less how it works.

The amount of speed up from these changes depends on how much the driver used to abuse the tagmap lookup method, I assume.
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: Dr.Venom on January 29, 2013, 06:16:44 pm
the lookups are now done once up-front when the driver is initialized and stored in member variables.  Then when the value is needed in a loop, it can be pulled directly from the member variable, which is far faster.  I simplified a little, but that's more or less how it works.

Hi Krick,

Thanks for explaining. I already wondered what this was all about. Hopefully it'll bring some nice performance increases for the various drivers...
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: krick on February 14, 2013, 12:56:30 am
It looks like the tagmap updates are still ongoing, so some drivers won't be updated until 0.148u2 comes out.
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: Dr.Venom on February 14, 2013, 05:50:23 am
Indeed. I saw the msx driver got updated after u1, so I just did a test on the speed difference on my machine (Intel 3770K at 4.6Ghz)

Tested with running the game Salamander in MSX2 unthrottled for a minute in demo/attract mode.

Speed before: 2474%
Speed after: 2587%

Which translates to a modest 5% speed increase.
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: mamenewb100 on February 14, 2013, 03:42:02 pm
Indeed. I saw the msx driver got updated after u1, so I just did a test on the speed difference on my machine (Intel 3770K at 4.6Ghz)

Tested with running the game Salamander in MSX2 unthrottled for a minute in demo/attract mode.

Speed before: 2474%
Speed after: 2587%

Which translates to a modest 5% speed increase.

But you have a really fast processor. Wouldn't slower ones like mine at 2.5 Ghz see bigger increases? The claim of 2-9 times faster seems far fetched but I'm sure each new version of MAME might see slight speed increases.
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: Endprodukt on February 14, 2013, 04:21:19 pm
I don't know from a technical standpoint but there are some games on my setup that would highly benefit from a 5% increase ;)
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: Dr.Venom on February 15, 2013, 03:32:46 am
But you have a really fast processor. Wouldn't slower ones like mine at 2.5 Ghz see bigger increases? The claim of 2-9 times faster seems far fetched but I'm sure each new version of MAME might see slight speed increases.

Yes, that could be the case, but I wouldn't get your hopes up too much.

It would be nice though if more people could post some "before" and "after" tests for their machines/configs, so that we get a sense of the overall speed increase the tagmap reductions are giving.
Title: Re: Upcoming major performance increases in MAME/MESS 0.148u1
Post by: yakk11 on February 16, 2013, 04:33:50 pm
Looking forward to groovymame 148u1 for windows.   ;D