PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Performance-Steigerung für Itanium bei IA32-Anwendungen unter 64Bit Windows?


Aqualon
2004-01-14, 17:53:23
Laut http://heise.de/newsticker/data/anw-14.01.04-007/ hat Microsoft einen IA32 Execution Layer für Windows veröffentlicht, der IA32 simuliert und IA32-Code in IA64-Code umwandelt. Dies soll für eine Performancesteigerung sorgen, wieviel ist allerdings nicht gesagt worden.

Die Datei für alle Itanium-User hier, gibt es zum Download unter http://www.microsoft.com/downloads/details.aspx?FamilyID=35620c5a-17ed-4638-a39d-b40332a30ee9&DisplayLang=en

Aqua

Tiamat
2004-01-14, 18:08:51
Damit soll der Itanium unter IA32 die Performance eines 1.5Ghz Willamettes erreichen.
Eigentlich nicht schlecht wenn man bedenkt das es eine
Emulation ist.

P.S : Hier findet sich sicher nicht mal ein Itaniumuser ;)

LOCHFRASS
2004-01-14, 18:29:48
Original geschrieben von Tiamat
P.S : Hier findet sich sicher nicht mal ein Itaniumuser ;)

Wenn ich das Geld (und ein AKW im Garten) hätte, ein Keller voll Quad Itanium 2 Systeme nur für SETI... :freak:

Aqualon
2004-01-14, 18:35:30
Original geschrieben von Tiamat
Damit soll der Itanium unter IA32 die Performance eines 1.5Ghz Willamettes erreichen.
Eigentlich nicht schlecht wenn man bedenkt das es eine
Emulation ist.


Im Vergleich zur bisherigen On-Chip-Emu ist das wirklich ne große Steigerung. Wirklich sehr beachtlich, wenn die Performance wirklich in diesem Bereich liegen sollte.

P.S : Hier findet sich sicher nicht mal ein Itaniumuser ;)
Als Privatuser wahrscheinlich nicht, aber vielleicht hat jemand Itaniums in der Firma im Einsatz und interessiert sich dafür.

Aqua

BlackBirdSR
2004-01-14, 18:40:11
Original geschrieben von Aqualon
Im Vergleich zur bisherigen On-Chip-Emu ist das wirklich ne große Steigerung. Wirklich sehr beachtlich, wenn die Performance wirklich in diesem Bereich liegen sollte.


Als Privatuser wahrscheinlich nicht, aber vielleicht hat jemand Itaniums in der Firma im Einsatz und interessiert sich dafür.

Aqua

es gibt keine onChip Emu.
Der Itanium hat IA32 Decoder, die den Code in IA64 Befehle umwandeln.
Was natürlich nicht besonders schnell ist, wenn man das nicht optimieren kann.

Per Software sieht das schon viel besser aus.

Aqualon
2004-01-14, 18:44:20
Original geschrieben von BlackBirdSR
es gibt keine onChip Emu.
Der Itanium hat IA32 Decoder, die den Code in IA64 Befehle umwandeln.
Ok, dann ist die bisherige IA32-Ausführung auf dem Itanium in Hardware vom Grundsatz nichts anderes als dieser Execution Layer. Die Software-Ausführung bietet aber mehr Möglichkeiten zur Code-Optimierung und ist deswegen performanter, oder?

Aqua

Bokill
2004-01-14, 19:08:24
Wer braucht einen Xeon bei 1,5 GHz?

Das ist doch nur ein Marketinggag... zufälligerweise ist der Konkurrent in 32Bit deutlich leistungsfähiger...

äh falsch sind ja gar keine Konkurrenten ;) :)

Aqualon
2004-01-14, 19:17:14
Ich denke nicht, dass dieser Execution Layer dafür geschrieben wurde, um den Dauerbetrieb mit 32Bit Software auf dem Itanium zu ermöglichen. Das ist nur eine performantere Rückfallmöglichkeit, wenn mal doch 32Bit Software auf einem Itanium ausgeführt werden soll.

Aqua

LOCHFRASS
2004-01-14, 21:45:50
Original geschrieben von Bokill
zufälligerweise ist der Konkurrent in 32Bit deutlich leistungsfähiger...

32 Bit? Die Konkurrenz hat doch schon seit Jahren 64 Bit CPUs... :kratz2:

zeckensack
2004-01-14, 21:57:51
Original geschrieben von Bokill
Wer braucht einen Xeon bei 1,5 GHz?

