 |
 |
Is Apple going to add Intel optimizations to Mac OS X and others?
|
 |
|
 |
|
Professional Poster
Join Date: Mar 2002
Location: Smallish town in Ohio
Status:
Offline
|
|
|
|
|
|
| |
|
|
|
 |
|
 |
|
Posting Junkie
Join Date: Oct 2005
Location: Houston, TX
Status:
Offline
|
|
OSX requires a minimum of SSE3, although it has been hacked to support machines that only have SSE2. The system vector libraries support the use of SSE (1/2/3) in addition to Altivec.
|
|
|
| |
|
|
|
 |
|
 |
|
Clinically Insane
Join Date: Oct 2000
Location: Los Angeles
Status:
Online
|
|
I think Apple already is. As mduell points out, an official requirement is SSE3 because Rosetta uses it. And I'm sure it's used elsewhere.
|

"The natural progress of things is for liberty to yield and government to gain ground." TJ
|
| |
|
|
|
 |
|
 |
|
Forum Regular
Join Date: Jan 2006
Status:
Offline
|
|
All the intel binaries are optimized for SSE2 when they are compiled. Some also include SSE3 instructions, but since there are equivelents in SSE2 for all SSE3 instructions, the kernel can be recompiled/modified to emulate SSE3 using SSE2 instructions...
|
|
|
| |
|
|
|
 |
|
 |
|
Grizzled Veteran
Join Date: Oct 2001
Location: Michigan
Status:
Offline
|
|
Did Intel release its own compiler for OS X or is Apple still using gcc from 10.4.4 to now?
|
|
Pismo 400 | Powerbook 1.5 GHz | MacPro 2.66/6GB/7300GT
|
| |
|
|
|
 |
|
 |
|
Moderator 
Join Date: May 2001
Location: Hilbert space
Status:
Offline
|
|
The compilers automatically use SSE, unless you explicitly tell them not to. AFAIK the fpu is actually integrated into the SSE unit of the P4 at least.
|
|
I don't suffer from insanity, I enjoy every minute of it.
|
| |
|
|
|
 |
|
 |
|
Grizzled Veteran
Join Date: Oct 2001
Location: Michigan
Status:
Offline
|
|
Originally Posted by OreoCookie
The compilers automatically use SSE, unless you explicitly tell them not to. AFAIK the fpu is actually integrated into the SSE unit of the P4 at least.
OK but do you know if apple is using Intels' compliers or gcc when compiling for the Intel versions of Mac's in 10.4.5?
|
|
Pismo 400 | Powerbook 1.5 GHz | MacPro 2.66/6GB/7300GT
|
| |
|
|
|
 |
|
 |
|
Moderator 
Join Date: May 2001
Location: Hilbert space
Status:
Offline
|
|
Originally Posted by tkmd
OK but do you know if apple is using Intels' compliers or gcc when compiling for the Intel versions of Mac's in 10.4.5?
I assume they use gcc, although I don't know.
In any case, it doesn't make a difference for the topic of this thread since both use SSE instructions, unless you explicitly tell them not to.
Hence to answer your initial questions: SSE is already used heavily in Apple's software for Intel.
Probably you confuse this a bit with the way SSE (or any sort of SIMD instruction set, be it AltiVec or SSE3) can be used to dramatically accelerate media encoding for instance. Some of the code is manually adjusted to increase the speed of the encoding process. Judging from the various QuickTime benchmarks, Apple has still some way to go. On the other hand, AltiVec seems to be more powerful than SSE (in that is easier to use and hence easier to optimize for), so we'll have to see in a year or two what Apple does to close the gap.
|
|
I don't suffer from insanity, I enjoy every minute of it.
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Apr 2001
Status:
Offline
|
|
Apple is using GCC for the OS and its applications at the moment.
Intel has a new compiler for the Mac in beta (final release this fall) that offers a substantial increase in performance, particularly on the Core Duo and Conroe platforms. It's unknown whether Apple will adopt this compiler, but it would net a 5% to 40% boost (depending on app) in performance if they did so.
(Last edited by Ken_F2; Mar 16, 2006 at 04:28 PM.
)
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Aug 2001
Location: California, USA
Status:
Offline
|
|
That'd be cool, a nice 5-40% speed bump, although my Mini Core Duo already is pretty smokin' compared to every other Mac I've ever used.
|
|
|
| |
|
|
|
 |
|
 |
