Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

SSE/SSE2 Unterstützung in Freebasic!

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 21.06.2008, 19:45    Titel: SSE/SSE2 Unterstützung in Freebasic! Antworten mit Zitat

Hallöchchen!

Jeder, der in den Genuss eines tagesaktuellen FBC kommen kann, kann nun auch SSE/SSE2 optimierten Assembler Code generieren lassen:
http://www.freebasic.net/forum/viewtopic.php?t=11587
http://www.freebasic.net/wiki/wikka.php?wakka=CompilerOptfpu

Compileroptionen:
-fpu FPU = normal (i386 tauglich)
-fpu SSE = SSE / SSE2 bei float Variablen (=Single, Double)

oder
Code:

Declare Function Fooo () As Single/Double Option("SSE")

Function Fooo () As Single/Double Option("SSE")
return xyz
End Function
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.06.2008, 20:18    Titel: Antworten mit Zitat

Siehe auch http://www.freebasic-portal.de/index.php?s=reftopic&id=597 ...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 22.06.2008, 01:21    Titel: Antworten mit Zitat

Zitat:
Wird die Option nicht oder -fpu FPU angegeben, benutzt FBC die normalen 387 - Assembleranweisungen für mathematische Operationen.
Bei der Option -fpu SSE werden SSE2 - Assembleranweisungen zur Berechnungen von Single und Double - Variablen benutzt (Es wird vorher geprüft ob der Prozessor fähig ist SSE2 Anweisungen auszuführen. Wenn nicht wird die Option ignoriert.)

Nicht ganz richtig.
Steht btw. auch im englishen Wiki falsch!
Eigentlich 386, aber eh die mit -arch [386|486|586|686] eingestellte CPU Architektur zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 22.06.2008, 01:22    Titel: Antworten mit Zitat

Eigentlich steht überall 387...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 22.06.2008, 01:27    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
Eigentlich steht überall 387...

Ja
Aber das ist doch eben falsch!??!?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 22.06.2008, 01:31    Titel: Antworten mit Zitat

Nö, es geht um die FPU, nicht CPU
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 22.06.2008, 02:09    Titel: Antworten mit Zitat

Achso, ich dachte FPU Architektur = CPU Architektur Autsch!

Also ist FPU Architektur = CPU Architektur + 1 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 22.06.2008, 12:08    Titel: Antworten mit Zitat

Nö. Schließlich hast du in einem modernen Rechner praktisch eine 586er oder 686er CPU, aber eine 387er FPU Zunge rausstrecken
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 22.06.2008, 13:44    Titel: Antworten mit Zitat

Hi,
ist noch etwas komplizierter.
Natürlich hat sich die FPU (Floating Point Unit) mit jeder CPU-Weiterentwicklung auch verbessert, aber der Behlssatz blieb grundsätzlich gleich und es wurden in den SP() Registern der FPU die Ein- und Ausgabe der Single/Double-Werte erwartet.

Die SIMD-Erweiterungen (Single Instruction Multiple Data) der Prozessoren brachte langsam auch Befehlserweiterungen für Gleitkommaberechnungen.

MMX unterstützt keine Single/Double-Berechnungen, im Gegenteil die SP-Register werden als mmx-Register (64Bit) mit benutzt.
Bei SSE werden nur 32 Bit floating point Datentypen (Single) unterstützt.
Der SSE2 Befehlssatz unterstützt auch Double (64 Bit floating point Datentypen) für die XMM Register.

Mit SSE2 fähigen Prozessoren kann man so alle Single/Double-Berechnungen in den Xmm-Registern (wesentlich schneller, teilweise mehrere Werte gleichzeitig) machen.
Nachteil: dies kann nur in SSE2 fähigen Prozssoren gemacht werden (SSE fähige Prozessoren können keine Double-Werte in xmm-Registern bearbeiten).

28398 hat Folgendes geschrieben:
Jeder, der in den Genuss eines tagesaktuellen FBC kommen kann, kann nun auch SSE/SSE2 optimierten Assembler Code generieren lassen:

Nur für die Single/Double-Berechnungen, der restliche Code wird nicht optimiert.

Wer seine CPU mal testen will: Neue fb_CpuDetect
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 22.06.2008, 14:14    Titel: Antworten mit Zitat

Danke für die ausführliche Erklärung, volta. Jetzt verstehe ich das gleich viel besser^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz