Aktuelle Zeit: 19.07.2018 21:23

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 07.01.2018 00:50 
Offline
Benutzeravatar

Registriert: 11.11.2004 16:13
Wohnort: Magdeburg
Davon habe ich mehrere am laufen :mrgreen: !
Eben getestet, Durchschnittswerte für M50:
- Intel i7 7700K @5.0GHz: AVX=44.5s, AVX2=43.6s
- AMD Ryzen 7 1800X @3.7GHz: AVX=76.3s, AVX2=77.0s
Man sieht (wieder) den AMD-Nachteil bei 256-Bit-Register-Anwendungen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 07.01.2018 01:00 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
Mersenne M50
Code:
AVX-Version:  70431ms
AVX2-Version: 69034ms
Getestet unter Linux und der CPU "Intel Core i7-6700K @ 8x 4.2GHz".

Beim Code bitte #MB_ICONERROR durch #PB_MessageRequester_Error und
Code:
FontHigh = Int(9.0 / (GetDeviceCaps_(GetDC_(WindowID(0)), #LOGPIXELSY) / 96.0))     ;muss für anderes OS (hier Windows 64Bit) neu!
;LoadFont(0, "Arial", FontHigh)
LoadFont(0, "Trebuchet MS Fett", FontHigh)  ;in Windows 7 verfügbar; evtl.testen
durch
Code:
;FontHigh = Int(9.0 / (GetDeviceCaps_(GetDC_(WindowID(0)), #LOGPIXELSY) / 96.0))     ;muss für anderes OS (hier Windows 64Bit) neu!
LoadFont(0, "Arial", 12)
;LoadFont(0, "Trebuchet MS Fett", FontHigh)  ;in Windows 7 verfügbar; evtl.testen
ersetzen. Dann funktioniert es auch unter Linux.

_________________
Bild

PureBasic-CodeArchiv-Rebirth: Git-Repository / Download -- Jede Hilfe ist willkommen!

Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 07.01.2018 01:20 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
STRG+F oder ein Makro oder/und PureBasic eigene Konstanten (Der nicht Windowsnutzer würde sich freuen ;) )

Anbei:
Ich habe mal den RAM beobachtet.
Das ganze benötigt gewaltig viel Speicher.

1. Programm nicht gestartet: RAM: 1,6 GB
2. Programm gestartet (M50): Ram steigt bis auf 6,72 GB
3. Nach der Berechnung behält sich das System 5,32 GB.
4. Nach Beendigung des Programms sinkt der RAM-Verbrauch wieder auf 1,68 GB

Beobachtung CPU: (Ich habe eine 4 Kern-Intel-CPU)
Vor der Berechnung: 3-7% Auslastung
Bei der Berechnung: Steigt auf ca. 30-40 % Gesamt - bleibt dann aber konstant bei um die 30% Auslastung, dabei wird immer im Wechsel ein Kern zu 100% ausgelastet.

Soviel zu meiner Beobachtung.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 07.01.2018 16:23 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Meine olle CPU braucht für M50 83724 ms.

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Creality 3D CR-10 Review und erste Druckergebnisse
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: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 07.01.2018 18:25 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
@Helle:

Die Abfrage des OS lieber mit Compiler-Direktiven gestalten. Denn so, wie es momentan ist, bekommt man unter Linux noch immer einer Fehlermeldung ("GetDeviceCaps_() is not a function..."):

also anstelle von:
Code:
If OSVersion() > #PB_OS_Windows_XP And OSVersion() < #PB_OS_Linux_2_2     ;Linux fängt bei 1000 an
  ;Windows
  FontHigh = Int(9.0 / (GetDeviceCaps_(GetDC_(WindowID(0)), #LOGPIXELSY) / 96.0))   ;GetDeviceCaps kann bei der Bildschirmanpassung nützlich sein
  ;LoadFont(0, "Arial", FontHigh)
  LoadFont(0, "Trebuchet MS Fett", FontHigh)     ;in Windows 7 verfügbar; evtl.testen
 ElseIf OSVersion() >= #PB_OS_Linux_2_2 And OSVersion() < #PB_OS_MacOSX_10_0   ;MacOSX fängt bei 10000 an
  ;Linux
  LoadFont(0, "Arial", 12)   ;das hat Sicro zu verantworten :-). Unter Windows ist (bei mir) 12 zu groß
EndIf                        ;Mac?

besser das hier:
Code:
Define FontHigh
Define FontName.s

CompilerSelect #PB_Compiler_OS
   
  CompilerCase #PB_OS_Windows
    FontHigh = Int(9.0 / (GetDeviceCaps_(GetDC_(WindowID(0)), #LOGPIXELSY) / 96.0))   ; GetDeviceCaps kann bei der Bildschirmanpassung nützlich sein
    FontName = "Trebuchet MS Fett"                                                    ; in Windows 7 verfügbar; evtl.testen
   
  CompilerCase #PB_OS_Linux
    FontHigh = 12
    FontName = "Arial"
   
  CompilerCase #PB_OS_MacOS
    FontHigh = 12 ; ?
    FontName = "Arial" ; ?
   
CompilerEndSelect

LoadFont(0, FontName, FontHigh)

Grüße ... Peter

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 07.01.2018 21:03 
Offline
Benutzeravatar

Registriert: 11.11.2004 16:13
Wohnort: Magdeburg
Liebe Linux-Jünger,
ich habe aus obigen Codes die zarten Kompatibilitäts-Annäherungen an Linux wieder entfernt. Beim Test mit der brandneuen PB-Version 5.46 LTS fiel mir wieder ein, weshalb ich z.B. die Konstante #PB_MessageRequester_Error nicht verwendet habe: Sie wird von den LTS-Versionen (Windows) schlicht nicht unterstützt. Ich selbst benutze aber LTS häufig (Unicode-Thema!), so das dies für mich Priorität hat. Linux (und Mac) kann ich eh selbst nicht testen.
Man könnte jetzt das Icon (ist ja nicht unbedingt nötig) entfernen, aber wo anfangen und wo aufhören?
Ihr seid doch prima selbst in der Lage, den Code für Linux lauffähig zu machen.

Mit Kernel-Gruß :mrgreen:
Helle


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 07.01.2018 21:20 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Helle hat geschrieben:
Liebe Linux-Jünger, [...]

ok, ich finde es halt nur schade, dass die beiden "Inkompatibilitäten" in Deinem Code eigentlich gar nicht sein müssten.

Aber kein Thema. War halt nur ein Hinweis. Ist ja Dein Code. Kannst damit machen, was Du willst. ;-)

Grüße ... Peter

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 08.01.2018 12:09 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Da haut er die verrücktesten Assembler-Codes raus, aber ist zu faul für ein kleines CompilerIf. :lol:

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Creality 3D CR-10 Review und erste Druckergebnisse
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: FFT-Calculator, AVX2-und AVX-Version
BeitragVerfasst: 11.01.2018 22:00 
Offline
Benutzeravatar

Registriert: 11.11.2004 16:13
Wohnort: Magdeburg
Nic, Du weißt doch: Programmierer sind von Haus aus faule Hunde und Hobby-Programmierer (wie meiner einer) sind da keinen Deut besser :mrgreen: !
@ccode_new: Ja, der Speicherbedarf ist bei der Butterfly-Methode enorm. Jede Faktoren-Dezimal-Ziffer (Byte) wird als DWord in Double konvertiert, dann 2x abgespeichert, wobei noch der Platz für den Imaginärteil reserviert wird, für jedes N ist Cos und Sin als Double zu berechnen und abzuspeichern...
N ist die nächsthöhere 2-er Potenz der Faktoren-Länge, beide Faktoren müssen auf gleiche Länge getrimmt werden... Das läppert sich zusammen :mrgreen: !

Habe oben die Prozedur Calc() auf Speicher-Optimierung getrimmt, aber das macht den Kohl nicht fett.

Gruß
Helle


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 Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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:  
cron

 


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