[Openmcl-devel] OpenGL Performance PPC vs Intel-Mac 32/64
Alexander Repenning
ralex at cs.colorado.edu
Wed Mar 18 12:57:52 PDT 2009
On Mar 18, 2009, at 4:09 AM, Gary Byers wrote:
> <http://clozure.com/pipermail/openmcl-devel/2009-January/008832.html>
> tried to answer the same question when it was asked a few weeks later.
this one mostly talks about the difference between PPC and 86-64. I
understand the "one register short" argument between 86-64 and PPC. Do
I get this right: in essence the 86-64 ff call requires 2 additional
system calls to compensate for missing PPC RISC registers, right? But
how come the 86-32 is faster? How does the register versus need for
syscalls tradeoff change in 32bit assuming there are no additional
registers available in 32bit? Does the 32bit call use 64bit register
to store 2 x 32bit info and therefore double in essence the number of
registers, which is turn, allows it to avoid the syscalls?
alex
>
> On Wed, 18 Mar 2009, R. Matthew Emerson wrote:
>
>>
>> On Mar 18, 2009, at 2:16 AM, Alexander Repenning wrote:
>>
>>> Playing around with some direct mode (i.e., not super efficient)
>>> OpenGL code we notice some big speed differences:
>>>
>>> The time to draw a cube (4 sides only actually):
>>>
>>> 1.66 Ghz PPC Mac: MCL 88 us, CCL 1.3 60us
>>>
>>> 2.6 Ghz Intel Mac: CCL 1.3 32bit: 33us CCL 1.3 64bit 92us
>>>
>>>
>>> I remember we had a discussion on PPC versus Intel call overhead
>>> but I
>>> am a bit surprised about 64bit Intel Mac CCL on a much faster
>>> machine,
>>> even ignoring the faster GPU, is slower than MCL on the old PPC.
>>> Notice, the OpenGL commands are pretty trivial. Most of the time is
>>> spent in the foreign function call overhead. How can CCL 32bit Intel
>>> Mac be 3x faster than 64bit ?
>>
>> The first several paragraphs of the following message talk about
>> this.
>>
>> http://clozure.com/pipermail/openmcl-devel/2008-December/008766.html
>>
>> In summary, due to missing functionality on Darwin/x8664 (no way to
>> set the fsbase MSR) we resort to a workaround that involves
>> performing
>> a system call before and after each ff-call. When the foreign
>> function doesn't do a lot of work, this overhead is significant.
>> (When the foreign code does something expensive, like I/O, the
>> overhead matters less.)
>>
>> On Darwin/x8632, we don't have to do the workaround, so ff-calls are
>> cheaper.
>>
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> http://clozure.com/mailman/listinfo/openmcl-devel
>>
>>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>
Prof. Alexander Repenning
University of Colorado
Computer Science Department
Boulder, CO 80309-430
vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20090318/b734f454/attachment.htm>
More information about the Openmcl-devel
mailing list