Windows Warum wird eigentlich nicht die volle Rechenleistung abgerufen?

Windows Betriebssystem

lotsawa

Active member
Themenstarter
Registriert
4 Mai 2008
Beiträge
378
Hallo, ich beobachte häufig, dass bestimmte Rechenprozesse ziemlich lange dauern, aber (zumindest nach den Angaben z.B. im Taskmanager) nicht die volle Leistung des Computers abgerufen wird.

Hier sitze ich gerade an meinem P16 Gen 2 und lasse mit dem AI-Programm "noScribe" den Audiomitschnitt eines Vortrags in Text umwandeln. noScribe ist eine Open-Source-Software, die im Grunde eine UI für OpenAI Whisper ist.


Eine super Sache, ich muss die Audiodatei nicht erst irgendwo in eine Cloud hochladen (und natürlich auch nichts für den Dienst bezahlen). Da wird natürlich mächtig viel gerechnet (unterstützt von der Nvidia GPU im P16), und so ein einstündiger Vortrag ist dann auch mal ca. 30 min in der Mühle - oder auch länger, wenn man noch die Sprechererkennung etwa bei einem Interview oder einer Diskussion einschaltet.

Soweit alles ok. Nur frage ich mich, warum nicht mehr Leistung abgerufen wird. Schaut euch mal den Screenshot an. Ähnliches sehe ich aber nicht nur bei diesem Programm. Auch finde ich merkwürdig, dass manchmal die CPU schon im Turbo taktet (und der Lüfter entsprechend hochläuft), obwohl die CPU nur bei z.B. 20-30% Auslastung läuft. Als Energieprofil habe ich natürlich "Beste Leistung" eingestellt.

Würde mich einfach interessieren, was da der technische Hintergrund ist. Danke schon mal.
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    103,2 KB · Aufrufe: 37
Akku verbaut und intakt ? Oft takten TPs ohne diesen nicht sauber hoch .

Gruss Uwe

P.S.: Wobei die CPU ja hochtaktet ...
 
Das Thinkpad ist so gut wie neu ... an der Maschine ist alles in Ordnung.
 
Wie sehen den der Engergiestatus aus? [ Einstellungen -> System -> Strom und Akku ] Ändert sich die Rechenleistung, wenn du das Notebook auf "Beste Leistung" einstellst?
 
Warum soll die CPU hochtakten, wenn sie nichts zu tun hat?
- CPU-Auslastung: 14% bei 3,24 GHz - also volle Taktrate und
- WLAN-Auslastung: zumindest von der Grafik her fast am Anschlag.

Man könnte meinen, dass die CPU eh erst auf Daten via WLAN warten muss.
 
Skaliert die Anwendung denn überhaupt die Berechnung? Falls das Programm die Berechnung nicht auf mehrere Threads oder alle theoretisch mögliichen Threads verteilen kann, dann läuft die Berechnung nicht auf allen Kernen und es ergibt sich obiges Bild.
Stelle die Ansicht doch mal um auf logisch Prozessoren (mit der rechten Maustaste in die grafische Auslastung der CPU klicken, anschließend auf „Graph ändern in“ und danach auf „Logische Prozessoren").
 
Man könnte meinen, dass die CPU eh erst auf Daten via WLAN warten muss.
Nein, vom Programm werden gar keine Daten übertragen. Ich habe mal das Netzwerk komplett deaktiviert, das ändert nichts. Das ist ja gerade ein Clou dieses Programms, dass es die AI-Berechnung komplett offline lokal durchführt. Entsprechend groß ist auch der Download der Installationsdateien, knapp 5 GB (plus nochmal soviel für das Nvidia Cuda Toolkit).

Ändert sich die Rechenleistung, wenn du das Notebook auf "Beste Leistung" einstellst?
Hatte ich ja schon eingestellt.

Falls das Programm die Berechnung nicht auf mehrere Threads oder alle theoretisch mögliichen Threads verteilen kann, dann läuft die Berechnung nicht auf allen Kernen und es ergibt sich obiges Bild.
Ah! Das wird es wohl sein, siehe Screenshot.
 

Anhänge

  • Zwischenablage02.jpg
    Zwischenablage02.jpg
    119,3 KB · Aufrufe: 40
Whisper kann über CUDA laufen. Das ist grob 50-100x schneller und viel energieeffizienter. Ich hab neulich 1000 Folgen eines Podcasts gewhispert und das dauerte mit CPU voraussichtlich vier Wochen. Ich hab dann recherchiert, auf CUDA umgestellt und war nach einer Nacht durch (RTX 4070 Ti).
 
Zuletzt bearbeitet:
Dann passt da irgendwas nicht denn deine RTX 2000 Ada langweilt sich laut deinem Screenshot bei 0% Auslastung ...
Einen Reboot hast Du gemacht ?


Gruss Uwe

P.S.: Ich würde ansonsten eher ein richtiges "Herunterfahren" mit anschließendem Neustart durchführen .
 
So ganz untätig ist die dGPU ja nicht, da sind in Abständen von Sekunden immer diese kurzen 100% Peaks. Am Ende werden die Abstände übrigens noch mal kürzer, da sind fast durchgängig diese Peaks.

Herunterfahren hatte bereits ich gemacht, jetzt nochmal und dann auch bei den Grundeinstellungen der Nvidia-Settings der dGPU Vorrang gegeben. Ändert nichts am Bild.

Na ja, es funktioniert ja immerhin, das Ergebnis ist schon irre. Mit welchem Programm whisperst du denn, wenn ich fragen darf?
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    114,1 KB · Aufrufe: 12
Flaschenhals bei LLM ist RAM Bandbreite. Keine Ahnung wie Whisper funktioniert aber als KI Anwendung wird sie wohl auch riesige Matrizen bearbeiten. Weit jenseits dessen was die Caches auffangen können und so schlagen die Daten bis zum RAM durch.

Daher vermute ich, dass die CPU die meiste Zeit damit verbringt auf den langsamen RAM zu warten.

Bei meinem Test vor langer Zeit, damals noch ohne GPU aber leistungsfähige CPU war ich eher erstaunt, dass es überhaupt funktioniert als von der Geschwindigkeit.
 
Das sieht jedenfalls absolut nicht OK aus. Schmeiß doch mal die GUI raus und lass Whisper nativ laufen. Ich hab es so hingebogen, dass ich es per Rechtsklick -> Senden an aufrufen kann:

transcribe_this.py

Python:
import os
import whisper
import sys
from tqdm import tqdm

# define file
filename = sys.argv[1]

# Set up Whisper client
print("Loading whisper model...")
model = whisper.load_model("turbo", device="cuda")
print("Whisper model complete.")

# Transcribe the wav file
if filename.endswith(".mp3"):
    filepath = filename
    result = model.transcribe(filepath, fp16=False, verbose=True)
    transcription = result['text']
    # Write transcription to text file
    filename_no_ext = os.path.splitext(filename)[0]
    with open(os.path.join(filename_no_ext + '.txt'), 'w') as f:
        f.write(transcription)

transcribe_this.bat (Pfad natürlich anpassen)

Bash:
@echo off
"D:\NextCloud\transcribe_this.py" %1

Dann eine Verknüpfung zur .bat-Datei in shell:sendto speichern, dann kannst du per Rechtsklick die Datei direkt an Whisper schicken.
 

Anhänge

  • Screenshot 2025-03-29 220147.png
    Screenshot 2025-03-29 220147.png
    273,9 KB · Aufrufe: 8
Danke, da waren aber einige Hürden zu nehmen und einiges zu installieren, bevor das Skript lief ... das ist für mich mehr oder weniger ein Buch mit sieben Siegeln ;-)

Nachdem ich das Modul openai-whisper installiert hatte und es immer noch nicht lief, habe ich es immerhin (dank Copilot-KI) bis zu dem Punkt gebracht, wo klar wurde, dass die installierte PyTorch-Version mit der mit dem Nvidia-CUDA-Toolkit installierten CUDA-Version 12.8 nicht kompatibel war. Dann habe ich eine Preview-Version von PyTorch installiert, die bereits mit CUDA 12.8 zusammenarbeitet. Dann fehlte noch ffmpeg im Pfad, und dann konnte ich mit deinem Skript tatsächlich eine mp3-Datei transkribieren. Und siehe da, die dGPU hat ordentlich zu tun. Juchhu!

Nur verliere ich die Goodies von noScribe, wie die Sprechererkennung, Möglichkeit von Timecode, den Editor zur Nacharbeitung, mit dem man zur editierten Textstelle sich auf Knopfdruck direkt nochmal das Audio anhören kann. Da sind weitere Funktionen eingebaut, die neben openai-whisper auf faster-whisper und pyannote basieren.

Aber ersteinmal tausend Dank!
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    202,5 KB · Aufrufe: 19
Zum Glück sagt Python immer ungefähr, was ihm so fehlt, damit das Zeug am Ende funktioniert...

Aber: Es funktioniert so eindeutig zuverlässiger als mit NoScribe. Die Spitzen in der Leistung sehen für mich nach Thermal Throttling oder Power Limiting aus, aber für sich genommen ist das schon deutlich besser. Kann es sein, dass NoScribe jetzt, nachdem du CUDA-Support hast, auch sauberer läuft?

Edit: Ich hab mal mit NoScribe gespielt und das braucht spürbar länger, auch für den reinen Whisper-Part, da scheint die Implementierung nicht so optimal wie beim nackten Whisper.
 

Anhänge

  • Screenshot 2025-03-30 114832.png
    Screenshot 2025-03-30 114832.png
    674,1 KB · Aufrufe: 9
Zuletzt bearbeitet:
Kann es sein, dass NoScribe jetzt, nachdem du CUDA-Support hast, auch sauberer läuft?
Nein, da hat sich leider nichts geändert. Ich frage mich, ob die Pytorch-Library, die darin verbaut ist, mit meiner CUDA-Version zusammenarbeitet. Denn Whisper nativ mit deinem Skript lief bei mir auch erst mit CUDA, nachdem ich genau die dazu passende Version von Pytorch installiert hatte. Aber ist nur eine Vermutung.

Als nächstes will ich mal aTrain ausprobieren.
 
Sorry, wg. off Topic aber da hier Experten versammelt sind:

Wenn man sich die Materie anschaut wird viel Aufmerksamkeit auf Kompatibiltät bzw. das Fehlen davon gelegt. Angefangen von Python mit Abschottung mittels env bis zum Docker. Ist das verursacht durch die rasche Entwicklung oder legt man einfach keinen Wert auf stabile API?

Ich meine die Changelogs von z.B. PHP oder Perl, Glibc liest sich nicht so spektakulär, um deswegen eine ganze Infrastruktur drum herum zu zimmern?

Oder ist es heutige Stand der Technik, dass man lokal entwickelt und das Produkt in den Cloud schiebt wo man gar nicht weiss, was bereits installiert ist?

Danke.
 
Ich meine die Changelogs von z.B. PHP oder Perl, Glibc liest sich nicht so spektakulär, um deswegen eine ganze Infrastruktur drum herum zu zimmern?
Die lange Antwort würde einen 2-stündigen Vortrag erfordern.

Die kurze Antwort ist: Es hat sich im Laufe der Jahre herausgestellt, dass Entwicklungsumgebungen (also die Interpreter, Bibliotheken, Module etc.) sich so leicht verfriemeln und zerschießen lassen, dass Entwicklerinnen und Programmierer auf der ganzen Welt daran verzweifelt sind. Je größer, vielfältiger und wilder das Ökosystem um eine Programmiersprache herum ist (Perl: mittel, PHP: sehr, Python: extrem, JavaScript: Cthulhu fhtagn), desto größer ist das Problem.

In der Folge ist es nahezu unmöglich sicherzustellen, dass zwei Leute die gleichen Module, Libraries, Versionen usw. installiert haben.

Und so:
Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.
 
Es spart auch einfach Stress. Wenn ich mal probieren will, wie gut Ollama/Whisper/sonstwas funktioniert, dann ist Docker mega entspannt. Der verschwendete Speicherplatz durch mehrfache Installationen ist eigentlich auch kein echtes Argument; wenn das Modell von Whisper 6GB groß ist, sind ein paar 100 MB gedoppelte Installationen irgendwelcher Module total nachrangig.

Edit: PERL!? Benutzt das wirklich (noch) jemand?
 
Andererseits deuten einige Wortmeldungen die Kompatibilitätshölle an durch die man gehen muss.

Diese eigenartige Mischung aus Linux und Windows irritiert mich auch. Softwareinstallation unter Windows? Bisher immer mit Admin Rechte. Jetzt kommen aber immer mehr Windowsprogramme die man am Admin vorbei installiert. Da bekommt man als Admin ein wenig Angst. Unter Linux war man das ja gewohnt und das funktioniert auch aber wie wasserdicht ist Windows? Wahrscheinlich genauso wie bei Linux aber muss mich noch daran gewöhnen.

Dann installiert man einige KI Kram und will es allen Nutzern zur Verfügung stellen und muss Handstände machen, um die Teile als Service installiert zu bekommen...

Perl? Für große Projekte war sie wohl nie aber wer bei bash auf Grenzen stieß fand mit Perl eine leicht zugängliche Basis. Jeder der jemals mit Programmieren zu tun hatte konnte schon nach wenigen Minuten etwas funktionierendes zusammenstöpseln. Fürchterlich? Sicher, aber funktioniert. Konkretes Beispiel? Munin Plugins.
 
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben