lowrider20
Captain
- Registriert
- Apr. 2011
- Beiträge
- 4.069
Du Kasperl! Was Microsoft bei Markteinführung von Windows 11 ausgesperrt hat, ist dir wohl entfallen.Nagilum99 schrieb:Auf einem 386er
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Du Kasperl! Was Microsoft bei Markteinführung von Windows 11 ausgesperrt hat, ist dir wohl entfallen.Nagilum99 schrieb:Auf einem 386er
foofoobar schrieb:Oder bis der I-Cache unwirksam wird.
Das wird sich Intel in Zukunft nicht mehr leisten können.
Ja hab grad nochmal geschaut was Moore's law an leaks präsentiert hat und hast wohl recht betrifft wohl mehr die x3d, ansonsten kommt man vor allem neben mehr cores (auch pro CCD) und immerhin auch mehr Cache ohne x3d auf nen deutlich überarbeiteten Speicherkontroller, was bisher bei AMD eher ein Flaschenhals war.DKK007 schrieb:Also der L3 Cache wandert dann insgesamt in eine neue Ebene, nicht nur der zusätzliche bei den X3D?
Natürlich nicht. Aber bis heute kannst du das System ja trotzdem darauf betreiben - es ist nur lästiger geworden. Zwangsläufig müssen aber irgendwann Zöpfe abgeschnitten werden um moderne Systeme effizient zu nutzen und Ballast abwerfen zu können.lowrider20 schrieb:Du Kasperl! Was Microsoft bei Markteinführung von Windows 11 ausgesperrt hat, ist dir wohl entfallen.
Die Erläuterung ergibt viel mehr Sinn als wa Devpandi oben schrieb.mae schrieb:Ein anderer Vorteil von APX ist, dass "A = B-C" nicht mehr wie bei AMD64 normalerweise in zwei Befehle "A = B; A=A-C" aufgeteilt werden muss; letzteres kostet mehr Resourcen im Front End.
Und genau darauf bezieht sich meine Aussage. Es funktioniert OHNE Einschränkungen. Trotzdem wird es einem auf normalen Wege verwehrt. Und das zu Zeiten überhöhter Preise (2021 durch Pandemie, aktuell nicht besser) mit einer Funktion, welche eigentlich nur für Firmen relevant bzw. von Interesse wäre.Nagilum99 schrieb:es ist nur lästiger geworden
Faktisch ist's ja ganz einfach: Sie haben das sicher schon sehr lange geplant und das konsequent umgesetzt.lowrider20 schrieb:Und genau darauf bezieht sich meine Aussage. Es funktioniert OHNE Einschränkungen. Trotzdem wird es einem auf normalen Wege verwehrt. Und das zu Zeiten überhöhter Preise (2021 durch Pandemie, aktuell nicht besser) mit einer Funktion, welche eigentlich nur für Firmen relevant bzw. von Interesse wäre.
Was aber wenig mit der Anzahl der Register zu tun hat.Nagilum99 schrieb:Die Erläuterung ergibt viel mehr Sinn als wa Devpandi oben schrieb.
Dieser Krempel ist ja nur noch für den Desktop relevant.DavidXanatos schrieb:Ach meno.. da sehe ich schon die nächste schrott laviene anrollen, windows 14 wird sicher APX vorraussätzen.
Ah ja, in den ein + durch ein - getauscht wird und der Text: das verhindert, dass eine Kopie von Angelegt werden muss, ist natürlich dann mit einem A = B er gibt dann mehr Sinn.Nagilum99 schrieb:Die Erläuterung ergibt viel mehr Sinn als wa Devpandi oben schrieb.
Auf den I-Cache in einer Hochsprache zu optimieren zu optimieren stelle ich mir gruselig vor, weil kleinere Änderungen im Code oder ein neues Compiler-Release den erzeugten Code ziemlich verändern kann.mae schrieb:Wir haben bei einem aehnlichen Thema versucht, durch Wiederverwendung von Code-Stuecken die I-Cache miss rate zu reduzieren. Aber im Ergebniss ist sie gestiegen; die Erklaerung dafuer war, dass die schlechtere Ausnutzung der Cache-Lines zu mehr cache misses gefuehrt hat als durch die Wiederverwendung eingespart wurden.
Welches sind diese guten Gründe?stefan92x schrieb:@foofoobar Rekursion ist aus guten Gründen eher ungern gesehen.
Das hat weniger mit dem Betriebsystem noch mit Limitierungen beim Stack zutun, als viel mehr, dass dir jede "schlecht" optimierte Rekursion irgendwann auf die Füße fällt, sei es, weil die Rückgabewerte nicht einfach "durchgeschliffen" werden, oder man bei Baumstrukturen quasi bis in die tiefste Ebene geht und der Speicher vollläuft.foofoobar schrieb:Welches sind diese guten Gründe?
GENAU deswegen macht man solche "händischen" Optimierungen heute nicht mehr, sondern überlässt das dem Compiler und beschränkt sich selbst auf Optimierungen, die man im Code selbst direkt vornehmen kann.foofoobar schrieb:Auf den I-Cache in einer Hochsprache zu optimieren zu optimieren stelle ich mir gruselig vor, weil kleinere Änderungen im Code oder ein neues Compiler-Release den erzeugten Code ziemlich verändern kann.
State auf dem Stack braucht mehr Speicher?DevPandi schrieb:Das hat weniger mit dem Betriebsystem noch mit Limitierungen beim Stack zutun, als viel mehr, dass dir jede "schlecht" optimierte Rekursion irgendwann auf die Füße fällt, sei es, weil die Rückgabewerte nicht einfach "durchgeschliffen" werden, oder man bei Baumstrukturen quasi bis in die tiefste Ebene geht und der Speicher vollläuft.
Zeig mal ein Beispiel.DevPandi schrieb:Deswegen gibt es ja die ganzen Hilkfskonstrukte, dass man zum Beispiel einen Baum in ein "eindimensionales" Array überführt, in dem man mit einer "Hilfsinformation" anzeigt, in welcher Ebene man ist. Oder dass man - wie in meinem Beispiel - mit weiteren Parameter arbeitet, die man einfach übergibt, damit man am Ende einfach zurück läuft oder, wenn man auf solche Hilfskonstrukte verzichtet, dass man eine maximale Tiefe festlegt, bis zu der die Rekursion ausgerführt wird.
GENAU deswegen macht man solche "händischen" Optimierungen heute nicht mehr, sondern überlässt das dem Compiler und beschränkt sich selbst auf Optimierungen, die man im Code selbst direkt vornehmen kann.
Zum Beispiel eben unnötige Rekursionen auflösen, komplexe Baumstrukturen auf eine Dimension mit Hilfsvariablen/Daten reduzieren. Der Compiler erstrellt daraus dann komplexe Graphen, anhand er dann die Optimierungen vornimmt.
Und gerade, wenn man die eigenen Programme möglichst ohne großen Aufwand auf verschiedene Zielplattformen (Hardware) bringen will, lässt man erst recht von solchen "Mikrooptimierungen" heute die Hand. Im besten Fall gewinnt man in der regel nicht nennenswert an Geschwindigkeit. Im schlimmsten Fall versaut man alles für den Compiler.
foofoobar schrieb:Auf den I-Cache in einer Hochsprache zu optimieren zu optimieren stelle ich mir gruselig vor, weil kleinere Änderungen im Code oder ein neues Compiler-Release den erzeugten Code ziemlich verändern kann.
Und typischerweise sind es ja kleine Schleifen wo die Zeit liegen bleibt.
DevPandi schrieb:Ah ja, in den ein + durch ein - getauscht wird
Ein relativ simples Beispiel - man muss es ja nicht unnötig aufblähen:foofoobar schrieb:Zeig mal ein Beispiel.
funktion printTree(element) {
print element.name;
if (has(element.sub)) {
printTree(element.sub)
}
}
Ja, auch absolut Okay, am Ende hätte ich auch das schreiben können:mae schrieb:Der Grund, warum ich in meinem Beispiel - verwendet habe: AMD64 kann mit dem LEA-Befehl schon A=B+C in einem Befehl erledigen. Bei anderen Operationen als + geht's aber nicht.
// bisher
A = 1;
B = 2;
C = 3;
D = A;
A = A + B;
E = A;
A = D;
A = A + C;
// A = 4
// B = 2
// C = 3
// D = 3
// Mit APX
A = 1;
B = 2;
C = 3;
D = A + B;
E = A + C;
DevPandi schrieb:Ein relativ simples Beispiel - man muss es ja nicht unnötig aufblähen:
Gib dem genug Element und entsprechende Tiefe, und das Ding knallt irgendwann weil entweder der SpeichervolläuftCode:funktion printTree(element) { print element.name; if (has(element.sub)) { printTree(element.sub) } }
function parseName(element) {
returnValue = element.name;
if (has(element.subs)) {
foreach (element.subs as sub) {
returnValue .= parseName(sub);
}
}
return returnValue
}
blackiwid schrieb:Ja hab grad nochmal geschaut was Moore's law an leaks präsentiert hat und hast wohl recht betrifft wohl mehr die x3d, ansonsten kommt man vor allem neben mehr cores (auch pro CCD) und immerhin auch mehr Cache ohne x3d auf nen deutlich überarbeiteten Speicherkontroller, was bisher bei AMD eher ein Flaschenhals war.
"Non monolyptic Zen 6 products werden "bridge dies" nutzen um sie zu higher speed IOD zu verbinden.
Wobei es da um Medusa geht war das nicht nur die Laptop Varianten?
Hast du dir das noch mal durchgelesen, bevor du es abgeschickt hast?DevPandi schrieb:Ah ja, in den ein + durch ein - getauscht wird und der Text: das verhindert, dass eine Kopie von Angelegt werden muss, ist natürlich dann mit einem A = B er gibt dann mehr Sinn.
AFAIK müssen sich Intel und AMD jede Erweiterung zur x86 ISA Cross-Lizensieren. War (wieder AFAIK) wichtiger Bestandteil der Abmachungen, die den Rechtsstreit zwischen den beiden Firmen beendete. Und diese Verpflichtungen sind keine Einbahnstraße, denn so kam Intel zu den 64 Bit Erweiterungen (x64), die ja von AMD entwickelt wurden.DevPandi schrieb:Nein, das ist an der Stelle vollkommen falsch!
APX erweitert die grundlegende x86-ISA um 16 weitere Register, sowie die Möglichkeit, dass viele Operationen ab jetzt nicht mehr zwangsweise ein Register überschreiben.
Für letzteres kurzes BeispielA = A + B. Das kann nun auch einA = B + Csein. Das verhindert an der Stellen, dass eine Kopie von einem Register angelegt werden muss - womit man sich eben genau das sparrt und mit den andegen beiden Registern weiter arbeiten kann.
Die Vergrößerung von 16 auf 32 Register wiederum ist für den Compiler primär wichtig, weil weniger Load, Store, sowie eben Copy-Anweisungen im Binary zu finden sind. Auch für die µ-Arch kann das später vorteile haben, weil das Programm wesentlich länger mit den vorhanden Registern arbeiten kann - das "Fehlen" von Load- und Store-Anweisungen entlasstet an der Stelle die Infrastruktur der CPU. Ebenso wird es für OoO und die spekulative Ausführung einfacher, weil zwar weiterhin hier mit Schattenregister und Register-Renaming gearbeitet wird, gleichzeitig sinkt jedoch der Aufwand für dessen Verwaltung.
Damit ist es am Ende auch einfacher für einen Thread einen CPU-Kern wirklich auszulasten, weil man nicht auf Daten im Cache oder schlimmsten Fall RAM warten muss, viel mehr Optionen hat Werte "zwischen" Zulagern direkt im Kern und am Ende die Verwaltung dessen auch einfacher wird.
Nein, es ist nicht kompatibel mit älterere Software, die alte Software kann weiterhin nur die 16 Register nutzen. Damit die Software es nutzen kann, muss sie neu kompiliert werden.
So richtig wird sich APX sobald man auch weiß, ob AMD hier "mitziehen" darf. Bis dahin klingt APX toll und wird bei Software, die APX unterstützt auch dafür sorgen, dass die Kerne besser ausgelastet werden können. Die breite Unterstütztung wird allerdings erst kommen, wenn AMD es auch hat.
Nein, nicht mehr Leistung durch Schalter und auch hier nicht per Software. APX ist eine ISA-Erweiterung und hat entsprechende Auswirkung direkt auf die Hardware, weil die ISA bestimmte, was die Hardware machen kann.