Registriert: Di Jun 10, 2014 06:59 Beiträge: 17
Programmiersprache: Delphi XE6
Hallo zusammen,
ich beschäftige mich schon seit einiger Zeit mit einem recht komischen Phänomen:
Ich erzeuge in meinem Programm recht umfangreiche Modelle, welche ich in einer Display-Liste ablege (ich weiß es gibt Alternativen, das ist aber nicht das Thema!). Nun habe ich hier drei Rechner, die sich beim Anzeigen der Listen - in Bezug auf Geschwindigkeit - recht unterschiedlich verhalten:
1. Rechner 1: Intel i7 - GTX 970 -> erste Ausgabe < 100ms 2. Rechner 2: Intel i7M - integrierte Grafik -> erste Ausgabe < 100ms 3. Rechner 3: Intel i7 - Quadro K3100M -> erste Ausgabe > 2500ms
Das Problem ist der 3. Rechner. Diese sollte eigentlich recht performant (wesentlich schneller als der Rechner 2 mit 2 Kernen und interner Grafikkarte) sein. Eigentlich sind alle Komponenten im dritten Rechner schneller (Prozessor, Speicher, Grafikkarte). Dennoch ist dieser Rechner am langsamsten. Ich habe schon alle möglichen Einstellungen gestestet - ohne Erfolg. Die Übertragung des Models erfolgt durch
Registriert: Di Jun 10, 2014 06:59 Beiträge: 17
Programmiersprache: Delphi XE6
Danke für Eure Ideen. Ich habe mittlerweile etwas im Bios rumgespielt und bin nun in der Lage festzulegen welche Grafikkarte für die Ausgabe verwendet wird. Solange ich die NVIDIA-Karte verwende ist alles sehr langsam. Wenn ich auf die Intel HD4600 gehe, dann ist alles rasend schnell. Eigentlich habe ich die NVIDIA ja zur Beschleunigung und nicht als Bremse im Rechner...
Und ja: Die Treiber sind aktuell.
Es ist wie gesagt das erste kompilieren der Display-Liste was auf der NVIDIA viel Zeit in Anspruch nimmt. Die sollte das doch eigentlich schneller machen als die Intel HD. Oder? Irgendwie verstehe ich das ganze nicht...
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Das "kompilieren" der Displayliste erfolgt ja auf der CPU. Deshalb ist es ziemlich egal, wie schnell die Grafikkarte ist. Die benötigte Zeit hängt davon ab, wie effizient der Treiber mit CPU-Ressourcen umgeht.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
BigAl hat geschrieben:
Ich dachte, dass das kompilieren der Liste auf der Grafikkarte stattfindet...
Wo könnte also der Flaschenhals sein?
Alex
Genau da liegt das Problem bei OpenGL : Wann genau die Grafikkarte was macht ist nicht wirklich vorhersehbar. Kann durchaus sein dass die Quadro das Kompilieren der Displayliste verzögert und erst beim ersten Aufruf (also glCallLists) macht. Selbiges kann dir auch mit Shadern passieren. Und das Erzeugen und Optimieren der Displayliste (wird ja intern vermutlich zerlegt) dauern kann hakts beim ersten Mal.
Mit ein Grund warum es neue APIs gibt.
Evlt. hilft aber auch die Nutzung eines OpenGL-Debuggers. NVidia hat da einiges dass direkt in Visual Studio integriert ist, und RenderDoc ist auch sehr schick.
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
Mhh klingt eher nach Fehlern innerhalb der DisplayListe. Ich kann mich zum Beispiel gut daran erinnern das Compile extrem lange dauert wenn du zum Beispiel glBegin / glEnd nicht richtig setzt.... Naja egal... wenn du Flush / Finish nach Endlist machst sollte er auf jeden Fall erst einmal alles durchladen.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2621 Wohnort: Berlin
Programmiersprache: Go, C/C++
NSight ist, was Sascha meinte. Das solltest du wirklich mal mit den NV Karten austesten.
Quadro Karten sind ein ding für sich. Ich hatte auch schon eine im Rechner und die war in vielen dingen sau langsam im vergleich zu ner normalen Graka aber in einigen Sachen sind die um einiges schneller.
Code:
glHint(GL_LINE_SMOOTH_HINT);
Die Workstation Karten können z.B. Anti-Aliasing Linien per Hardware, das läuft bei normalen Karten entweder garnicht mehr oder über multi sampling. Workstation Karten hatten immer sehr Viel Speicher 2-8GB, was aber die normalen Karten mitlerweile auch bekommen. Workstation Karten waren früher wesentlich schneller als normale, heute sind in sachen Füllrate die normalen Karten schneller. Die Treiber von Workstation Karten sind zumindestens bei NV auf bestimmte Programme ausgelegt(z.B. SolidWorks). Eine GTX980TI ist z.B. langsamer als die Quadro(glaub ne M4000 war es), wenn man in SolidWorks an komplexeren Zeichnungen arbeitet. Mehr spezielle Hardware für z.B. die neue OIT und NV Command List, Indirekte Listen zugriffe, sowie Listen sortierung wurde beschleunigt(spezielle Schaltkreise im Chip). In Spielen schneiden aber Workstation Karten schlechter ab als normale Karten.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.