Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Nov 27, 2020 06:47

Foren-Übersicht » Sonstiges » Community-Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 87 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6  Nächste
Autor Nachricht
BeitragVerfasst: Mo Apr 12, 2010 12:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5811
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;

procedure TModule2.RegisterProperties;
begin
NameList  := TStringList.Create;
ValueList := TStringList.Create;
AddProperty('HardwareInfo\Author', 'Sascha Willems', '');
AddProperty('HardwareInfo\Info', 'OpenGL Hardwareinfo module', '');
AddProperty('HardwareInfo\Version', '0.1', '');
end;

procedure TModule2.DrawFrame;
begin
NameList  := TStringList.Create;
ValueList := TStringList.Create;
NameList.Add('Vendor');
ValueList.Add(glGetString(GL_VENDOR));
NameList.Add('Renderer');
ValueList.Add(glGetString(GL_RENDERER));
NameList.Add('Version');
ValueList.Add(glGetString(GL_VERSION));
NameList.Add('Extensions');
ValueList.Add(glGetString(GL_EXTENSIONS));
fabort := True;
end;


{$R *.res}

begin
 RegisterModule(TModule2);
end.


Ausgabe :
Bild

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Apr 12, 2010 12:36 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2576
Wohnort: Berlin
Programmiersprache: C/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

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Apr 12, 2010 13:36 
Offline
DGL Member
Benutzeravatar

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.


Dateianhänge:
benchmark-2.zip [5.96 MiB]
237-mal heruntergeladen

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Apr 12, 2010 14:34 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7772
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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Apr 12, 2010 15:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5811
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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Apr 19, 2010 15:40 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7772
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Könnte das Thema dann mal jemand vorantreiben?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Apr 19, 2010 19:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2576
Wohnort: Berlin
Programmiersprache: C/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

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Apr 20, 2010 03:13 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2023
Programmiersprache: C++
Nach aktueller Planung hätte ich an dem Tag Zeit. Ich bitte aber um Erinnerung an den Termin.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Apr 20, 2010 11:32 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5811
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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Apr 20, 2010 12:32 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7772
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Sonntag Nachmittag sollte machbar sein.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Apr 21, 2010 06:39 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

der Termin für den Chatabend ist ok, ich werde auch dabei sein.

Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Apr 21, 2010 12:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Ja. Bislang spricht bei mir nichts degegen.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Apr 21, 2010 13:56 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2576
Wohnort: Berlin
Programmiersprache: C/C++, C#
Fein dann sind haben ja die treibenden Kräfte zugesagt :)

Könnte man nun noch eine News für den Sonntag ab 16Uhr Chatabend rein stellen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Apr 21, 2010 20:22 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Hat sich gerade leider etwas verschoben bei mir. Ich kann erst so ab 18:30 Uhr. Ich hoffe das ist ok?

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Apr 25, 2010 14:22 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7772
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Da hier noch nix finales gesagt wurde:

Die Session findet heute um 18:30 statt.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 87 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6  Nächste
Foren-Übersicht » Sonstiges » Community-Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.071s | 18 Queries | GZIP : On ]