Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Flash hat geschrieben:
Dann sollte man den DLL Benchmark mal so erweitern, dass er die Hardware ausließt und eine Ausgabe wie die laut spec liefert, so dass man die Benchmarkergebnisse sammeln könnte.
Hab ich grade mal testweise implementiert. Zeitaufwand <5 min, der Benchmark läuft und liefert auch Hardwareinfo. Der komplette Code für das Modul sieht so aus :
Code:
{$I ..\includes.inc} library module_hardwareinfo;
uses SysUtils, Classes, dglOpenGL, graphics, module in '..\lib\module.pas';
type TModule2 = class(TBaseModule) public NameList : TStringList; ValueList : TStringList; procedure ListResults;override; procedure RegisterProperties;override; procedure DrawFrame;override; end;
procedure TModule2.ListResults; var i : Integer; begin for i := NameList.Count-1 downto 0 do AddResult('HardwareInfo\Global'+NameList[i], PChar(ValueList[i])); NameList.Free; ValueList.Free; end;
So simpel ists dann ein Modul zu schreiben. Dadurch dass es so einfach geht, und DLLs in (fast) jeder Sprache geschrieben werden können ohne dass der komplette Benchmark kompiliert werden muss, gehe ich auch von einer geringeren Hemmschwelle und damit verbunden einer größeren potentiellen Zielgruppe aus. Ich für meinen Teil würde eher in einer DLL Benchmarks schreiben als bei dem bisherigen Vorschlag für den Benchmark.
Bei Interesse kann ich ja den Code für den alten Benchmark und die DLL hier öffentlich hochladen, allerdings ist damals nicht sehr viel draus geworden, sprich der Benchmark müsste noch erweitert und für FP und Linux und Co. portierbar gemacht werden.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2622 Wohnort: Berlin
Programmiersprache: Go, C/C++
Verworfen wird hier eigentlich garnichts, du kannst genauso gut deine Lösung um das laden der Benchmarks über jni hinzufügen und dann gäbe es ja alles was gewollt ist nur das man dann nicht für jede Sprache ein framework scheiben muss, bevor man überhaupt mal benchmarken kann. Das größte Problem bei einem Benchmark Framework für jede Sprache ist halt der Unterschied im optimieren, aufrufen und so weiter der Sprache selber.
Zitat:
Ich meine, wenn ich den Geschwindigkeits unterschied zwischen Triangles und Triangle-Strips wissen will bau ich mir das kurz in meinem Programm/Engine/Spiel/WasAuchImmer ein und teste es direkt am lebenden Objekt.
Der Sinn soll sein, dass auch andere auf diesen Benchmark zurück greifen können und sich sicher sind, dass er nicht Verzeucht ist, was in deiner Engine/Spiel/Programm der Fall ist.
Zitat:
Und, das ganze dann als DLL zu verteilen bringt auch recht wenig, denn wenn bei mir Variante B schneller ist als A, wird das tendenziell bei jedem so sein.. also wozu muß jeder das nochmal Benchmarken?
Egoisten. Es geht nicht darum, ob es dir bei deiner Arbeit Hilferich ist, sondern dass die Allgemeinheit diese nutzen kann. Ich glaub du hast nicht lange genug darüber nachgedacht, denn NV, AMD und schon zwischen den einzelnen Generation beider Hersteller haben unterschiedliche Performance, Optimierungen und Verhalten. Bestes Beispiel ist hier eine konstante for Schleife in GLSL.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich muss aber nochmal dazu sagen, dass der alte Benchmark nach meinem Dafürhalten so nicht funktionieren kann. Zumindest nicht mit Sprachen != Pascal. Wie da mit PChars umgegangen wird grenzt an grobe Fahrlässigkeit .
Ich hab ne Reimplementation auf Interfacebasis mit ordentlichen PChar-Handling angefangen - das Framework steht, es müsste nur eine anständige GUI dazu sowie das Speichern und Auswerten der Ergebnisse. Wenn man den Test immer mehrfach ausführen und die Ergebnisse mitteln will, sollte das auch noch implementiert werden. Das Auslesen von Hardware ist da ebenfalls nicht mit drin, das überlasse ich denjenigen, die davon mehr Ahnung haben als ich .
Ich hängs mal an.
greetings
//Edit: Noch eine Anmerkung: Für Windows muss noch ein Timer implementiert werden. Dazu im Hostprogramm eine neue Unit nach dem Schema von DGLIntfTimerLinux.pas.
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
@Aya: Es geht darum zu zeigen, dass etwas schneller ist und nicht nur dieses zu behaupten. Ich sehe da sowas wie eine Datenbasis vor mir auf die wir dann am besten aus dem Wiki heraus verlinken können.
Dann kann man Benchmarks für Sachen schreiben wie: - Welche Primitive ist am schnellsten/Langsamsten (glBegin benchmark) - Wie stark wirken sich glBegin/glEnd blöcke aus? - Wie stark ist der unterschied zwischen FLAT/SMOOTH Shading - Wie stark bremst glPush/glPop Matrix - wie stark bremsen Texturwechsel
- Wie schnell sind zwei alternative Shaderimplementationen
All solche Sachen. Sowas mit Fakten untermauern zu können fände ich sehr erstrebenswert.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Evtl. sollte man mal einen Chatabend dafür ansetzen. Wir diskutieren grad z.B. im IRC über den Benchmark und wie er Ergebnisse etc. übergeben soll, dass geht dort alles viel besser und direkter als im Forum. Gab sowieso schon lange keinen DGL-Chatabend mehr.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2622 Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich schlage für alle ein Chatabend am 25.04.2010 vor, die Uhrzeit sollte wir zwischen 16 und 20Uhr an setzen. Thema wäre: "Finale Version des DGL Benchmark" Es wäre z.B. zu klären ob wir den alten DGL Benchmark aufrüsten, den neuen java Benchmark erweitern oder ob ein neues Benchmark Framework in einer bestimmten Sprache geschrieben werden sollte. Ob noch Erweiterungen(keine Änderungen) noch hinzugefügt werden müssten, aufgrund von nicht beachteter Probleme oder weil die treibende Kraft es für Sinnvoll hält.
Teilnahme folgender Personen wäre unbedingt wichtig: -Flash -damadmax -dj3hut1 -Sascha Willems Der Termin müsste sich nach den gelisteten Personen richten und jede weitere Person die Interesse hat kann der Diskussion beiwohnen und sein Wissen, Erfahrung sowie Skepsis einbringen.
Wenn es gewünscht ist kann ich entsprechende Rechte für den Verlauf des Chatabend an eine Führungsperson verteilen, alternativ kann auch ich die Arbeit übernehmen. Schön wäre es allerdings, wenn sich I0n0s und/oder Frase bereit erklären diese Rolle eventuell zu übernehmen, da ich diesen Personen schon vor langer Zeit ausreichende Rechte im dgl Channel gegeben habe und aus meiner Sicht Zu verlässlich sind.
Ziel, des Chat-Abend ,ist die Entwicklung des Benchmark Framework fertig stellen zu können.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Oh Déja-Vu Ich bin aber defintiv dabei (wenn auch mit kurzer Unterbrechung). Wenn sich hier auch mehr Unterstützung abzeichnet und der Termin sich tatsächlich anbahnt werd ich mal einen Newseintrag dazu posten, evtl. bringt dass ein paar Leute mehr mit ins Boot.
Mitglieder in diesem Forum: 0 Mitglieder und 0 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.