Optimera kompilering för processorarkitektur, osx

Avdelningen för programmering, nätverk samt alternativa OS.
Post Reply
User avatar
snigel
Hedersbit
Posts: 9632
Joined: 2002-03-08 15:06:33
Location: Göteborg

Optimera kompilering för processorarkitektur, osx

Post by snigel »

Blivit tvungen att kompilera en del program på sistone och då känner jag att jag lika gärna hade kunnat ställa in kompileringen på att optimera efter min arkitektur, G4-processorn är långsam nog som den är.
Hur går jag till väga för att ställa standardkompileringsflaggorna och vad är lämpligt att välja?
http://sniglom.blogspot.com
Work |i5 760@4.2GHz|16GB|P55|GTX 670|850 500GB|Xonar D2|2TB
Extra |q9550@3.4GHz|8GB|P45|GTX 670|830 256GB|Audigy 2
MacB.|p8600@2.4GHz|8GB|320m|BX100 500GB
Serve|c1037@1.8GHz|8GB|NM70|X25-M 80GB|Seagate 4TB
User avatar
trappski
Posts: 2310
Joined: 2004-09-25 23:53:15
Location: Örebro

Re: Optimera kompilering för processorarkitektur, osx

Post by trappski »

snigel wrote: Hur går jag till väga för att ställa standardkompileringsflaggorna och vad är lämpligt att välja?
Det lär ska bero på vilken kompilator du använder...
User avatar
snigel
Hedersbit
Posts: 9632
Joined: 2002-03-08 15:06:33
Location: Göteborg

Re: Optimera kompilering för processorarkitektur, osx

Post by snigel »

Trappski wrote:
snigel wrote: Hur går jag till väga för att ställa standardkompileringsflaggorna och vad är lämpligt att välja?
Det lär ska bero på vilken kompilator du använder...
Det vet jag faktiskt inte, jag har installerat xcode med medföljande kompilatorer. Antar att det vanligaste att optimera är för c/c++. Men ju fler desto bättre.
http://sniglom.blogspot.com
Work |i5 760@4.2GHz|16GB|P55|GTX 670|850 500GB|Xonar D2|2TB
Extra |q9550@3.4GHz|8GB|P45|GTX 670|830 256GB|Audigy 2
MacB.|p8600@2.4GHz|8GB|320m|BX100 500GB
Serve|c1037@1.8GHz|8GB|NM70|X25-M 80GB|Seagate 4TB
User avatar
IcePic
Hedersbit
Posts: 6061
Joined: 2002-03-08 16:09:38

Post by IcePic »

Jag tror inte på det.
IMHO är det en gentoo-sjuka som spritt sig att man kan få nåt att bli bättre genom
att ställa om flaggorna till nåt utvecklarna inte avsåg och sen bygga om openoffice
i 24h för att "spara tid".
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
User avatar
HLC
Posts: 2146
Joined: 2004-09-25 10:08:21
Location: Kista

Post by HLC »

IcePic wrote:Jag tror inte på det.
IMHO är det en gentoo-sjuka som spritt sig att man kan få nåt att bli bättre genom
att ställa om flaggorna till nåt utvecklarna inte avsåg och sen bygga om openoffice
i 24h för att "spara tid".
Alltså, det beror väl på ifrån fall till fall. Förra hösten satt vi och kodade Fortran i några labbar och att slänga in -O4 hjälpte prestationen på våra simuleringsprogram en hel del. Då pratar vi dock relativt enkla och väldigt beräkningstunga program, vilket förmodligen optimeras mer och enklare än annat.

Som jag förstod det så är det i Snigels fall program som oavsett måste kompileras manuelt och då kan man väl lika gärna slänga med några flaggor som fortfarande är "safe", såsom att specificera arkitekturen. Som Trappski säger borde det väl stå i dokumentationen för varje kompilator, så leta efter ord såsom "arch" och "mach".
"Broadcom and Apple are the antithesis of free disclosure of information." - Theo de Raadt
"Unconditional love costs extra." - Sun Microsystems
User avatar
snigel
Hedersbit
Posts: 9632
Joined: 2002-03-08 15:06:33
Location: Göteborg

Post by snigel »

IcePic wrote:Jag tror inte på det.
IMHO är det en gentoo-sjuka som spritt sig att man kan få nåt att bli bättre genom
att ställa om flaggorna till nåt utvecklarna inte avsåg och sen bygga om openoffice
i 24h för att "spara tid".
De saker jag kompilerar finns det ingen binär för, hade gärna fått allt serverat om det fanns.
Jag tror inte heller på optimeringshysterin, men om man ändå ska kompilera finns det väl ingen anledning att låta bli?
http://sniglom.blogspot.com
Work |i5 760@4.2GHz|16GB|P55|GTX 670|850 500GB|Xonar D2|2TB
Extra |q9550@3.4GHz|8GB|P45|GTX 670|830 256GB|Audigy 2
MacB.|p8600@2.4GHz|8GB|320m|BX100 500GB
Serve|c1037@1.8GHz|8GB|NM70|X25-M 80GB|Seagate 4TB
User avatar
IcePic
Hedersbit
Posts: 6061
Joined: 2002-03-08 16:09:38

Post by IcePic »

snigel wrote:De saker jag kompilerar finns det ingen binär för, hade gärna fått allt serverat om det fanns.
Jag tror inte heller på optimeringshysterin, men om man ändå ska kompilera finns det väl ingen anledning att låta bli?
En anledning är att du kommer använda gcc på sätt som folk i normalfallet inte gör. Du kommer få ut kod som klart färre personer testat, än om du kör
på default för plattformen.

Beroende på hur udda just din cpu är kan man få rätt intressanta problem med
länkning senare (brukar hända mig på sparc64) när ett lib och en applikation
inte är helt överens om hur långa relativa pekare kan vara eller andra cpu-specifika
detaljer som påverkar hur koden anropar subrutiner.
Om man bygger allt själv ser man inte såna problem, men så fort man senare drar
in nåt som någon annan byggt så blir det konstigt.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
User avatar
snigel
Hedersbit
Posts: 9632
Joined: 2002-03-08 15:06:33
Location: Göteborg

Post by snigel »

G4 räknas väl som någorlunda udda antar jag, men inte väldigt ovanlig.
Jag har inget emot att testa, maskinen är inte i något behov av driftsäkerhet och skulle det inte fungerar får jag bara kompilera om dem som vanligt igen.

Hade varit lärorikt att pröva.
http://sniglom.blogspot.com
Work |i5 760@4.2GHz|16GB|P55|GTX 670|850 500GB|Xonar D2|2TB
Extra |q9550@3.4GHz|8GB|P45|GTX 670|830 256GB|Audigy 2
MacB.|p8600@2.4GHz|8GB|320m|BX100 500GB
Serve|c1037@1.8GHz|8GB|NM70|X25-M 80GB|Seagate 4TB
User avatar
IcePic
Hedersbit
Posts: 6061
Joined: 2002-03-08 16:09:38

Post by IcePic »

snigel wrote:G4 räknas väl som någorlunda udda antar jag, men inte väldigt ovanlig.
Nja, men generisk PPC-kod ska ju funka på G3-G5, och antagligen ner till 60Mhz 601-ppc:er.
Jag har inget emot att testa, maskinen är inte i något behov av driftsäkerhet och skulle det inte fungerar får jag bara kompilera om dem som vanligt igen.

Hade varit lärorikt att pröva.
-march=nånting lär det ju vara, om det är i linje med hur gcc brukar funka.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
User avatar
snigel
Hedersbit
Posts: 9632
Joined: 2002-03-08 15:06:33
Location: Göteborg

Post by snigel »

IcePic wrote: -march=nånting lär det ju vara, om det är i linje med hur gcc brukar funka.
Vet någorlunda hur jag ska ställa in det, men jag vet inte var jag ska ställa in det om det ska vara som default vid kompilering från exempelvis portsystem och liknande.
http://sniglom.blogspot.com
Work |i5 760@4.2GHz|16GB|P55|GTX 670|850 500GB|Xonar D2|2TB
Extra |q9550@3.4GHz|8GB|P45|GTX 670|830 256GB|Audigy 2
MacB.|p8600@2.4GHz|8GB|320m|BX100 500GB
Serve|c1037@1.8GHz|8GB|NM70|X25-M 80GB|Seagate 4TB
User avatar
IcePic
Hedersbit
Posts: 6061
Joined: 2002-03-08 16:09:38

Post by IcePic »

snigel wrote:Vet någorlunda hur jag ska ställa in det, men jag vet inte var jag ska ställa in det om det ska vara som default vid kompilering från exempelvis portsystem och liknande.
på openbsd skulle det vara
CFLAGS="-march=foo" i filen /etc/mk.conf
Kanske nåt liknande där?
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
Post Reply