I've written an hand-optimised assembler Julia set demo, and it gets some quite impressive results. On a demo designed to avoid much black, I get the following results:
Code: Select all
stats-1080i.txt:Average framecount over 1700 frames: 90.9 FPS
stats-1080p.txt:Average framecount over 1700 frames: 90.8 FPS
stats-480i.txt:Average framecount over 1700 frames: 469.3 FPS
stats-480p.txt:Average framecount over 1700 frames: 469.3 FPS
stats-576i.txt:Average framecount over 1700 frames: 393.9 FPS
stats-720p.txt:Average framecount over 1700 frames: 199.3 FPS
For those that are interested, the inner loop uses SIMD vectors and actually calculates 16 pixels at once. I've also unrolled the inner loop three times for good measure!
I've created a page at http://ranulf.net/ps3/ for the demo sourcecode and will keep it up-to-date with any other demos I write in the future.
The best demo to run is
Code: Select all
make test
Code: Select all
make time
Code: Select all
make stats.txt
Apologies that the webpage looks pretty ugly - my webserver crashed a couple of weeks ago and I haven't bothered to restore all the old site... :(