Belastungs-Test-Routine für einen Prozzesor

Antworten
Benutzeravatar
lcb-User
Beiträge: 54
Registriert: Di 15. Jul 2014, 13:18
OS, Lazarus, FPC: Linux Mint 21.1 Cinnamon Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1
CPU-Target: 64Bit
Wohnort: München

Belastungs-Test-Routine für einen Prozzesor

Beitrag von lcb-User »

Liebe Forengemeinde

Zu gegebenen Anlass möchte ich um eine Programmcode-Spende bitten. :-)

Anlass:
Ich hab mich von der Bauanleitung von c't anstecken lassen.
"Der Optimale PC 2022" ist jetzt mein. ;-)
Meine Möglichkeiten den Prozessor zur Weißglut zu bringen sind bescheiden.
Mit Handbracke eine große Video-Datei zu rendern bringt die 16 Threads nur bis 80-90% Auslastung.
Die Temperatur bleibt dabei in den 2,5 Stunden bei ca. 42°C
Auch das rekompilieren vom neuen Linux-Kernel hat auch keine wirkliche Herausforderung bedeutet.

Jetzt suche ich ein paar Prozeduren mit den man meinen Prozessor herausfordern kann.
Ihr fragt euch was das für eine Hardware ist?
Ryzen7 5700G

Code: Alles auswählen

lcb@Ryzen75700G:~$ inxi -Fz
System:
  Kernel: 5.13.0-22-generic x86_64 bits: 64 Desktop: Cinnamon 5.0.7 
  Distro: Linux Mint 20.2 Uma 
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <filter> 
  Mobo: ASUSTeK model: TUF GAMING B550-PLUS (WI-FI) v: Rev X.0x 
  serial: <filter> UEFI: American Megatrends v: 2423 date: 08/10/2021 
CPU:
  Topology: 8-Core model: AMD Ryzen 7 5700G with Radeon Graphics bits: 64 
  type: MT MCP L2 cache: 4096 KiB 
  Speed: 4282 MHz min/max: 1400/4300 MHz Core speeds (MHz): 1: 4294 2: 4297 
  3: 4251 4: 4298 5: 4297 6: 4300 7: 4299 8: 4273 9: 4293 10: 4294 11: 4300 
  12: 4298 13: 4293 14: 4287 15: 4264 16: 4297 
Graphics:
  Device-1: AMD driver: amdgpu v: kernel 
  Display: x11 server: X.Org 1.20.11 driver: amdgpu,ati 
  unloaded: fbdev,modesetting,vesa resolution: 2560x1440~60Hz 
  OpenGL: renderer: AMD RENOIR (DRM 3.41.0 5.13.0-22-generic LLVM 12.0.0) 
  v: 4.6 Mesa 21.0.3 
Audio:
  Device-1: AMD driver: snd_hda_intel 
  Device-2: AMD Family 17h HD Audio driver: snd_hda_intel 
  Sound Server: ALSA v: k5.13.0-22-generic 
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi 
  IF: wlp4s0 state: up mac: <filter> 
  Device-2: Realtek RTL8125 2.5GbE driver: r8169 
  IF: enp5s0 state: down mac: <filter> 
Drives:
  Local Storage: total: 4.55 TiB used: 2.01 TiB (44.1%) 
  ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 980 1TB size: 931.51 GiB 
  ID-2: /dev/sda vendor: Western Digital model: WD20EURS-73TLHY0 
  size: 1.82 TiB 
  ID-3: /dev/sdb vendor: Seagate model: ST2000DM006-2DM164 size: 1.82 TiB 
Partition:
  ID-1: / size: 915.40 GiB used: 325.03 GiB (35.5%) fs: ext4 
  dev: /dev/nvme0n1p2 
Sensors:
  System Temperatures: cpu: 42.0 C mobo: N/A gpu: amdgpu temp: 34 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 358 Uptime: 3h 13m Memory: 46.36 GiB used: 2.30 GiB (5.0%) 
  Shell: bash inxi: 3.0.38 
Habt Ihr da was für mich und meinem Lazarus.
Danke!
Sonnige Grüße
Bibsi


Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von charlytango »


Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von corpsman »

Wenn es nur darum geht den Rechner zu killen, hab ich mal ein Programm gemacht das 2*CPU's viele Threads startet und in jedem sinnlos Primzahlen Berechnet. Damit kriege ich recht erfolgreich alle meine CPU's platt.
--
Just try it

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von Socke »

corpsman hat geschrieben:
Fr 3. Dez 2021, 06:18
Wenn es nur darum geht den Rechner zu killen, hab ich mal ein Programm gemacht das 2*CPU's viele Threads startet und in jedem sinnlos Primzahlen Berechnet.
PI ist da auch sehr beliebt. Grundsätzlich sollte klar sein, dass die Prozessortemperatur auch von den verwendeten Recheneinheiten abhängt. Sie reagiert anders auf eine Integer- als auf eine Float-Belastung oder "Spezial-"instruktionen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
lcb-User
Beiträge: 54
Registriert: Di 15. Jul 2014, 13:18
OS, Lazarus, FPC: Linux Mint 21.1 Cinnamon Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1
CPU-Target: 64Bit
Wohnort: München

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von lcb-User »

charlytango, danke für Deine Links.

Die Tests haben eine neue Erkenntnis gebracht.
Multithreading wirkt sich nicht wirklich so überragend aus wie gedacht.
Zumindest bei diesem Test.

Bild 1 vor dem Start
bild01.png
(436.12 KiB) Noch nie heruntergeladen
Bild 2 mit 8 Threads, da laufen die Kurven hektisch durcheinander
bild02.png
(905.13 KiB) Noch nie heruntergeladen
Bild 3 mit 16 Threads kleben sie alle auf 100% aber der Speed ist gleich die FPS nehmen sogar leicht ab.
bild04.png
(378.95 KiB) Noch nie heruntergeladen
Die Temperatur wird durch die gut Kühlung gut in Zaum gehalten.

Aber ich suche eigentlich einen Code in Pascal mit dem man Prozessor gezielt belasten kann.

Das wird vermutlich Betriebsgeheimnis sein. ;-)
Sonnige Grüße
Bibsi


Traue keiner Statistik die du nicht selbst gefälscht hast (Sir Winston Churchill 1874 - 1965)
Linux Mint 21.1 Cinnamon 5.6.7 Kernel 5.19.0-35-generic
Lazarus 2.3.0 (rev main-2_3-3744-g967034aff5) FPC 3.3.1 x86_64-linux-gtk2

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von Warf »

Also wenn ich den GCC mit "make -j $(nprocs)" kompiliere komm ich auf die 100% CPU load auf meinem threadripper. Mit großen C projekten kompilieren sollte es also an sich recht einfach gehen die CPU auszulasten. Allerdings musst du aufpassen, ich bin schon auf buildsysteme gestoßen die den paralelisierungsgrad begrenzen, z.B. hatte ich mal ein programm dessen build script auf rechnern unter 48 GB RAM nur maximal 12 Threads benutzt hat. Damit konnte ich mit meinen 32 gig natürlich nicht die vollen 24 (virtuellen) CPUs meines TR ausnutzen.

Wobei das interresanteste experiment war mein TR hat 4 memory channels, d.h. wenn ich alle bis auf 4 CPUs deaktiviere hat jeder der 4 CPUs einen eigenen memory channel, d.h. laden und schreiben von daten aus/in den ram ist deutlich schneller. Außerdem hat dann jede CPU einen größeren anteil vom cache (damit hat jede CPU dann 10mb cache für sich alleine) und man kann da weniger gesammt energie benötigt wird und auch viel weniger inteferenzen entstehen die CPUs noch ein gutes stück übertakten.
Für prozesse die nicht völlig parallel sind sondern nur ein paar threads (eventuell sogar single threaded sind) benutzen ist das dann ein absolutes beast.

Nimral
Beiträge: 390
Registriert: Mi 10. Jun 2015, 11:33

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von Nimral »

Bei Furmark ist neben dem Grafik-Test auch ein kleiner CPU Stresstest namens "CPU Burner" dabei. Man kann da die Anzahl der Threads einstellen.

Hab ihn schnell ackern lassen auf einem, 8/4 Kerner ... 8 Threads, 6 Threads, 4 Threads. Schaut soweit ganz gut aus.
2021-12-08 17_55_09-CHIP _ News, Downloads, Tech- & Verbraucherberatung und 1 weitere Seite - Persön.png
2021-12-08 17_55_09-CHIP _ News, Downloads, Tech- & Verbraucherberatung und 1 weitere Seite - Persön.png (28.46 KiB) 2128 mal betrachtet
Armin.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von Winni »

Hi!

Vor 18 Monaten hatten wir hier eine Oberfläche für ein ausgeklügeltest Kompression-Programm:

viewtopic.php?f=11&t=13055&p=119998&hil ... on#p119998

Ich hab mir damals auf meinem CPU-Monitor angesehen, wie 7 CPUs bei 100% liefen, während die (wechselnde) 8. CPU "nur" auf 96% lief. Intelligenter Linux-Kernel, der noch kleine Reserven bereithält.

Winni

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von shokwave »

Hi,

ich hatte mir so etwas vor ein paar Jahren selbst, auf die schnelle, gebastelt, um die Kühlung zu testen. Da es nur für mich war und es auf Anhieb meiner Vorstellung entsprach, ist der Code ziemlich "ungeschliffen". Ich packe es trotzdem mal in den Anhang.

Jedes "Start" startet einen Thread und jedes "Stop" beendet einen. Jeder Thead macht 2 sinnlose Berechnungen(eine Ganzzahl, eine Gleitkomma) in Dauerschleife.
Mein i3 mit 2 Cores und 4 Threads ist mit 4xStart auf auf 100%.

Ich habe es bisher nur unter Windows benutzt, daher weiß ich jetzt nicht ob es auch auf Linux kompiliert.

Hoffe das hilft dir trotzdem weiter.

Edit: 1. "Stop" beendet alle Threads
2. Unter Linux muss in der .lpr, in den uses, der Eintrag {$IFDEF UseCThreads} mit dem zugehörigen {$ENDIF} raus. Sonst kompiliert es zwar, aber stürzt ab.
Dateianhänge
CPUBurn.zip
(126.04 KiB) 99-mal heruntergeladen
mfg Ingo

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Belastungs-Test-Routine für einen Prozzesor

Beitrag von shokwave »

Nachdem ich meinen Code gesehen hatte, hatte ich das dringende Bedürfnis aufzuräumen... :lol:

Anbei das Ergebnis, das jetzt auch unter Linux laufen sollte. Ich konnte es zumindest unter Ubuntu Budgie erfolgreich testen.
Dateianhänge
CPUBurn.zip
Die aufgeräumte Version.
(127.53 KiB) 95-mal heruntergeladen
mfg Ingo

Antworten