G4 Altivec

G

Graundsiro

Mitglied
Thread Starter
Dabei seit
22.12.2003
Beiträge
1.077
Reaktionspunkte
1
Also irgendwie ist da eine Routine im Prozessor versteckt die sich Altivec nennt. Nur- greifen Programme wie Photoshop und Acrobat oder iMovie wirklich auf diese Resource zu? Ich habe gehört dass dieses Feature meistens inaktiv sozusagen hinter verschlossenen Türen bleibt. Wie läuft das mit Altivec?
 
google mal.

ich hab nur m itbekommen das altivec ein kaum genutzes feature ist.
 
Die Suchfunktion hätte euch weitergeholfen
 
lokhi schrieb:
Ich habe gehört dass dieses Feature meistens inaktiv sozusagen hinter verschlossenen Türen bleibt.

Wird sich mit XCode 2 und dem GCC3.5 ;)

Gruss
Kalle
 
Da zahlen einige viel Geld für Ihren Computer und ein grosser Teil davon fault vor sich hin?
 
Das stimmt so nicht ganz. Altivec ist eine 128Bit Vektorunit die dem Prozessor aufgesetzt wurde. Mit Hilfe dieser Unit kann der Prozessor Rechenoperationen brutal beschleunigen, vorrausgesetzt die Software wurde dafuer geschrieben.
Wir also die Software von zB Windows schlecht portiert, dh die Vektorunit wird nicht vom Programmierer angesprochen, laeuft das Programm sehr viel langsamer.
Bei wissenschaftlichen Programmen wird Altivec meistens unterstuetzt, bei Apple-eigener Software bin ich mir auch noch ziemlich sicher. Wie's aber mit Fremdsoftware aussieht? Keine Ahnung!


Haettest du dir aber den zweiten Link von Grady angeschaut, haette sich deine Frage schon beantwortet ....

Hier zB ein paar hilfreiche Ausfuehrungen von ._ut
<quote>
------------------------------------------------------------------------------------------------------
Zitat von Faice:
Beispielsweise braucht mein iBook zur berechnung einer SETI@home Work Unit wesentlich länger als der Athlon XP 1600+.
------------------------------------------------------------------------------------------------------

Seti ist nicht auf den G4 optimiert. Seti hat sowieso zu viele Clients laufen, so viele, dass sie die Workunits teilweise doppelt verschicken. Daher besteht für Seti kein Bedarf, den Code zu optimieren.
Bei rc5 ist der Client voll auf Altivec optimiert, da werden die Workunits auf Deinen 1GHz-iBook so schnell berechnet, wie auf einem 5,5GHz Pentium4 (welchen es ja bekanntlich nicht gibt).

Es kommt immer drauf an, was gerechnet wird.
In der Festkomma-Bereich scaliert der G4 ungefähr, wie ein gleich getakteter x86, im Fließkommabereich siehts schon besser aus. Sobald die Altivec-Unit zum Tragen kommt, lässt der G4 den x86 hinter sich.
Beim Berechnen von Fraktalen kann man die Rechenleistung des G4 durch Abschalten der Altivec-Einheit auf ca. 1/4 reduzieren (bei Deinem 1GHz-iBook dürfte das sowas, wie etwas über 2Gflops vs. 500Mflops sein).
------------------------------------------------------------------------------------------------------

Gruesse

Christian
 
Danke für Deine Antwort. Doch lässt mich das befürchten das die Investition in einen G4 überflüssig war. Wahrscheinlich wird die Altivec Routine nicht mehr weiter in Software integriert werden da ja der aktuelle G5 eine andere Prozessorarchitektur hat.
 
Also da wuerde ich mir echt keine Sorgen machen. Deine Programme funktionieren doch und die werden es auch noch weiter tun.
Bis der G5 so etabliert ist das er das unterste Limit fuer deine Software sein wird, wird noch einiges an Wasser die Donau runter laufen.
Den G5 gibt es derzeit ja nur in der Oberliga und ich kann mir nicht vorstellen das der jetzt schon so weit verbreitet ist (vergleiche dazu die Consumerlinie).
Der G5 wird ja auch erst richtig gut werden wenn es ein reines 64Bit OS geben wird.
Geniesse also deinen Rechner und habe Freude an der Technik. Mir ist es ziemlich egal ob die Kiste Altivec oder sonstwas benutzt solange die Programme zuegig laufen.
(Es soll ja noch ein anderes OS geben in dem sogar noch 16Bit Bibliotheken herumspucken sollen.)

Gruesse

Christian
 
lokhi schrieb:
Danke für Deine Antwort. Doch lässt mich das befürchten das die Investition in einen G4 überflüssig war. Wahrscheinlich wird die Altivec Routine nicht mehr weiter in Software integriert werden da ja der aktuelle G5 eine andere Prozessorarchitektur hat.

Mensch Junge. Hast du überhaupt mal google angeschmissen und mal Altivec eingegeben? Weißt du überhaupt was das ist? Alitvec ist keine "Routine" sondern eine Ansammlung von Registern und Datenpfaden. So etwas wie SSE2 im Pentium4. Nur halt größer und schneller.