|
Clinically Insane
Join Date: Dec 2000
Location: Caught in a web of deceit.
Status:
Offline
|
|
Originally Posted by Binarymix
All the intel binaries are optimized for SSE2 when they are compiled. Some also include SSE3 instructions, but since there are equivelents in SSE2 for all SSE3 instructions, the kernel can be recompiled/modified to emulate SSE3 using SSE2 instructions...
I'm confused....
I remember reading in some Apple doc that they recommended developers target SSE2 (not SSE3). From what you're saying it seems that Apple itself is just assuming everyone with an Intel Mac has SSE3 (which is true), and isn't really targetting SSE2. Am I correct?
In any case, I don't see the harm in targetting SSE3, because AMD chips (which Apple could switch to in the future if necessary) support SSE3 now too.
Originally Posted by Ken_F2
Apple is using GCC for the OS and its applications at the moment.
Intel has a new compiler for the Mac in beta (final release this fall) that offers a substantial increase in performance, particularly on the Core Duo and Conroe platforms. It's unknown whether Apple will adopt this compiler, but it would net a 5% to 40% boost (depending on app) in performance if they did so.
It's several months later now, so you wouldn't have known this at the time, but Apple is at least using Intel's compilers for its SPEC benchmark submissions.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Feb 2001
Location: Sitting in front of computer
Status:
Offline
|
|
I'm not 100% sure, but I think I read that developers use the Acceleration (?) Framework. This Framework then uses the correct optimizations depending on the hardware (i.e. Altivec on PPC and SSE on Intel).
If thats correct, then if apple update the Acceleration Framework, all apps that use it will benefit.
So if theres a SSe version, then all Altivec enhanced apps will get the SSE optimizations
|
|
I free'd my mind... now it won't come back.
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: May 2001
Location: NYC
Status:
Offline
|
|
Originally Posted by Ken_F2
Apple is using GCC for the OS and its applications at the moment.
Intel has a new compiler for the Mac in beta (final release this fall) that offers a substantial increase in performance, particularly on the Core Duo and Conroe platforms. It's unknown whether Apple will adopt this compiler, but it would net a 5% to 40% boost (depending on app) in performance if they did so.
Curious: is it nontrivial for Apple to go and back forth between say GGC and Intel's compiler, or would adopting Intel's compiler in effect tie Apple much closer to using Intel chips?
Also: does anyone know what compiler MS uses for Windows?
|
|
|
| |
|
|
|
 |
|
 |
|
Clinically Insane
Join Date: Nov 1999
Status:
Offline
|
|
Originally Posted by lookmark
Curious: is it nontrivial for Apple to go and back forth between say GGC and Intel's compiler, or would adopting Intel's compiler in effect tie Apple much closer to using Intel chips?
It's nontrivial: this codebase has been using GCC since the NeXTStep days.
Also: does anyone know what compiler MS uses for Windows?
MS uses its own compiler.
|
|
You are in Soviet Russia. It is dark. Grue is likely to be eaten by YOU!
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: May 2001
Location: NYC
Status:
Offline
|
|
Oops, meant GCC, not GGC. Thanks for the response.
Seems the best path would be to offer both compiling options in XCode, and let developers choose, per app.
|
|
|
| |
|
|
|
 |
|
 |
|
Clinically Insane
Join Date: Dec 2000
Location: Caught in a web of deceit.
Status:
Offline
|
|
OK, here is some documentation from the AltiVec/SSE Migration Guide:
Detecting SSE3
Instruction Overview
This may be old, but they haven't updated it in the docs in any case. They are still recommending that if you use SSE3, you should add code to detect it first.
Why? I dunno, cuz all Intel Macs ever released already have SSE3, including the first Intel developer boxes.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Feb 2001
Location: Sitting in front of computer
Status:
Offline
|
|
Originally Posted by Eug
OK, here is some documentation from the AltiVec/SSE Migration Guide:
Detecting SSE3
Instruction Overview
This may be old, but they haven't updated it in the docs in any case. They are still recommending that if you use SSE3, you should add code to detect it first.
Why? I dunno, cuz all Intel Macs ever released already have SSE3, including the first Intel developer boxes.
because making assumptions in your code always comes back to bite you on the ass
the number of times ive had to fix a bug caused by a dev assuming a situation could not possibly exist...
|
|
I free'd my mind... now it won't come back.
|
| |
|
|
|
 |
|
 |
|
Clinically Insane
Join Date: Dec 2000
Location: Caught in a web of deceit.
Status:
Offline
|
|
I understand your point, but why not require detecting SSE2 too then? Or even SSE and MMX for that matter?
I mean, even Cyrix chips support SSE3 now.
|
|
|
| |
|
|
|
 |
 |
|
 |
|
|
|
|
|

|
|
 |
Forum Rules
|
 |
 |
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is Off
|
|
|
|
|
|
 |
 |
 |
 |
|
 |
|