Java mit bestimmter GPU ausführen

Bananabert

Bekanntes Mitglied
Moin,

ist es möglich ein Java Programm mit einer bestimmten GPU zu starten ohne eine extra Libarie?

Momentan greift Java immer auf die Integrierte Grafikkarte zurück, jedoch würde ich gerne NVidia benutzen.
Ich habe bereits versucht in der NVidia Systemsteuerung die bevorzugte Grafikkarte für Java umzustellen, jedoch ohne Erfolg. Zudem noch über eine EXE starten zu lassen, welche ich mit Launch4j erstellt habe, diese ich mit der NVidia GPU gestartet habe.

Bananabert
 

Bananabert

Bekanntes Mitglied
Moin,

ja 2 Monitore benutze ich, und ja Swing benutze ich auch. Aber Nein, das ist nicht das was ich Suche.

Nach ein wenig mehr googlen bin ich auf einige Einträge zu Minecraft gestoßen, wenn auch nicht weiter hilfreich. Hier wird meist geschrieben, einfach Rechtsklick auf die .exe und im Kontextmenü "Mit Grafikkarte x ausführen".

Da ich Minecraft besitze habe ich dies auch direkt mal getestet und siehe da, Nvidia ControlPanel zeigt mir an, es wird mit der GPU gerendert. Mit einigen anderen Programmen konnte ich die Auslastung der GPU auch sehen.

Jedoch dieses selber hinbekommen, habe ich bisher nicht. Und leider auch nichts weiter zu gefunden.
 

Anti-Banane

Gesperrter Benutzer
ich hab mich jetzt mal eben schnell registriert nur um dir folgendes zu sagen : dein rechner hat das problem wie schon damals zu urzeiten als das mit den 3d-beschleunigern losging : Java Swing ist 2D ! wird daher also auch nur von deiner 2d-gpu, in diesem fall nun mal das onboard-dingens, gerendert

das was du unter auslastung deiner 3d-gpu siehst ist alles das was aktiv in 3d gerendert wird .. also richtig mit DirectX oder OpenGL

willst du deinen code also auf deiner 3d-gpu laufen lassen musst du auch entsprechenden 3d-code schreiben ... z.b. mit jogl oder java3d



zur anspielung was das mit der urzeit zu tun hat : damals hatten rechner in der regel nur einen 2d-chip der auch nur in der lage rudimentär vesa darzustellen ... wenn es dann um richtige 3d-berechnung ging brauchte man dafür in der regel eine 3d-beschleuniger karte zusätzlich

wenn man sich mal so die wiki-artikel über modernes multi-gpu-rendering durchliest fällt dort einem sehr schnell die referenz auf die vergangenheit auf das man auf die idee schon sehr viel früher gekommen ist ... nämlich zwei grakas ... eine für normales 2d-"desktop-gedöns" und einen 3d-beschleuniger
damals musste das ganze dann noch meist extern mit so ner art gekreuztem monitor-kabel durchgeschleift werden

erst relativ spät kam man dann auf die idee sowohl 2d- als auch 3d-rendering in einem chip zu vereinen so wie wir es heute kennen


der hinweis mit minecraft ... naja ... ich möchte nich wissen wer so einen schrott mal wieder unter die leute bringt ... aber das system kann es einfach vorher nicht wissen das wenn java code geladen wird dieser irgendwo umschaltet auf 3d-rendering ... halte daher das zitat für absoluten bullshit von so nem kleinen möchtegern-kiddie
 

Bananabert

Bekanntes Mitglied
Moin,

ah danke @Anti-Banane, das erklärt natürlich einiges. Schönen Abend noch

[OT]
Mit absicht die Anti-Banane gewählt ?
[/OT]
 

Ruzmanz

Top Contributor
der hinweis mit minecraft ... naja ... ich möchte nich wissen wer so einen schrott mal wieder unter die leute bringt ... aber das system kann es einfach vorher nicht wissen das wenn java code geladen wird dieser irgendwo umschaltet auf 3d-rendering ... halte daher das zitat für absoluten bullshit von so nem kleinen möchtegern-kiddie

