Page 1 of 1

ao486 Performance Benchmarks

Posted: Mon Dec 12, 2022 1:31 pm
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 3844 times

PCXT core performance - CheckIt 3.0 Dhrystones

perf_pcxt.PNG
perf_pcxt.PNG (10.6 KiB) Viewed 3844 times

Re: ao486 Performance Benchmarks

Posted: Mon Dec 12, 2022 2:30 pm
by Psygho

Thnx, verry helpfull testing'!


Re: ao486 Performance Benchmarks

Posted: Mon Dec 12, 2022 2:33 pm
by kathleen

Thank you @Newsdee for this table


Re: ao486 Performance Benchmarks

Posted: Mon Dec 12, 2022 4:00 pm
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 3736 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.


Re: ao486 Performance Benchmarks

Posted: Mon Dec 12, 2022 4:27 pm
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.


Re: ao486 performance benchmarks

Posted: Mon Dec 12, 2022 4:40 pm
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.


Re: ao486 performance benchmarks

Posted: Mon Dec 12, 2022 4:42 pm
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.


Re: ao486 performance benchmarks

Posted: Mon Dec 12, 2022 4:56 pm
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.


Re: ao486 Performance Benchmarks

Posted: Mon Dec 12, 2022 5:10 pm
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.


Re: ao486 performance benchmarks

Posted: Tue Dec 13, 2022 5:02 am
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


Re: ao486 Performance Benchmarks

Posted: Tue Dec 13, 2022 5:19 am
by spark2k06

Re: ao486 Performance Benchmarks

Posted: Wed Dec 14, 2022 1:27 am
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 3279 times

Re: ao486 Performance Benchmarks

Posted: Wed Dec 14, 2022 3:53 am
by Newsdee

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


Re: ao486 Performance Benchmarks

Posted: Fri Dec 16, 2022 5:59 pm
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.

Re: ao486 Performance Benchmarks

Posted: Fri Dec 16, 2022 7:31 pm
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