Aktuelle Zeit: 15.10.2018 16:56

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 17.04.2018 18:55 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Hallo Leute,

ich wundere mich gerade etwas über die geschwindigkeit vom ASM Befehl fyl2x.
Wenn ich diesen für die Log2() Procedure nutzt (Quelle), ist diese Prozedur langsammer als das Log oder Log10 von PureBasic, obwohl diese ja wohl auch den Basisbefehl fyl2x nutzen und sogar mehrmals, oder?

Code:
Procedure.d Log2(x.d)
  !fld1
  !fld qword [p.v_x]
  !fyl2x
  ProcedureReturn
EndProcedure


Define Time.i, Time2.i, Time10.i, TimeE.i, I.i

#Loops = 10000000


Time = ElapsedMilliseconds()
For I = 1 To #Loops
   Log2(I)
Next
Time2 = ElapsedMilliseconds() - Time

Time = ElapsedMilliseconds()
For I = 1 To #Loops
   Log10(I)
Next
Time10 = ElapsedMilliseconds() - Time

Time = ElapsedMilliseconds()
For I = 1 To #Loops
   Log(I)
Next
TimeE = ElapsedMilliseconds() - Time

MessageRequester("", "Log2() --> "+StrD(1.e6*Time2/#Loops)+"ns"+#LF$+"Log10() --> "+StrD(1.e6*Time10/#Loops)+"ns"+#LF$+"Log() --> "+StrD(1.e6*TimeE/#Loops)+"ns")
Zitat:
---------------------------

---------------------------
Log2() --> 49.9ns
Log10() --> 39.6ns
Log() --> 36.7ns
---------------------------
OK
---------------------------

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 18.04.2018 07:59 
Offline

Registriert: 21.01.2008 19:11
Hier mal meine Werte:
Zitat:
---------------------------

---------------------------
Log2() --> 24.5ns
Log10() --> 24.5ns
Log() --> 21.5ns
---------------------------
OK
---------------------------
Wobei diese variieren um etwa +- 2ns.
Grundsätzlich ist aber Log() immer etwa 2-3 ns schneller.

Getestet mit PB v5.62(x64).

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 18.04.2018 10:25 
Offline
Benutzeravatar

Registriert: 30.03.2010 15:24
PB benutzt die msvcrt.dll Funktionen für Log() und Log10().

Hab mal rein geschaut da ist eine Große Menge Code in den Funktionen,
allerdings kein fld1, fld oder fyl2x.

_________________
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Falling Bug


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 18.04.2018 10:42 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Hier mal meine Werte:
Code:
Log2() --> 22.17ns
Log10() --> 85.98ns
Log() --> 80.24ns

Die sind dann wohl doch deutlich anders. :-D
Mehrfaches Ausführen ändert nicht viel. Ich hab die Loops zwar verzehnfacht, aber das hat auch nicht viel geändert.

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 16.04.3 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 18.04.2018 11:28 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
@NicTheQuick:
Ja so in etwa hatte ich mir das vorgestellt. Hast du Intel?

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 18.04.2018 11:34 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Jup, den da: Intel(R) Core(TM) i7-3820QM CPU @ 2.70GHz
Mittlerweile uralt, aber im Laptop immer noch rasend schnell :-D

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 16.04.3 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 18.04.2018 13:16 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Komisch.
Ich habe es auch noch mal auf einem Intel(R) Core(TM) i5-4460 laufen lassen und da gibt er mir
Zitat:
Log2() --> 27.2ns
Log10() --> 18.2ns
Log() --> 15.4ns

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 18.04.2018 13:35 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
CPU: Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz

Mac OS 10.13.4
Zitat:
Log2() --> 27.3ns
Log10() --> 14.8ns
Log() --> 13.4ns


(VM) Linux Ubuntu 17.10
Zitat:
Log2() --> 26.2ns
Log10() --> 33.3ns
Log() --> 29ns


(VM) Window 7 Pro
Code:
Log2() --> 26.4ns
Log10() --> 19.1ns
Log() --> 17.7ns

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 04.05.2018 10:49 
Offline
Benutzeravatar

Registriert: 11.11.2004 16:13
Wohnort: Magdeburg
Hey, hier fehlt doch noch mein Senf :mrgreen: ! Ich dachte aber, auf den absolut richtigen Hinweis (für Windows) von _JON_ springt jemand an. Dieser Hinweis erklärt ja auch (eventuelle) Unterschiede zwischen den einzelnen Betriebssystemen.
Unterschiede existieren aber (natürlich) auch zwischen den einzelnen Windows-Versionen. FYL2X wird in der msvcrt.dll (Versions-Nr.geschenkt) für Windows7 nur noch für die Funktion "pow" verwendet, in Windows10 (_JON_) schon nicht mehr.
Also: FYL2X hat nichts mit den PB-Funktionen LOG10 oder LOG zu tun! Um das ganz hervorragende (neue) IDA 7 Free zu testen habe ich damit mal die Funktion POW10 aus der msvcrt.dll (Windows7) "extrahiert" (ich Böser!). Da wird (natürlich) keine einzige x87-(FPU-)Instruktion verwendet, dafür aber ca. 1700 Bytes an Daten (Konstanten) :mrgreen: !
Interessant wäre ein Genauigkeits-Vergleich mit den Betriebssystemen, bei denen das FYL2X-Beispiel schneller ist als PB-POWx (oder besser: POW langsamer). Ist da z.B. POW10 genauer als in Windows? Konkretes Beispiel: Windows-PB-Log10(54321.123456789) liefert 4.7349687433423764. Die letzte Dezimal-Stelle (4) ist falsch, es müsste gerundet 3 sein (29...). Liefert z.B.Linux (Distribution?) hier die 3?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ASM - fyl2x langsammer als Log10 oder Log ?
BeitragVerfasst: 04.05.2018 15:46 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Linux Mint 18.3 Cinnamon (64 bit)

Log10(54321.123456789)

liefert: 4.7349687433423763849305033

Log2() --> 27.6ns
Log10() --> 103.9ns
Log() --> 96.5ns

An Helle:

Zitat:
Die letzte Dezimal-Stelle (4) ist falsch, es müsste gerundet 3 sein (29...).


Wie kommst du denn darauf ?


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

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast


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