Was ist dein Problem?! Ich kenne mich mit der Thematik nicht aus, aber deine Aussage ist logisch falsch. Wenn er explizit eine Grafikkarte VOR dem Start anfordert, dann müsste der Computer diese auch verwenden. Ob die Grafikkarte nun das Bild erzeugen / darstellen kann, ist erstmal nebensächlich. Wenn es nicht geht, dann kommt halt ein Bluescreen oder das Programm stürtzt ab ... so wurde das meiner Ansicht nach, aber nicht beschrieben!

Er hat explizit eine Grafikkarte ausgewählt und diese wird nicht genutzt. Ich habe schon öfter gesehen, dass die Programme mit einer Fehlermeldung abstürzen, sofern die 2. Grafikkarte nicht genutzt werden kann. Aus diesem Grund gehe ich nicht davon aus, dass seine Nvidia Grafikkarte geladen wird und dass das Betriebssystem als Fallback auf die andere Grafikkarte zurückspringt.

ist es möglich ein Java Programm mit einer bestimmten GPU zu starten ohne eine extra Libarie?

Habe da selbst keine Ahnung. Möchtest du eine andere Grafikkarte wählen, weil deine Applikation zu langsam ist? Evtl. kann man da noch deutlich nachbessern ...
 

Bananabert

Bekanntes Mitglied
Moin,

@Rumanz, es geht um eine kleine Spiele Engine. Die Engine benutzt nur die draw Methoden von Graphics.
Auf meinem Laptop läuft es mit der Integrierten Grafikkarte mit rund 500fps und mit OpenGL Pipeline (nicht die Librarie) ~ 1500 FPS.

Jedoch auf einem MAC, selbst die etwas besseren, schmiert das Programm total ab, läuft mit < 20 FPS.
Ein großteil der MACs hat auch jeweils 2 Grafik-Karten. Natürlich auch möglich, dass die Treiber für die Integrierte Out-Of-Date sind.

Jedes Spiel das ich Starte, kann korrekt mit der NVidia ausgeführt werden. Daher wundert es mich.

Für weitere Posts : Nein ich will keine Libraries benutzen, ich schreibe gerne etwas selber und suche nach einer Lösung. Nur finde ich momentan hier keine.
 

Anti-Banane

Gesperrter Benutzer
@Ruzmanz
mein problem ist mal sicherlich überhaupt nicht ... fakt ist jedoch : man KANN einfach nicht vorher sagen : "binary X soll mit GPU-kern Y laufen" ... völlig egal ob man vorher weis das der code irgendwo mal umschalten wird auf aktives 3D-rendering oder nur im 2D-mode "zeichnet"

[ot]hier sei noch erwähnt : auch 2D-zeichnen ist schon eigentlich "rendern", denn der begriff "rendering" bezeichnet den vorgang der grafikkarte aus den roh-daten ein "bild" aufzubereiten und "fertigzustellen" ... das übertragen und letztenendes anzeigen des monitors ist dann schon wieder der nächste schritt und hat mit dem eigentlichen "rendern" nichts mehr zu tun
allerdings wird für 2D-operationen gebräuchlich lediglich "drawing" bzw im deutschen "zeichnen" genutztn wohingegen 3D-operationen als "(aktives) rendern" bezeichnet werden

die nutzung bei z.b. video-bearbeitung oder modellierungen (z.b. Cinema4D oder wie sie nicht alle heißen) ist der begriffsdefinition nach eigentlich falsch[/ot]

Wenn er explizit eine Grafikkarte VOR dem Start anfordert, dann müsste der Computer diese auch verwenden.
tja ... aber leider geht genau DAS eben nicht ... zumindest nicht so wie es hier beschrieben wurde
es ist richtig das nVidia und teilweise auch AMD in einigen driver-versionen in zusammenarbeit mit der dazugehörigen steuersoftware einstellungen anbieten um die eine oder andere anwendung noch ein bisschen nach zu regeln oder vorab ein system-global zu setzen ... aber explizit einen bestimmten gpu-kern anfordern ... sowas hab ich noch nie gesehen ... nicht mal bei diesen custom-oem-krams den notebook-hersteller gerne nutzen in zusammenhang mit nVid-karten

von daher möchte ich die zitierte aussage, das man einer anwendung vorab einen bestimmten gpu-kern zuweisen kann, an sich schon vom autor her in frage stellen, wenn nicht dessen kompetenz selbst


auch ist deine weitere aussage weder in sich noch generell stimmig, denn DOCH : grundsätzlich verwaltet das OS in zusammenarbeit mit seinem kernel und den treibern die entscheidung welcher hardware-teil welche software abarbeitet
oder kurz : am ende sagt der kernel welche GPU
theoretisch würde es also schon die möglichkeit geben "einen wunsch" anzumelden, ob dies am ende dann aber technisch machbar ist muss halt geprüft und bei fehlschlag umentschieden werden



um mal wieder zurückzukommen auf java

grundsätzlich arbeitet java im normalen 2D-drawing welches durch die hardware "beschleunigt" wird, die sog. 3D-hardware-beschleunigung
unter unix wird dies in der regel durch OpenGL umgesetzt, welches aber (zumindest laut DOC) standardmäßig deaktiviert ist
unter windows hingegen wird auf Direct3D/DirectX zurückgegriffen (typisch halt) um eine 3D-beschleunigung zu erhalten
eine vorgegebene standard-value gibt es dafür nicht da es von mehreren faktoren abhängt, z.b. ob der desktop gerade im 2D- oder 3D-modus läuft, ob Direct3D überhaupt aktiv ist, etc

[ot]bezüglich desktop und 3D : laut M$ wird seit vista auch der normale desktop bei aktivem AERO 3D-gerendert
in wie weit hier wirklich 3D am werk ist müsste man mal in den tiefen des MSDN nachforschen[/ot]

und jetzt kommen wir mal drauf was TO geschrieben hat : er nutzt Swing !
ergo : er "zeichnet" 2D was dann von java durch native-calls an die grafik-API des OS übergeben wird
java selbst versucht (zumindest unter windows) aktive (Direct)3D-beschleunigung umzusetzen, letztenendes hängt es aber von der grafik-API, dem kernel und dem treiber ab ob dies auch wirklich umgesetzt wird


so ... und nun zu dem problem was TO geschildert hat : er hat unter Mac performance-probleme
hmm ... spontan würde mir da erstmal einfallen : zeig mal den "draw-code" wie viel was wo wie gezeichnet wird

spontan würde mir nämlich einfallen : wenn du Swing nutzt musst du entsprechend (z.b. von einem JPanel erbend) paintComponent(Graphics) überschreiben und hier als erstes den super-call "super.paintComponent(Graphics)" einfügen, und ich wette das es bei dir an genau diesem problem hakt ... ist einfach n typischer anfänger-fehler

daher würde es auch nichts bringen das ganze durch die vorhandene 3D-gpu zu schicken, weil das würde nur den call-stack noch weiter aufblähen und die performance noch weiter drücken da es einfach mehr zeit kostet




ps : nein, anti-banane soll nich gegen dich sein sondern ergab sich einfach aus dem kontext da mir nichts anderes eingefallen ist
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Robot Printscreen in bestimmter Konstellation Allgemeine Java-Themen 2
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
berserkerdq2 Java sql Allgemeine Java-Themen 15
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
LimDul XSD To Java - Überschreiben von Assoziationen Allgemeine Java-Themen 1
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6
KonradN Java 18 Allgemeine Java-Themen 8
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
O Newton Algorithmus Java Allgemeine Java-Themen 1
P Java Quellen finden Allgemeine Java-Themen 3
M Java Analyse/ SWOT-Analyse Allgemeine Java-Themen 13
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben