ao486 Performance Benchmarks

User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

ao486 Performance Benchmarks

Unread post by Newsdee »

I did some benchmarking of ao486 and the PCXT core to assess when one core should be used versus the other.
(copied from the PCXT section for ease of future searches)

Conclusions:

  • ao486 can handle PC-AT class performance at 6Mhz and above

  • For anything lower, PCXT core offers cycle accurate implementations at common XT speeds

  • never disable both L1 and L2 caches on ao486 - it will result in worse performance than the PCXT core (!)

Obviously there are some implementation differences beyond CPU speed:

  • ao486 has Sound Blaster, and MIDI support, EGA, VGA, and SVGA video modes

  • PCXT has Tandy sound, Tandy graphics support, CGA (inc. 16 color modes) and Composite video modes

Both cores support AdLib and CM/S (Game Blaster) sound cards.

Combined these two cores should cover most DOS games in existence...

ao486 performance - CheckIt 3.0 Dhrystones

perf_ao486.PNG
perf_ao486.PNG (58.08 KiB) Viewed 2813 times

PCXT core performance - CheckIt 3.0 Dhrystones

perf_pcxt.PNG
perf_pcxt.PNG (10.6 KiB) Viewed 2813 times
Psygho
Posts: 28
Joined: Thu Nov 19, 2020 11:46 pm
Has thanked: 1 time

Re: ao486 Performance Benchmarks

Unread post by Psygho »

Thnx, verry helpfull testing'!

User avatar
kathleen
Top Contributor
Posts: 409
Joined: Fri Jun 26, 2020 4:23 am
Location: Belgium
Has thanked: 224 times
Been thanked: 131 times

Re: ao486 Performance Benchmarks

Unread post by kathleen »

Thank you @Newsdee for this table

かすりん

User avatar
spark2k06
Core Developer
Posts: 864
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 961 times

Re: ao486 Performance Benchmarks

Unread post by spark2k06 »

Thank you very much for the table @Newsdee, it is very useful. I thought it might be more convenient for the user to have the option to select each reference CPU model:

Code: Select all

"oJM,CPU Speed,CPU & Cache CFG,286 6MHz,286 10MHz,286 16MHz,386 SX20,286 20Mhz,286 24Mhz,386 SX25,386 DX40,486 SX33,486 DX33,OVRCLK 100 MHz;"

And automatically adjust the speed and caches...

CPU Speed Model.jpg
CPU Speed Model.jpg (257.75 KiB) Viewed 2705 times

Automatic adjustment of CPU and caches, depending on the selected CPU model. This would override any other settings (syscfg or Hardware section of the OSD menu).

I attach the binary, and then show what the commit would be:

https://github.com/spark2k06/ao486_MiST ... 3deb70faa2

If you like the idea, I send pull request to sorgelig.

Attachments
ao486.zip
(1.89 MiB) Downloaded 99 times
User avatar
thisisamigaspeaking
Posts: 231
Joined: Mon May 23, 2022 12:28 am
Has thanked: 74 times
Been thanked: 21 times

Re: ao486 Performance Benchmarks

Unread post by thisisamigaspeaking »

Newsdee wrote: Mon Dec 12, 2022 1:31 pm

I did some benchmarking of ao486 and the PCXT core to assess when one core should be used versus the other.

I mentioned it in the PCXT thread but I'm not sure an @ ping works on here. The first comment seems to have a mistake, 21k is faster than 16k.

User avatar
wark91
Core Developer
Posts: 334
Joined: Sun May 24, 2020 8:34 pm
Has thanked: 447 times
Been thanked: 94 times

Re: ao486 performance benchmarks

Unread post by wark91 »

Thanks for this change, it is more easy for people wanting to change it.

The option 100Mhz is hide because the core could be unstable and generate issues reported by users.
So maybe it is better to let it hide also for this new change.

User avatar
spark2k06
Core Developer
Posts: 864
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 961 times

Re: ao486 performance benchmarks

Unread post by spark2k06 »

wark91 wrote: Mon Dec 12, 2022 4:40 pm

Thanks for this change, it is more easy for people wanting to change it.

The option 100Mhz is hide because the core could be unstable and generate issues reported by users.
So maybe it is better to let it hide also for this new change.

No problem, I can hide it for the final pull request version, and in case you want to make any adjustments beforehand on this commit.

flynnsbit
Top Contributor
Posts: 550
Joined: Sun May 24, 2020 8:07 pm
Has thanked: 179 times
Been thanked: 307 times
Contact:

Re: ao486 performance benchmarks

Unread post by flynnsbit »

wark91 wrote: Mon Dec 12, 2022 4:40 pm

Thanks for this change, it is more easy for people wanting to change it.

The option 100Mhz is hide because the core could be unstable and generate issues reported by users.
So maybe it is better to let it hide also for this new change.

It really annoys me that this is hidden instead of saying (Unstable/Debug/ETC) like similar features in PSX. Don't hide it, just flag it as experimental only. 100Mhz runs 100% stable on 2 out of my 3 misters and I keep it on all the time for those. The other needs better active cooling so I leave it at 90.

Just my 2 cents.

User avatar
wark91
Core Developer
Posts: 334
Joined: Sun May 24, 2020 8:34 pm
Has thanked: 447 times
Been thanked: 94 times

Re: ao486 Performance Benchmarks

Unread post by wark91 »

My comment is to follow this commit.
https://github.com/MiSTer-devel/ao486_M ... 152d8a1f16

But yeah it could be tag as experimental and proposed it this way and see if the PR is accepted.

User avatar
spark2k06
Core Developer
Posts: 864
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 961 times

Re: ao486 performance benchmarks

Unread post by spark2k06 »

flynnsbit wrote: Mon Dec 12, 2022 4:56 pm
wark91 wrote: Mon Dec 12, 2022 4:40 pm

Thanks for this change, it is more easy for people wanting to change it.

The option 100Mhz is hide because the core could be unstable and generate issues reported by users.
So maybe it is better to let it hide also for this new change.

It really annoys me that this is hidden instead of saying (Unstable/Debug/ETC) like similar features in PSX. Don't hide it, just flag it as experimental only. 100Mhz runs 100% stable on 2 out of my 3 misters and I keep it on all the time for those. The other needs better active cooling so I leave it at 90.

Just my 2 cents.

I think you're right, it's better to give it visibility but to warn it:

https://github.com/spark2k06/ao486_MiST ... 01bc29e46a

User avatar
spark2k06
Core Developer
Posts: 864
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 961 times

Re: ao486 Performance Benchmarks

Unread post by spark2k06 »

User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: ao486 Performance Benchmarks

Unread post by Newsdee »

Updated the table with overclock modes, PCXT core, and using TOPBENCH for extra data point.

Results are quite interesting, in some cases TOPBENCH agrees with the CheckIt results very closely (e.g. PS/2 386 sx 20),
but in many others there are some variations to the dhrystone rank. I did expect these given other timing (non-CPU) may differ.

It also shows that the overclocking option to 100Mhz is only really useful in two cases; the other two have the same speed as regular (non overclocked) modes which are more stable.

perf_ao486_v3.PNG
perf_ao486_v3.PNG (115.99 KiB) Viewed 2248 times
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: ao486 Performance Benchmarks

Unread post by Newsdee »

Updated the table to add Whetstones (post above). interestingly on that metric PCXT outperforms ao486 easily.

thorr
Top Contributor
Posts: 1099
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 535 times
Been thanked: 252 times

Re: ao486 Performance Benchmarks

Unread post by thorr »

Thanks for this! It will be very helpful when trying to dial in the right setting for games. I have a few questions and comments:

  • Is there a way to change the setting from DOS so it can be put into a .BAT file? It would also be cool to be able to check the setting and if it is not a match, change it and reboot in the batch file, then next time it will be correct and proceed to launch the program (if a reboot is needed to make it work right).
  • With the new spark2k06 version, does it use the existing fixed MHz options, or does it dial in the MHz to more closely match a 286 12MHz, etc.? Which benchmark was used to determine the CPU selection in the core menu?
  • It would be interesting to see actual computers in the table, or a second table for actual computers so we can see the various benchmarks results on real hardware. Edit: I do see it in the comments. Having all the benchmarks for real CPU's would be cool too.
  • The named CPU selection settings may need to be adjusted in the future if improvements are made to the core, but no biggie.
  • It would be interesting to see other benchmarks in the table as well such as Memory and Disk I/O to see where improvements and adjustments can be made to the core.
bbond007
Top Contributor
Posts: 519
Joined: Tue May 26, 2020 5:06 am
Has thanked: 85 times
Been thanked: 198 times

Re: ao486 Performance Benchmarks

Unread post by bbond007 »

thorr wrote: Fri Dec 16, 2022 5:59 pm
  • Is there a way to change the setting from DOS so it can be put into a .BAT file? It would also be cool to be able to check the setting and if it is not a match, change it and reboot in the batch file, then next time it will be correct and proceed to launch the program (if a reboot is needed to make it work right).

https://github.com/MiSTer-devel/ao486_M ... /sw/sysctl

You can't read the current state, but I'm not sure that matters as a reboot does not need to happen for the change to take effect.

You might also be interested in my benchmark floppy image:
viewtopic.php?p=62424

Post Reply