NumberCruncher
NumberCruncher Reloaded
09/05/22 20:35
In 2002 some guy emailed me about the NumberCruncher, a floating point coprocessor card for the Apple II. The card was developed and built by Andreas Schmidt, a friend of mine, in 1993. I helped a bit on the software side back then. The NC was a clone of the FPE by Innovative Systems, just more reliable. On the Apple IIGS you could use it out of the box with any program that used the Standard Apple Numeric Environment (SANE) for calculations, thanks to a SANE patch from Albert Chin-A-Young.
The guy who emailed me asked if I had one to sell, but I did not want to give my single remaining NC away, so I declined and forgot about him.
2022: I was browsing the Internet out of Corona boredom, surfing on nostalgic Apple IIGS-related pages. Then I read about "NumberCruncher Reloaded", a NC clone built by reverse engineering an old NC card! In 2021! 28 years after the original NC! I was thrilled to see that, and when I found out that the creator was selling the NumberCruncher Reloaded as a cute, professional-looking product I contacted him. Turns out, he was the guy who contacted me in 2002 :)
Axel, the NC-R guy, even sent me a card! Full of anticipation I set up my old Apple IIGS again, played with it for a while and tried out my old NC card. Everything was working fine, for about three hours. The following day I wanted to show it to my son, but the GS did not boot any more. I could not find the reason, but Axel repaired my motherboard when I sent it to him. Absolutely great.
So now, with my GS up and running, I can do benchmarks of the new and the old NC cards. Here are the results, taken on the following system:
You will get the most impressive improvement by NC or NC-R when doing trigonometric calculations. Using MathGraphics, a shareware function plotting program I wrote back then, I timed the calculation of a plot of a Fourier series:
You see a lot of sinus function calls here, and the results are great (shorter is better, obviously):
Legend:
So if you compile such a program specifically for the NC, you can expect it to run almost ten times faster. If you just rely on the SANE patch, it runs seven times faster.
Then I adapted an old Linpack benchmark (from the famous linear algebra package Linpack) for the IIGS and the NC and got these results:
The NC and NC-R give a more than three times better performance for the specifically compiled version, with the NC-R slightly ahead of the NC. kFLOPS stands for 1000 Floating Point Operations per Second. BTW, my iPhone Xs does about 12500 MFLOPS (not kFLOPS) on this test... :-)
Finally, I ran a benchmark with mixed tasks (sorting, integer and float operations etc.) where three out of seven tasks involved floating point calculations. A stock IIGS with 2.8 MHz clock frequency would reach 2.8 MHz on this benchmark, my TransWarp-accelerated IIGS reaches 11,21 MHz, and for the NC results have a look at the following diagram:
So for this benchmark a NC-R-equipped IIGS feels like a IIGS running at about 100 MHz. Your milage may vary.
You can download a ShrinkIt archive with all the benchmark programs and more from my download page (NCRStuffDF.SHK).
The guy who emailed me asked if I had one to sell, but I did not want to give my single remaining NC away, so I declined and forgot about him.
2022: I was browsing the Internet out of Corona boredom, surfing on nostalgic Apple IIGS-related pages. Then I read about "NumberCruncher Reloaded", a NC clone built by reverse engineering an old NC card! In 2021! 28 years after the original NC! I was thrilled to see that, and when I found out that the creator was selling the NumberCruncher Reloaded as a cute, professional-looking product I contacted him. Turns out, he was the guy who contacted me in 2002 :)
Axel, the NC-R guy, even sent me a card! Full of anticipation I set up my old Apple IIGS again, played with it for a while and tried out my old NC card. Everything was working fine, for about three hours. The following day I wanted to show it to my son, but the GS did not boot any more. I could not find the reason, but Axel repaired my motherboard when I sent it to him. Absolutely great.
So now, with my GS up and running, I can do benchmarks of the new and the old NC cards. Here are the results, taken on the following system:
- Apple IIGS ROM03, TransWarp 12 MHz
- NumberCruncher 12 MHz (NC)
- NumberCruncher Reloaded 16 MHz (NR-R)
You will get the most impressive improvement by NC or NC-R when doing trigonometric calculations. Using MathGraphics, a shareware function plotting program I wrote back then, I timed the calculation of a plot of a Fourier series:
You see a lot of sinus function calls here, and the results are great (shorter is better, obviously):
Legend:
- Init: SANE patch FPE.PRD from V. Hemeury
- Old Init: SANE patch from Albert Chin-A-Young
- Compiled: Compiled and linked with a special FPE float lib from ByteWorks
So if you compile such a program specifically for the NC, you can expect it to run almost ten times faster. If you just rely on the SANE patch, it runs seven times faster.
Then I adapted an old Linpack benchmark (from the famous linear algebra package Linpack) for the IIGS and the NC and got these results:
The NC and NC-R give a more than three times better performance for the specifically compiled version, with the NC-R slightly ahead of the NC. kFLOPS stands for 1000 Floating Point Operations per Second. BTW, my iPhone Xs does about 12500 MFLOPS (not kFLOPS) on this test... :-)
Finally, I ran a benchmark with mixed tasks (sorting, integer and float operations etc.) where three out of seven tasks involved floating point calculations. A stock IIGS with 2.8 MHz clock frequency would reach 2.8 MHz on this benchmark, my TransWarp-accelerated IIGS reaches 11,21 MHz, and for the NC results have a look at the following diagram:
So for this benchmark a NC-R-equipped IIGS feels like a IIGS running at about 100 MHz. Your milage may vary.
You can download a ShrinkIt archive with all the benchmark programs and more from my download page (NCRStuffDF.SHK).