Quicksort mit 32-Bit Integerwerten

  • Hallo Andy !

    Ich meine die 128Bit-Media-Instructions, also die Referenz der SSE-Befehle Public.nr. #26568. In den neueren Versionen ist keine einzige (!) grafische Entsprechung. Kein Wunder, dass so gut wie niemand diese Befehlserweiterungen nutzt, übrigens auch per Intrinsics aus diversen Hochsprachen heraus, wenn niemand auch nur annähernd lt. der Beschreibung in der Lage ist nachzuvollziehen, was diese Befehle überhaupt bewirken!

    Der Witz dabei ist, dass jeder sofort anhand der grafischen Entsprechung im Debugger SEHEN kann, wie die Inhalte der 128-Bit-Register aussehen sollten.

    Erst mal 'Danke' für die schnelle Antwort !

    Die von Dir in Beitrag #20 als Beispiel gezeigte Grafik stammt ja aus :

    AMD64 Architecture - Programmer’s Manual Volume 4 - 128-Bit Media Instructions

    Publication No.=26568 Revision=3.10 Date=September 2007 -> HADDPD -> Seite 111 ff.

    In der aktuellen Revision 3.21 der Publication No. 26568 (Dezember 2017) fehlt diese Grafik (für Interessierte -> siehe Seite 141 ff.). Nachdem ich mir die Revisionen etwas genauer angesehen habe trifft das, wie Du bereits geschrieben hast, leider wirklich auf viele der erklärenden Grafiken zu.

    Mir fällt, offen gesagt, kein plausibler Grund ein, warum sich die Qualität der Dokumentation im Rahmen der Revisionen derart verschlechtert hat - oder wurde sie absichtlich verschlechtert !?.

    Anschlussfrage (hoffentlich nerve ich Dich nicht :)) :

    Wie sieht es mit den Volumes 1,2,3 und 5 aus. Wären auch hier die älteren Revisionen vorzuziehen, und falls ja, hättest Du die Downloadlinks ?

    Irgendwie komme ich, trotz Zeitmangel, doch etwas auf den Geschmack ;).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Mir fällt, offen gesagt, kein plausibler Grund ein, warum sich die Qualität der Dokumentation im Rahmen der Revisionen derart verschlechtert hat - oder wurde sie absichtlich verschlechtert !?.

    Tja, mit dem weiteren Hintergrundwissen, dass zu den ursprünglich in diesem Dokument verwendeten 128-Bit Befehlen die (zugegeben in der Funktion, aber NICHT in der Anwendung (!) ) erweiterten 256-Bit-SSE- und 512-Bit-AVX-Befehle "dazugeschustert" wurden, gehe ich persönlich davon aus, dass dort einfach jemand keinen Bock hatte, ein gutes und lesbares Dokument entsprechend zu erweitern sondern seinen eigenen Mist verzapft hat.

    Ich jedenfalls weigere mich, mit solch einem unzumutbaren Müll zu arbeiten. Ich bin seit vielen Jahren AMD-Fanboy und kann mir daher auch rückblickend ein Urteil erlauben. TYPISCH AMD! Anfangs ein innovatives TOP-Produkt entwickeln und auf den Markt bringen, aber letztendlich mit aller Gewalt vermeiden, dass es zum durchschlagenden Erfolg wird! Das ist seit jeher so! Da fehlen Treiber oder funktionieren nicht (richtig) und man wartet monatelang auf Updates, Dokumentation ist grottenschlecht bzw. meist garnicht vorhanden, und "Support" ist völlig unbekannt...:Face:

    Wie das marktwirtschaftlich "richtig" gemacht wird, zeigt Intel jedes Jahr aufs neue mit Milliardengewinnen. Das Produkt performancetechnisch nicht oder nur marginal weiterentwickeln aber massiv die Werbetrommel rühren. Doc´s sind schon bei Produktstart fast vollständig und benutzbar (bis auf SSE/AVX :o) ), man stellt für seinen Prozessor die besten Compiler und Bibliotheken zur Verfügung und eine effektive Kundenbetreuung ist selbstverständlich! Preis?! SPIELT ÜBERHAUPT KEINE ROLLE!!!

    Übrigens sei dem Interessierten ans Herz gelegt, zu den SSE/AVX-Befehlen die entsprechenden Intel-Doc´s anzuschauen. Nicht bebildert, wall of text....man könnte meinen, Intel hätte den für diesen Mist verantwortlichen Mitarbeiter bei AMD eingeschleust, um deren "bessere" Dokumentation an den Marktführer "anzupassen":rofl:

    Btt.:

    Anschlussfrage (hoffentlich nerve ich Dich nicht ) :

    Wie sieht es mit den Volumes 1,2,3 und 5 aus. Wären auch hier die älteren Revisionen vorzuziehen, und falls ja, hättest Du die Downloadlinks ?

    Du nervst nicht.

    Bzgl. der Revisionen sollte sich jeder ein eigenes Bild machen. Leider wird das dadurch erschwert, dass die älteren Versionen nicht mehr downzuloaden sind. Imho wurden noch vor einigen Jahren auf der Website die früheren Revisionen verlinkt. Ich jedenfalls finde diese Versionen nicht mehr.

    Definitiv hat ein Compiler große Schwierigkeiten, SSE- bzw. AVX-Befehlsketten ein(bzw. um)zusetzen. Daher sind gerade in diesem Segment durch "handoptimierten" Code massive Performanceschübe möglich! Intrinsics sind genau dafür eingeführt worden!

    Irgendwie komme ich, trotz Zeitmangel, doch etwas auf den Geschmack .

    Hau rein :D

  • Hallo Andy !

    Bzgl. der Revisionen sollte sich jeder ein eigenes Bild machen. Leider wird das dadurch erschwert, dass die älteren Versionen nicht mehr downzuloaden sind. Imho wurden noch vor einigen Jahren auf der Website die früheren Revisionen verlinkt. Ich jedenfalls finde diese Versionen nicht mehr.

    Da ich inhaltlich z.Zt. nur wenig beitragen kann, habe ich mal die 'Fußarbeit' des Suchens übernommen^^.

    Vielleicht hilft es dem einen oder anderen ja weiter !

    Hier das gesamte Manual (Stand 2007, also wie in deinem Link zu Volume 4) :

    Volume 1 : Publication No.=24592 Revision 3.14 ( September 2007)

    http://pdinda.org/icsclass/doc/A…Programming.pdf

    Volume 2 : Publication No.=24593 Revision 3.14 (September 2007)

    http://pdinda.org/icsclass/doc/A…Programming.pdf

    Volume 3 : Publication No.=24594 Revision 3.14 (September 2007)

    http://pdinda.org/icsclass/doc/A…nstructions.pdf

    Volume 4 : Publication No.=26568 Revision 3.10 (September 2007)

    http://pdinda.org/icsclass/doc/A…nstructions.pdf

    Volume 5 : Publication No.=26569 Revision 3.09 (September 2007)

    http://pdinda.org/icsclass/doc/A…nstructions.pdf

    Ggf. auch interessant :

    Publication No.=43479 Revision 3.01 (August 2007)

    http://pdinda.org/icsclass/doc/A…SSE5_Instrs.pdf

    Publication No.=25481 Revision 2.26 (July 2007)

    http://pdinda.org/icsclass/doc/A…ecification.pdf

    Publication No.=34434 Revision1.20 (February 2007)

    http://pdinda.org/icsclass/doc/A…ecification.pdf

    Zu :

    AMD64 Architecture - Programmer’s Manual Volume 1 - Application Programming

    Aktuell : Publication No.=24592 Rev.=3.22 Date=December 2017

    Ich habe mal nach einer möglichst alten Revision gesucht, und die 3.09 (Sept. 2003) gefunden. Ein kurzer Vergleich mit der aktuellen Revision 3.22 zeigt, dass hier die meisten Grafiken erhalten geblieben sind.

    Offenbar leiden nicht alle Volumes unter dem angesprochenen Qualitätsverfall ;).

    Nebenbei : Warum kann man im Bereich Skripte nur Dateien bis max. 1 MB (und nicht 5 MB) hochladen ?

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."