#VistaPro
9 messages in this thread
Hello there,
I noticed your thread that you are involved with VistaPro. I
would like to say my company uses VP and I think you all
did and excellent job. 🙂
I had a question you might answer, I run a shop with Amigas and
a single PC (er, sorry) and it seems to me that the PC version
is quite a bit faster than our amiga version (both 3.0). Is this
true or just an "illusion?"
Thanks 🙂
Shawn Randolph
Silent Paw Productions
Shawn:
The PC version running on a 486/66 renders about 4 times faster than
the released Amiga version on an 040/25. Since 3.0 was released, I have
ported the Amiga code over to the SAS C compiler, which has resulted in
about a 30% improvement in rendering speed making the Amiga 3.1 about 3
times slower.
There are two major factors in the speed difference, one being
compiler optimization and the other being processor speed. The WatCOM
compiler on the PC has many man-years of optimization in it which SAS does
not yet have. Given the size of the market, SAS is doing quite well with
their compiler, improving it with each release, but it doesn't generate
nearly the revenue that a PC compiler does, hence less money available for
optimization. From what I've seen, if you had a 486/25 and an 040/25, they
would be pretty close in speed. The reason that PCs seem so slow is
usually the fault of Windows and code written in 16 bit mode, rather than
the processor. VistaPro is actually a pretty good test of processor speed
and compiler optimization as the rendering code is identical on the
various processors. I am looking forward to seeing how well it does on the
060. <grin>
Clint <VRLI><Chaocity>
If you compiled a version with 040-native FPU calls, you'd be a LOT better
off. You are probably taking exceptions right and left for
transendentals, and that is slower than an '882 on an '030!
—
Dale L. Larson, Intangible Assets Manufacturing
Dale:
Actually VistaPro spends very little time on floating point calls,
the vast majority is integer arithmetic. The integer trancendentals are
all table lookup for speed. There are fewer then a half a dozen floating
point trancendental calls per render cycle. Compiling for 040 code with
the SAS compiler improved rendering speeds about 30% over the Manx 5.2
code on an 040.
Clint <VRLI><Chaocity>
Sorry, stupid me. I should have guessed that you'd taken the integer
arithmetic optimization. Wow. Kinda suprises me that your 486 version
is so much faster, even if you chalk it up to compiler optimizations. I
assume you've run both versions through a profiler — are they both
spending most of their time in the same functions?
—
Dale L. Larson, Intangible Assets Manufacturing
Dale:
Given that the code is identical, I would imagine that they would
spend their time in the same functions. <grin> The differences are in the
GUI, both render to a 24 bit chunky pixel buffer. John and I have worked
hard to keep the basic rendering engine the same so that code could be
passed back and forth without conversion being needed. I did "cheat" on
some of the actual polygon calculating code, and recoded it in assembly on
the Amiga, which was about a third of the speed improvement, so if
anything, the compiler differences are greater than they look. I profiled
the Amiga to determine which routines to recode, and have about 5% of the
total code optimized to assembly. Using identical "C" source, the Amiga is
even slower than the current numbers. I was quite surprized myself, as the
PC seems so sluggish with other programs, but VP seems to like the 486.
John did compile in 32 bit protected-mode on the PC which was much faster
than VistaPro 1.0 on the PC which was 16 bit. Unfortunately, on the PC
most programs try to maintain 286 compatability which effectively cripples
them.
Clint <VRLI><Chaocity>
The profiling comparison of the "identical code" on different processors
with different compilers would still be potentially interesting, though
not as much so with your assembly optimizations. You might find that a
particular function is much slower on the 040, and that might lead you to
a single cause (or couple of single causes) you could point to for the
speed difference.
—
Dale L. Larson, Intangible Assets Manufacturing
Dale:
I profiled the Amiga version when I converted it from Manx to SAS,
and the optimizations that I added in response to the info I gained did
improve the Amiga version. However, they also improved the PC version by a
like amount. I personally much prefer the Motorola 680×0 architecture and
the Amiga OS, but I have yet to come up with a benchmark that doesn't show
the 486/66 to be at least 3x faster than the 040/25. I wish it weren't so,
but John and I have written and run dozens of benchmarks trying to find
out just where the speed is coming from, but it seems to be across the
board, not any particular set of instructions.
Clint <VRLI><Chaocity>
Well the 66mhz isn't helping the Amiga side. Try with a Warp board. The
extra clock speed will help, and getting rid of the stupid slow RAM on the
A4000 with the 3640 will certainly help.
—
Dale L. Larson, Intangible Assets Manufacturing