[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