Erst mal folgendes:

1. So gut wie jede Apple-Anwendung nutzt Altivec. Sei es iDVD, iMovie, iTunes, Quicktime, GarageBand, sogar die Bildschirmschoner, etc. pp.! Bei einigen dieser Programme fehlen sogar Features wenn man keine Altivec-Einheit hat.

2. Sind die Altivec-Einheiten im G5 enthalten. Jedoch nicht ganz so schnell wie im G4. Aber der Takt macht das wieder wett.

3. Altivec ist keine "wenn du das nutzt ist es schneller"-Einheit. Was meint ihr wie brachial schwer es ist ein Programm zu portieren und Altivec zu nutzen? Da muss man teilweise den ganzen Programmablauf noch mal überschlagen. Wenn man unvorsichtig ist, dann ist Altivec langsamer.

Wie gesagt. Altivec ist kein Schalter neben dem "Programm erstellen"-Schalter der Entwicklungsumgebung. Aus finanzieller Sicht wird die Altivec-Einheit nicht von Drittherstellern benutzt, oder kaum. Eigentlich benutzt nur Apple diese wirklich extrem.

Das dumme an der Sache ist nur, das nur die G4- und G5-Prozessoren Altivec-Einheiten haben. Der G3 hat z.B. keine. Also müsste man entsprechende Programmteile 2 mal programmieren.

An sich wird Altivec aber schon recht häufig benutzt. Man merkt es nur kaum, da es so direkt nicht genannt wird. Interessiert ja eigentlich auch keinen so direkt. Beispiele?

- UT 2003/UT 2004/AmericasArmy : OpenAL für Sound-Ausgabe; ist Altivec-Optimiert
- Quake3 : Nutzt Altivec ebenfalls für Sound in einer Test-Version
- iMovie : Echtzeit-Vorschau von Effekten
- GarageBand : Generieren der Loops, die man in die Spur zieht
- DVD-Player : Decodieren der DVD, wenn man keine entsprechende Grafikkarte hat
- QuickTime : Ebenso. Video-De/Encodierung
- Flurry-Bildschirmschoner: Errechnen der Bewegungen
- iPhoto : Für die Bildbearbeitung
- iTunes : Erstellen der MP3s, etc.
- VirtualPC : Emulieren von MMX
- iDVD : Wie QuickTime

Also also Altivec als unnütz zu bezeichnen ist nicht gerade der Hit...
 
Und ist es nicht so, dass Altivec mit Mac OS X 10.4 und Xcode 2.0 automatisch stärker genutzt werden wird? Wenn ich mich recht erinnere, soll doch Xcode 2.0 (bzw. der verwendete gcc3.5) in der Lage sein, normalen, nicht für Altivec optimierten Quelltext so zu kompilieren und optimieren, dass er von Altivec gebraucht macht und die fertigen Anwendungen dann schneller laufen als bisher..

Ciao
 
-Nuke- schrieb:
Das dumme an der Sache ist nur, das nur die G4- und G5-Prozessoren Altivec-Einheiten haben. Der G3 hat z.B. keine. Also müsste man entsprechende Programmteile 2 mal programmieren.

Falsch. Man kann's auch so programmieren, dass das Programm im vorhinein überprüft, ob ne AltiVec-Einheit vorhanden ist. Ist keine AltiVec-Einheit vorhanden wird der Vektorcode einfach nicht genutzt und das ganze übernimmt die FPU.

Ausnahmen gibt es. Aber grundsätzlich kein Problem.

Gruss
Kalle
 
ks23 schrieb:
Falsch. Man kann's auch so programmieren, dass das Programm im vorhinein überprüft, ob ne AltiVec-Einheit vorhanden ist. Ist keine AltiVec-Einheit vorhanden wird der Vektorcode einfach nicht genutzt und das ganze übernimmt die FPU.

Ausnahmen gibt es. Aber grundsätzlich kein Problem.

Gruss
Kalle

Ja. Sag ich doch. Dann brauchst du ein und die selbe Routine 2 mal. Einmal Vector-Code und einmal Scalar-Code.
 
ks23 schrieb:
Falsch. Man kann's auch so programmieren, dass das Programm im vorhinein überprüft, ob ne AltiVec-Einheit vorhanden ist. Ist keine AltiVec-Einheit vorhanden wird der Vektorcode einfach nicht genutzt und das ganze übernimmt die FPU.

Das klingt ein wenig so, als würde das automatisch passieren, dass die FPU dann die Arbeit übernimmt. Das ist nicht richtig. Der Programmierer muss tatsächlich auf Nicht-AltiVec-Rechnern eine FPU-Variante der entsprechenden Programmteile anbieten.

Auch die Auswahl der korrekten Codevariante geschieht nicht automatisch, das muss man selbst im Code abfragen, entscheiden und dann entprechend verzweigen.
 
Ja stimmt. Habt beide natürlich Recht.

-Nuke-, hat sich nur so angehört, als ob es zwei Programme (also CDs) geben würde ;)

Gruss
Kalle
 
Zurück
Oben Unten