Das ist doch nur ein Marketinggag... zufälligerweise ist der Konkurrent in 32Bit deutlich leistungsfähiger...

äh falsch sind ja gar keine Konkurrenten ;) :) Stimmt. Der Itanium ist keine Konkurrenz für den K8.

GloomY
2004-01-14, 23:29:05
Ist ja schön und gut mit der verbesserten Performance. Jedoch ist eines der Features von IA64, dass der Compiler der CPU Informationen über den Programmverlauf mitgeben kann (Predication). Diese Informationen sind durch lange Berechnungen zur Compilierzeit oder durch (mehrfaches) Ausführen des Codes mit anschließender Analyse (Profiling) entstanden.

Bloß wo sind diese Informationen bei IA64 Code, der aus x86 Code entstanden ist? Nirgendwo. Denn x86 hat keinerlei Predication und zur Laufzeit kann man diese auch nicht mal eben schnell erzeugen, weil das unheimlich (Rechen-) Zeit braucht.

Ergo: x86 wird auf IA64 niemals perfekt laufen. Anders herum ist das schon möglich, denn dann verwirft man die Predication Informationen einfach. IA64 wird immer Probleme mit nativem Code haben, der keine Predication beinhaltet. Wo nichts ist, kann man auch nichts herzaubern. ;)

Bokill
2004-01-14, 23:39:48
32 Bit? Die Konkurrenz hat doch schon seit Jahren 64 Bit CPUs...

Stimmt HP mit PARISC, ... soll eingestampft werden ...

Sun SPARC`s, ... sinkende Marktanteile ...

DEC`s Alphas, Tod & von Intel aufgekauft ...

MIPS, hat sich in den Embeded Bereich gerettet ...

waren alle schon vorher da.

Nur der PPC hat sich in der 64Bit Ecke mehr als irgendwie halten können.

Über die Gründe habe ich mich im Forum ja schon mehrfach ausgelassen.

BlackBirdSR
2004-01-15, 10:33:57
Original geschrieben von GloomY
Ist ja schön und gut mit der verbesserten Performance. Jedoch ist eines der Features von IA64, dass der Compiler der CPU Informationen über den Programmverlauf mitgeben kann (Predication). Diese Informationen sind durch lange Berechnungen zur Compilierzeit oder durch (mehrfaches) Ausführen des Codes mit anschließender Analyse (Profiling) entstanden.

Bloß wo sind diese Informationen bei IA64 Code, der aus x86 Code entstanden ist? Nirgendwo. Denn x86 hat keinerlei Predication und zur Laufzeit kann man diese auch nicht mal eben schnell erzeugen, weil das unheimlich (Rechen-) Zeit braucht.

Ergo: x86 wird auf IA64 niemals perfekt laufen. Anders herum ist das schon möglich, denn dann verwirft man die Predication Informationen einfach. IA64 wird immer Probleme mit nativem Code haben, der keine Predication beinhaltet. Wo nichts ist, kann man auch nichts herzaubern. ;)

schon klar,
allerdings erlaubt dieser Softwarelayer, zukünftige IA64 CPUs etwas abzuspecken.
Man braucht die x86 Einheiten nicht mehr, und kann einiges an Transistoren weglassen.(und dafür einfach noch mehr Cache draufklotzen. Wenn wir schon nicht die beste CPU haben, dann eben am meisten Cache :P)

Muh-sagt-die-Kuh
2004-01-15, 11:46:25
Netter Artikel zu DECs FX-32!, Transmetas CMS und eben Intels IA-32 EL mit Details wie diese arbeiten, dazu noch ein paar Daten wie IA-32 EL in SPEC CPU 2000 läuft:

http://www.realworldtech.com/page.cfm?ArticleID=RWT122803224105

Muh-sagt-die-Kuh
2004-01-15, 11:52:28
Original geschrieben von GloomY
...dass der Compiler der CPU Informationen über den Programmverlauf mitgeben kann (Predication). Diese Informationen sind durch lange Berechnungen zur Compilierzeit oder durch (mehrfaches) Ausführen des Codes mit anschließender Analyse (Profiling) entstanden.Wenn ich nicht völlig falsch liege bezeichnet Predication bei IA-64 doch das parallele Durchrechnen des if und else Teils einer Bedingung...

