Aktuelle Zeit: 02.12.2020 14:35

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: FastMem - Include [ASM]
BeitragVerfasst: 27.06.2009 11:29 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Wrapper für die Copy & Move - Memory Funktionen der ASM - Lib von http://www.agner.org/optimize/ .

In meinem Test ist die CopyMemory Funktion bis zu >10x schneller als CopyMemory() in PB. Die Funktionen benötigen einen Prozessor mit SSE-Support.

Download:

http://paladiumproject.q-soft.ch/public ... astMem.zip

//Edit: Update, 11:40:

Das Include prüft nun automatisch ob die benötigte SSE-Funktionalität vorhanden ist und verwendet ansonst die Standard PB - Funktionen.

_________________
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 27.06.2009 18:23 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Update:
  • Wrapper für Windows/Linux/MacOS x86 & x64 komplett
  • MoveMemory() per Compiler-Switch abwählbar (spart ~5Kb)


Download im 1. Post

Gruß, Alex

_________________
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 13:39 
Offline
Benutzeravatar

Registriert: 15.04.2007 17:58
So "fast" ist das hier aber nicht :wink::
Zitat:
PB: 344 ms
ASM: 938 ms


Windows 7 x64 + Core2Duo E8400 @ 3.6 GHz

_________________
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 13:41 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
milan1612 hat geschrieben:
So "fast" ist das hier aber nicht :wink::
Zitat:
PB: 344 ms
ASM: 938 ms


Windows 7 x64 + Core2Duo E8400 @ 3.6 GHz


Mit welchen Speicherblöcken bzw. mit wie vielen Wiederholungen hast du den Test gemacht? Wenn der Speicherblock > dem L2 Cache des Prozessors ist sollte die ASM - Version viel schneller sein.

SSSE3 sollte dein Prozessor eigentlich unterstützen:
http://software.intel.com/en-us/article ... mizations/

Bzw. hast dus schonmal unter x86 getestet?

_________________
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 13:50 
Offline
Benutzeravatar

Registriert: 15.04.2007 17:58
Habs mal mit den verschiedensten Kombinationen ausprobiert und komm immer auf Ergebnisse
wo PB ca. doppelt bis 2.5-fach schneller ist. Hab jetzt keine Lust ne x86 Version zu installieren.

Du hast ne PM...

_________________
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 14:15 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Ok.

Hats sonst noch jemand getestet? Würde mich interessieren was sonst für Werte rauskommen. (Immer mit Angabe von Prozessor und Speicher - Blockgröße da es entscheidend ist ob man Blöcke > oder < L2/L3 - Cache verwendet).

Gruß, Alex

_________________
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 14:22 
Offline
Benutzeravatar

Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Bei mir ist es auch nur ca. 2mal so schnell wie PB

PB-1711
ASM-989


Bei mehrenen verschiedenen durchläufen mit verschiedenen größen, kommt es eigentlich immer auf das gleiche.

Windows 7 X86 -AMD Turion X2 RM-70 Prozessor mit 2 GHz Taktfrequenz


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 14:28 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Mhm, dein Turion unterstützt kein SSSE3, daher wird er den SSE2 Code nehmen.

Gruß, Alex

_________________
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 15:08 
Offline
Benutzeravatar

Registriert: 26.06.2008 10:42
Hab jetzt mal ein bisschen herumprobiert und festgestellt das PB bei Werten die +-48 um den L2 Cache liegen wessentlich langsamer ist als ASM (>10x) und sonst ASM zwischen gleichschnell und bis zu 2.5x schneller schwankt.

Also Ich hab 8 MB (2 * 4 MB) L2 Cache, und bei Werte die durch 4 MB teilbar sind bricht bei PB der Speed ein.

_________________
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 28.06.2009 15:36 
Offline
Benutzeravatar

Registriert: 12.06.2005 11:15
Wohnort: Germany
Man sollte vieleicht noch anmerken das PB die memcpy Procedur der MSVCRT.dll nutzt.

Vieleicht ist es sinnvoll noch die Versionsnummer der DLL mit in den Vergleich einzubeziehen. Könnte mir vorstellen das es verschiedene Versionen gibt, z.B. das Win7 ne neue Version mit optimierter Kopierprozedur mitliefert.

_________________
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye