G5-optimointi, asiaa myös Intel-ohjelmoijille
Lähetetty: 9.11.2011 klo 11.17
Olisi kiva kun ohjelmoijat muistaisivat vielä huomioida PowerPC 970:n eli Apple käyttäjille tutummin G5:n 64-bittisyyden. Ja huomatkaa voit kääntää Intel-macilläkin PowerPC:ssäkin toimivaksi Universal Binaryksi ja minä voin tarvittaessa testata. Ja asia tarvitsee vain valita kääntäessä ja ei sinun ei tarvitse tehdä mitään, mikäli olet alunperin tehnyt ohjelman OS X 10.5:ssä toimivaksi ja jos olet tehnyt OS X 10.4:n kanssa yhteensopivana, niin toimii myös G3:ssa. Tällöin tosin olet vasta tehnyt ohjelman (G3)/G4/G5 yhteensopivaksi, mutta käyttämällä yksinkertaisia GCC flagejä otat jo aimoharppauksen 64-bit optimoinnissa tällöin kannattaa tehdä kolme erillistä käännöstä yksi (G3)/G4, yksi 64-bit optimoitu G5:lle ja yksi Intel-macille ja unohtaa Universal Binary ajattelu.
Kannattaa nähdä vaiva, jos tekee kaupallisen ohjelman, sillä jossain näin luvun, että Apple olisi myynyt yli 10 miljoonaa G5:sta ja suurin osa on edelleen aktiivikäytössä. Se on vaikeampi tietää kuinka paljon on G3- ja G4-Macejä aktiivikäytössä, mutta tuttavapiirin otannalla niitä on jopa enemmän käytössä, kuin Intel-macejä.
Jos taas ohjelmoit PowerPC-koneella, niin CodeWarrior tekee joidenkin mittausten mukaan jopa kaksi kertaa tehokkaampaa koodia, kuin Xcode, mutta joidenkin käännösten maksimi käyttöjärjestelmä on OS X 10.4.11 ja Universal Binaryjen teko ei ole mahdollista. Mutta yllättäen OS 9 ja Windows XP-ohjelmaksi kääntäminen on voi olla helppoa.
Huomasin, että jotain tietoja Applen sivuilta olikin jo hävinnyt. Joten keräsin tähän jotain sieltä hävinnyttä:
== G5-Related Flags for GCC ===
-mcpu=970
This allows the compiler to use instructions only available on the G5 (also known as 970) processor.
-mtune=970
This tells the compiler to tune code as optimally as it can for the G5. This flag can be safely used by itself on code that may run on processors other than the G5, because code compatibility is not changed.
-mpowerpc64
In combination with the above flags, this flag tells the compiler to enable the G5's native 64-bit long long support for greatly enhanced performance when working with long longs. At times, the -force_cpusubtype_ALL flag may also be needed.
== Linkkejä, osa ei enää toimi mutta auttavat tiedon etsimistä muualta internetistä, jos löydätte niin ilmoittakaa uusi linkki tännekkin ===
Optimizing for the Power Mac G5
<http://developer.apple.com/performance/ ... ation.html> ):
Technical Note TN2086: Tuning for the G5: A Practical Guide
<http://developer.apple.com/technotes/tn/tn2086.html>
Technical Note TN2087: PowerPC G5 Performance Primer
<http://developer.apple.com/technotes/tn/tn2087.html>
Technical Note TN2090: Driver Tuning on Panther or G5 (Of interest only if you have written a device driver)
<http://developer.apple.com/technotes/tn/tn2090.html>
Power Mac G5 Performance White Paper (PDF)
http://www.apple.com/powermac/pdf/Power ... 071503.pdf
Kannattaa nähdä vaiva, jos tekee kaupallisen ohjelman, sillä jossain näin luvun, että Apple olisi myynyt yli 10 miljoonaa G5:sta ja suurin osa on edelleen aktiivikäytössä. Se on vaikeampi tietää kuinka paljon on G3- ja G4-Macejä aktiivikäytössä, mutta tuttavapiirin otannalla niitä on jopa enemmän käytössä, kuin Intel-macejä.
Jos taas ohjelmoit PowerPC-koneella, niin CodeWarrior tekee joidenkin mittausten mukaan jopa kaksi kertaa tehokkaampaa koodia, kuin Xcode, mutta joidenkin käännösten maksimi käyttöjärjestelmä on OS X 10.4.11 ja Universal Binaryjen teko ei ole mahdollista. Mutta yllättäen OS 9 ja Windows XP-ohjelmaksi kääntäminen on voi olla helppoa.
Huomasin, että jotain tietoja Applen sivuilta olikin jo hävinnyt. Joten keräsin tähän jotain sieltä hävinnyttä:
== G5-Related Flags for GCC ===
-mcpu=970
This allows the compiler to use instructions only available on the G5 (also known as 970) processor.
-mtune=970
This tells the compiler to tune code as optimally as it can for the G5. This flag can be safely used by itself on code that may run on processors other than the G5, because code compatibility is not changed.
-mpowerpc64
In combination with the above flags, this flag tells the compiler to enable the G5's native 64-bit long long support for greatly enhanced performance when working with long longs. At times, the -force_cpusubtype_ALL flag may also be needed.
== Linkkejä, osa ei enää toimi mutta auttavat tiedon etsimistä muualta internetistä, jos löydätte niin ilmoittakaa uusi linkki tännekkin ===
Optimizing for the Power Mac G5
<http://developer.apple.com/performance/ ... ation.html> ):
Technical Note TN2086: Tuning for the G5: A Practical Guide
<http://developer.apple.com/technotes/tn/tn2086.html>
Technical Note TN2087: PowerPC G5 Performance Primer
<http://developer.apple.com/technotes/tn/tn2087.html>
Technical Note TN2090: Driver Tuning on Panther or G5 (Of interest only if you have written a device driver)
<http://developer.apple.com/technotes/tn/tn2090.html>
Power Mac G5 Performance White Paper (PDF)
http://www.apple.com/powermac/pdf/Power ... 071503.pdf