GloomY
2004-01-16, 01:48:46
Original geschrieben von Muh-sagt-die-Kuh
Wenn ich nicht völlig falsch liege bezeichnet Predication bei IA-64 doch das parallele Durchrechnen des if und else Teils einer Bedingung... Ja, aber das geht nicht, ohne dass der Compiler dafür sorgt (wie so oft bei IA64). Und genau das geht mit Predication. Automatisch macht das keine IA64 CPU.

Bei einem bedingten Sprung bekommen die Befehle aus den beiden Verzweigungen ein Predication Flag zugewiesen (je eins für alle Befehle pro Pfad). Wenn die Bedingung ausgewertet ist, werden alle Befehle in der Pipeline verworfen, wo das Flag nicht gesetzt ist und der Rest beibehalten.
Original geschrieben von BlackBirdSR
schon klar,
allerdings erlaubt dieser Softwarelayer, zukünftige IA64 CPUs etwas abzuspecken.
Man braucht die x86 Einheiten nicht mehr, und kann einiges an Transistoren weglassen.(und dafür einfach noch mehr Cache draufklotzen. Wenn wir schon nicht die beste CPU haben, dann eben am meisten Cache :P) Ich weiss nicht, ob man da wirklich viel einsparen kann. Bei der bisherigen x86 Emulation waren die x86 Register z.B. auch nicht seperat vorhanden sondern waren in den ersten 8 IA64 GPRs gespeichert usw. Der Großteil des Dies ist doch sowieso Cache...

BlackBirdSR
2004-01-16, 05:32:50
Original geschrieben von GloomY

Ich weiss nicht, ob man da wirklich viel einsparen kann. Bei der bisherigen x86 Emulation waren die x86 Register z.B. auch nicht seperat vorhanden sondern waren in den ersten 8 IA64 GPRs gespeichert usw. Der Großteil des Dies ist doch sowieso Cache...

naja, aber wenn das mit den 20Mio Logik + 6 Mio für x86 Ausführung stimmt, dann spart man durchaus eine Menge Verlustleistung ein, kann den Takt gegebenfalls erhöhen etc.
Der Cache ist in dem Sinne ja nicht ausschlaggebend.

GloomY
2004-01-16, 10:07:58
Original geschrieben von BlackBirdSR
naja, aber wenn das mit den 20Mio Logik + 6 Mio für x86 Ausführung stimmt, dann spart man durchaus eine Menge Verlustleistung ein, kann den Takt gegebenfalls erhöhen etc.
Der Cache ist in dem Sinne ja nicht ausschlaggebend. Woher hast du diese Zahlen? Sind das offizielle Angaben von Intel?

Sind die 20 Mio. insgesamte Logik oder nur für x86?

BlackBirdSR
2004-01-16, 11:53:22
Original geschrieben von GloomY
Woher hast du diese Zahlen? Sind das offizielle Angaben von Intel?

Sind die 20 Mio. insgesamte Logik oder nur für x86?

Paul hat sie erwähnt beim seinem Artikel der auf Realworldtech verlinkt ist.

20Mio für die Core Logik des Madison, und 6Mio (davon?) für die x86 Logik.
Sind Schätzungen, aber wenn Paul Scheisse schreibt, wird das innerhalb von Stunden auffallen und korrigiert. Das lesen zu viele in der Industrie. Also nehme ich das vorerst mal als "wahrscheinlich zutreffend" an.

Muh-sagt-die-Kuh
2004-01-16, 11:58:52
Original geschrieben von GloomY
Ja, aber das geht nicht, ohne dass der Compiler dafür sorgt (wie so oft bei IA64). Und genau das geht mit Predication. Automatisch macht das keine IA64 CPU.

Bei einem bedingten Sprung bekommen die Befehle aus den beiden Verzweigungen ein Predication Flag zugewiesen (je eins für alle Befehle pro Pfad). Wenn die Bedingung ausgewertet ist, werden alle Befehle in der Pipeline verworfen, wo das Flag nicht gesetzt ist und der Rest beibehalten.I know...irgendwas muss mir an deiner Formulierung nicht gefallen haben, was es war weiss ich jetzt auch nicht mehr ;)

Coda
2004-01-17, 15:11:58
Eigentlich nicht schlecht wenn man bedenkt das es eine
Emulation ist.
Java und C# erreichen auch gute Geschwindigkeiten und das is im Prinzip genau das gleiche (JIT Compiler)