Wir sind gerade dabei, einen weiteren PC für Versuche mit lokaler KI (GPT4All) zu konfigurieren. Dazu haben wir eine quasi "noname"-Grafikkarte für den Bildschirm eingebaut und eine RTX3060 als Hirn-Booster für die KI. Das System kommt damit immerhin auf ca. 15 Token/s (gegen 3...5 Token/s mit i7-CPU only). Wie kann ich nun sicherstellen, dass die 12GB der RTX ausschließlich für die KI genutzt werden und nicht (zumindest teilweise) für irgendwelche Desktops des OS, die dort niemand braucht, weil gar kein Monitor angeschlossen? Oder regelt sich das von selbst, eben weil kein Monitor angeschhlossen ist? OS ist Ubuntu 22.x ...
:
Bearbeitet durch User
Frank E. schrieb: > Oder regelt sich das von selbst, eben weil kein Monitor angeschhlossen > ist? Nein, ..vielleicht doch, kommt drauf an, könntest du das Setup mit dem Monitor noch einmal genauer beschreiben? Wenn Konflikte auftauchen, dann kann man die mit Konsolebefehlen angehen. Außerdem könnte kann man auch die Interne CPU-Grafik nutzen, oder soll die mitrechnen? Du hättest dann praktisch 3 "Motoren".
1 | nvidia-smi |
zeigt dir an, welche prozesse wie viel GPU-Speicher reserviert haben. Unter Linux ist die Ausgabe auch einigermaßen vernünftig. Siehst du da Probleme?
Rbx schrieb: > Frank E. schrieb: >> Oder regelt sich das von selbst, eben weil kein Monitor angeschhlossen >> ist? > > Nein, ..vielleicht doch, kommt drauf an, könntest du das Setup mit dem > Monitor noch einmal genauer beschreiben? Das schien mir eigentlich recht einfach und deutlich beschrieben: Der Monitor hängt an der 0815-Graka (wo auch brav der Ubuntu-Desktop erscheint, der Rechner bedient wird) und an den Anschlüssen der RTX steckt nix, die soll nur rechnen.
:
Bearbeitet durch User
A. S. schrieb: > nvidia-smi > zeigt dir an, welche prozesse wie viel GPU-Speicher reserviert haben. > Unter Linux ist die Ausgabe auch einigermaßen vernünftig. > > Siehst du da Probleme? Hab ich noch nicht probiert, mangels Kenntnis. Werde ich aber tun ..
Frank E. schrieb: > Das schien mir eigentlich recht einfach und deutlich beschrieben: Der > Monitor hängt an der 0815-Graka (wo auch brav der Ubuntu-Desktop > erscheint, der Rechner bedient wird) und an den Anschlüssen der RTX > steckt nix, die soll nur rechnen. Ja ok, wenn es danach geht, brauchst du eigentlich gar keinen Desktop. Der wird ja bei mehr Konsole-orientierten Linuxen erst aus der Konsole gestartet. So ähnlich wie früher seine Mails in DOS angesehen hat, und dann Windows per Konsolebefehl gestartet hatte. Dann noch: Wenn du schon 2 Grafikkarten hast, kannst du die doch zusammenrechnen lassen und für den Konsolebildschirm die CPU-interne Grafik nutzen. Bei weiteren Hintergründen (z.B. CUDA/MPI) kann es natürlich komplexer werden, je nachdem - und man muss sich genauer (auch länger) einarbeiten. Prinzipiell müsste auch in deinen Unterlagen stehen, wie was einzurichten ist. (https://github.com/KomputeProject/kompute)
Ich hab nur die interne Grafikkarte, daher kann ich das alles nicht testen. Bei nicht-proprietären Treibern, also Mesa Treibern, gibt es die DRI_PRIME Environment Variablen: https://docs.mesa3d.org/envvars.html#envvar-DRI_PRIME_DEBUG Anwendungen können manchmal aber auch selbst entscheiden, welches Device sie nutzen wollen, statt das Mesa zu überlassen. Vermutlich wird das bei Vulkan öfter gemacht werden, weil da alles sehr low level ist. In der regel gibt es /dev/dri/render* und /dev/dri/card* Device Files für die Karten. Die Render Nodes können auf der GPU rendern. Das beinhaltet auch das anlegen von Buffer Objects per GBM, (sowas ähnliches wie Texturen), die auch in anderen Nodes importiert / verwendet werden können (das ist DRM Prime). Die card Nodes enthalten KMS (kernel mode setting) Funktionalität. Auflösungen setzen, Sachen anzeigen, das ist da drin. Aus historischen gründen beinhalten die oft zusätzlich auch das render node Zeugs, haben aber wegen dem Modeswitching ein paar Limitationen. Die meisten GPUs haben eine Card und eine Render Node. (Auf mobilen Geräten (z.B: Smartphones) gibt es es aber oft, das card Nodes nur KMS können, weil sie direkt z.B. Display Pannel repräsentieren, und die GPU davon nichts weiss, und nur eine render Node hat. Mesa importiert dann einen DRM dumb buffer (auch nur ein bo) von der Card node in eine Render node und rendert dort. Das ist auch einfach DRM Prime). Bei XOrg kann man in der Config angeben, welche Card Node(s) verwendet werden sollen. Bei wayland weiss ich nicht, wie man das macht. Was man eventuell versuchen könnte, ist einfach zu verhindern, das ein Programm eine card/render node sieht / darauf zugreifen kann. In der theorie sollte das gehen, musst du aber schauen, ob die Programme da mit machen. Du kannst solche Nodes mit Containern sharen. Render nodes sollten unproblematisch sein. Programme die KMS nutzen und card nodes brauchen, brauchen möglicherweise noch /sys/class/drm/. Eventuell könnte man auch schauen, was passiert, wenn man den Nodes unterschiedliche Gruppen oder ACLs gibt, und die Berechtigungen mit ACLs einschränkt, vielleicht reicht das ja auch schon. Wobei da aber logind (genauso wie früher auch console kit, und ich nehme an auch seatd), bei den Card Nodes auch ACLs vergeben, fürs Seat Managemant, was aus sicherheitstechnischer Sicht kompletter Blödsinn ist (sobald man eine Datei geöffnet hat, hat man einen Filedescriptor, danach spielen die Berechtigungen der Datei keine rolle mehr, auch wenn das ACL wieder entfernt wird).
A. S. schrieb: >
1 | nvidia-smi |
zeigt dir an, welche prozesse wie viel > GPU-Speicher reserviert haben. Unter Linux ist die Ausgabe auch > einigermaßen vernünftig. > Dahinter noch den Parameter dmon Und er zeigt dir laufend den Stromverbrauch etc. Bei ruhendem Desktop sinds bei mir 16-20W. Starte deine KI Anwendung und die Leistungsaufnahme steigt entsprechend. Läuft wirklich so einfach…
Manchmal nehmen die Dinge Wendungen, die man nicht vermutet: Weil wir ständig mit Treiber-Konflikten zu kämpfen hatten, eine Verzweiflungstat: Ausschließlich die RTX3060, AUCH für den Bildschirm ... Und siehe da: GPT4All antwortet nun mit sensationellen 50 Token pro Sekunde. Nun gut, was solls, hauptsache verwendbar. :-)
Frank E. schrieb: > Manchmal nehmen die Dinge Wendungen, die man nicht vermutet: Weil wir > ständig mit Treiber-Konflikten zu kämpfen hatten, eine Verzweiflungstat: > Ausschließlich die RTX3060, AUCH für den Bildschirm ... Wozu dient eigentlich der Bildschirm? :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.