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

Aktuelle Zeit: Mi Apr 24, 2024 00:17

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
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 23, 2009 22:16 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hi Ziz,
ich versuch mal deine Fragen zu beantworten.

Ziz hat geschrieben:
Das mit den Modulen ist ja leider gecancelt worden, wobei ich das Konzept am besten finde, auch wenn es Java rauskloppen würde bzw. einer einen Java-Wrapper schreiben müsste, also eine DLL/SO, die "java -jar benchmark.jar" ausführt und Rückgabeparameter an den Benchmark durchreicht.


Das is ja hier keine Diktatur. Wenn hier alle für DLLs sind, dann schreibt halt ne Spec die das entsprechend definiert und stellt es zur Diskussion. Aber im Moment sehe ich halt niemanden der das Umsetzt. Deshalb will ich mit meinem Vorschlag echt ein Basicframework definieren. Hier gehts nicht um Architekturpreise.


Ziz hat geschrieben:
Aber davon sind wir ja weg. Was in Bezug auf Betriebssystemunabhängigkeit vielleicht auch nicht schlecht ist... Also stell ich mir nun vor, jede Sprache (also z.B. C++, Pascal oder Scala) schreibt sich einen Benchmark-Kern nach gewissen wohl definierten Kriterien. Am besten wäre ja z.B. zuerst in Pascal, die anderen programmieren nach.


Ja und nein. Die Spezifikation des Benchmarks beschreibt wie der Kern auszusehen hat. Es gibt keine "Leading Language". Es gibt ein "Leading Document" und das ist die Spec.

Ziz hat geschrieben:
Wo werden nun aber die Benchmarks zusammengeführt? Ich sage Benchmark "1000 Cubs in einer Pornodrehumgebung" soll gestartet werden, das Programm sagt mir, ob das geht oder nicht, ich bekomme ein Ergebnis und nun? Gebe es ich es nur aus? Gibt es eine (Internet-)Datenbankanbindung und wenn ja, wie sieht die aus? Oder gibt es nur eine wohl definierte Textfile, die man dann "einreicht", dass sie hinzugefügt wird in den Resultpool?


Es soll ein DB Backend geben. Ich hab im Ausgangspost einen Edit hinterlegt und nochmal paar Worte dazu verloren.


Ziz hat geschrieben:
Und was für Werte interessieren einen als Ergebnis? Nur die FPS' (können ja mehrere sein bei Vergleichen)? Es ist klar, dass das Result natürlich auch die Grafikhardware, die CPU usw. enthalten wird, aber das ist ja unabhängig vom speziellen Benchmark.


Das ist ein Punkt den wir noch diskutieren müssen. Momentan wird die Zeit pro Durchlauf, die daraus resultierende hypothetische Frame-Zahl und die StdAbweichung der gemessenen Werte pro Benchmark-Methode gespeichert.

Wenn dir nochwas einfällt, immer her damit. Viele Sachen kann man aber denk ich aus der Zeit ableiten.

Ziz hat geschrieben:
Und ich bin für eine Umfrage, die in Erfahrung bringen will, wie viele sich zur Verfügung stellen würden bei dem Projekt mit zu wirken. Es bedarf imho eines festen Kernteams (sagen wir 3 Leute, z.B. Flash, Horazont und noch jemand, der sich berufen fühlt und ein wenig Ideen und Umsetzungsvorschläge mitbringt, wobei auch die 3 Leute nur ein Vorschlag ist, der demokratische Mehrheiten bei gleichzeitig wenig "drumrumdiskutieren" möglich macht), das z.B. das "Interface" (Bullshitbingo) und allgemein das Konzept schriftlich festhält - ohne dabei bitte zu kompliziert zu werden, aber immernoch genau. Die letzten beiden Punkte werden wohl schwierig. ;-)


Das sehe ich eigentlich nicht. Wenn die Spec steht wird sie eingefrohren. Die Spec definiert wie die Benchmarks auszusehen haben. Was du dann drinnen machst ist dein Problem. Einzige manuelle Handlung in Zukunft wird es sein, die XML Logs die man per Mail erhält, ins System einzuspeisen. Aber eventuell kann man dafür auch eine Upload-Page coden.

Ziz hat geschrieben:
Gut wären auch erste konkrete Vorstellungen von bestimmten Benchmarks. Und wie das Erweitern genau gedacht ist. Schreibe ich irgendwas (ich teste z.B., wie schnell ich 1000 3DM-Modelle laden und zeichnen kann) oder gibt es eine "Jury", die vorher abklärt, ob überhaupt Interesse an einem Benchmark besteht?


Jeder kann Benchmarks schreiben. Wenn du zu Hause sitzt und dich fragst ob A oder B schneller ist, dann schreibst du einen Benchmark und klärst das für dich. Wenn du willst, dass dein Benchmark in anderen Sprachen umgesetzt wird, dann solltest du eine Beschreibung des Tests und deiner Implementation im Forum veröffentlichen.
Vielleicht lohnt es sich ein Sub-Forum aufzumachen, wo man nur solche Benchmarks vorstellt und auch verteilt. Wer z.B. selbst in der Lage ist einen Benchmark zu schreiben der überall läuft kann den fertigen Benchmark ja auch direkt verteilen. Da fiele dann zwar der Vergleich zwischen Implementationen verschiedener Sprachen weg, aber das ist ja auch eher sekundär.

Ziz hat geschrieben:
Ich hoffe, es sind nicht zu viele (dumme) Fragen, aber ich Begrüße das Projekt erstmal prinzipiell und würde auch gerne etwas (Kleines, wegen kleiner Hardware und so...) beisteuern.


Das sind keine dummen Fragen, bestenfalls Missverständnisse. Wenn du dir nochmal die Spec im Wiki anguckst, wirds eventuell noch klarer.

Ziz hat geschrieben:
PS: Ich hätte sogar schon einen ersten Benchmarkvorschlag, wo Erfahrungen zwar Vorliegen aber ohne konkrete Zahlen:
Objekte mit 10, 20, 50, 100, 200, 500, 1000, usw. Polygone werden im Immediate Mode, mit Vertex Arrays im Quasi Immediate Mode, mit Displaylisten und mit VBOs gezeichnet. Einmal mit, einmal ohne Texturen. Interessant sind die fps und die prozentualen Unterschiede untereinander, z.B. in einer Tabelle mit Polygonanzahl und Zeichnungsmethode ohne Texturen und noch eine mit Texturen. Die Ergebnisse würden mich z.B. sehr interessieren und wenn man das ganze vorher gut festsetzt, schreibe ich nicht für den Lokus, wenn ich es mal täte. Mir fällt hierbei auch auf, dass hier z.B. definiert werden muss, ob man mit oder ohne Culling zeichnet, mit oder ohne Frustum Culling, Oct Trees, Vorsortierung, Transparenz und so weiter und so fort. Am besten wäre es hier also wenn einer in seiner Sprache vorschreibt, es diskutiert und angepasst wird, dass es der Masse (oder dem Kernteam) gefällt und die anderen dann in "ihrer" Sprache 1:1 anpassen/abschreiben, so gut es geht. Zumindest, was das Grafische angeht.

Was du hier beschreibst trifft das was ich oben erklärt habe.
Der Benchmark-Interessierte muss genau definieren was er getestet haben möchte. Das was du beschreibst sind mindestens 3 Benchmarks: einer zu VBOs, einer zu Raumunterteilungs-Techniken und einer zum Einfluss von Vorsortierung.
Es geht immer darum einen Benchmark zu definieren wo sich zwischen den verschiedenen Testläufen möglichst nur ein Parameter ändert. Nur so kann man zeigen welchen Einfluss welcher Parameter hat.

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 10, 2009 09:36 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hat jemand Zeit und Motivation die Spec in einer Sprache seiner Wahl umzusetzen?

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 10, 2009 17:51 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Mal ganz unparteiisch, aber was soll denn letzten Endes im Benchmark dargestellt werden? In der Spec steht nichts darüber drin, oder ich hab es nicht gesehen. Jedenfalls macht es selbst bei dem Specs Beispiel schon einen Unterschied ob man nun nur ein oder n Objekte zeichnet. Denn bei einem Funktionstest ist die FPS Anzahl total irrelevant.

@Hardwaredaten: Würde ich ähnlich Valves Steam machen. Soviel wie nur irgend möglich automatisch sammeln und den Rest vom Benutzer ausfüllen lassen.

Ähnlich würde ich es auch beim Funktionstest machen, den könnte man ja theoretisch immer am Anfang laufen lassen als Grundtest. Müsste lediglich mit dem Erscheinen einer neuen OGL Version aktualisiert werden.

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 10, 2009 18:09 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Richtig. In den Specs steht nur wie der Benchmark Kern funktioniert. Vieviele Objekte gerndert werden wird für jeden benchmark spezifiziert. Das ist dann quasi der Anwendungsfall.

Ob du dann in dem Benchmark einen Level aus Quake renderst oder einen Würfel ist egal. Hauptsache du definierst das deutlich genau in der Benchmarkbeschreibung.

Der DGL_Benchmark ist nicht ein Test. Er ist ein Framework mit dem man die Messungen macht und der eine standardisierte Ausgabe fabriziert die man dann in einer DB einspeisen kann. Wann immer man dann eine OGL Performance Frage mit Messungen klären will, beschreibt man den Benchmark möglichst genau und setzt ihn dann um. Die Beschreibung ist dazu da, dass andere Programmierer den Benchmark für andere Implementationen des DGL_Benchmarks auch umsetzen können. (Falls Bedarf besteht)

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jan 10, 2010 01:42 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Leute die auf dem DGL Treffen waren, wissen es bereits.
Ich habe eine Java JOGL Referenzimplementierung des DGL Benchmarks geschrieben.

Das Packet enthält alle Libs die zur Ausführung nötig sind (jedenfalls für Windows).

Ich hänge diese hier einmal nur an diesen Thread an (und stelle das zip noch nicht in die Filessektion), da es noch 2 entscheidente Schönheitsfehler gibt:

1. das startDglBenchmark.sh Shellscript für Linux existiert noch nicht. Außerdem müssen noch die JOGL Libs für Linux hinzugefügt werden.

2. Das startDglBenchmark.bat Script für Windows existiert zwar, funktioniert aber nicht. Ich bin beim Testen fast Wahnsinning geworden. Es gelingt mir einfach nicht die jars im /benchmarks Ordner so im Classpath bekannt zu machen, dass der DGLBenchmark bei start die in der conf angegebenen Klassen findet (die liegen aber 100% in eben jenen JARs in den korrekten Packages). Falls das jemand fixen kann, wäre das super.


Für die spätere Realease Version kann man sich nochmal Gedanken machen, ob man die Ordnerstruktur noch optimieren kann.

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


Zuletzt geändert von Flash am Sa Feb 06, 2010 19:26, insgesamt 1-mal geändert.
Alte Benchmarkversion entfernt


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jan 16, 2010 22:30 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wie ich sehe gab es 4 Download. Hat es jemand geschafft den Benchmark "manuell" zu starten. Also außerhalb der IDE?

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jan 17, 2010 01:50 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Keine Ahnung, was genau ich noch unter Linux installieren muss, aber java -jar DGL_Benchmark.jar ./ funktioniert - halt nur, dass er dann irgendwelche Dinge nicht findet an Bibliotheken. ^^

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jan 17, 2010 14:54 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Genau darum geht es. Die von mir bereitgestellte Beta ist vom Javacode her zum testen bereit. Nur habe ich probleme den Code außerhalb von der IDE zum Laufen zu bekommen, da ich die Pfade nicht richtig gesetzt bekomme.

Die Idee soll sein, den Benchmark (nicht Java) nur mit einem Parameter aufzurufen. Nämlichen den Pfad zu einem Config File. Dieses enthält in jeder Zeile genau eine Klasse mit komplette Namen welcher dann per Reflection geladen wird und dann in JOGL dargestellt wird.
Außerdem wird noch XMLBeans verwendet um XML zu schreiben.

Also muss Java dafür sorgen, dass
- JOGL Jar und die Libs gefunden werden. Das sollte bereits gehen dank dem -D Parameter.
- Die Benchmark-Jars gelinkt sind, damit die Klassennamen aufgelößt werden können.
- Die XMLBeans Jar(s) gefunden werden.

Und genau hier hapert es.

Falls also ein anderer Javacoder das mal runterladen könnte und den Aufruf so hinbekommt, dass alle Jars gefunden werden und der Benchmark läuft, dann bekommt der von mir 500Karmapunkte.

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Jan 18, 2010 13:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Hab es noch nicht in der IDE getestet und bin wie du bei der Konsole am abdrehen gewesen. Zumal ich mich gefragt habe was du mit all den zusätzlichen Bibliotheken willst. Hätte es eine schlanke XML Lib nicht auch getan?

Mal schauen ob ich es aus der IDE heraus gestartet bekomme...

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Feb 06, 2010 19:33 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
So, ich habe jetzt ein Batchscript geschrieben, welches dafür sorgen sollte, dass der Benchmark unter Windows ab Java 1.5 läuft. (für eigene Benchmarks bitte README lesen wo die eigenen jars hinterlegt werden müssen)

Könnten unsere Linux und Mac User entsprechende Scripte für die jeweiligen Plattformen liefern?

Eventuell müssen noch passende jogl libs (*.so z.B.) in den Jogl Ordner.


Dateianhänge:
Dateikommentar: Neue Version. Dank neuem Script unter Windows + Java1.5 lauffähig.
DGLBenchmark.zip [6.57 MiB]
326-mal heruntergeladen

_________________
Blog: kevin-fleischer.de und fbaingermany.com
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Feb 07, 2010 12:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Err, why use java? Are not we an delphi opengl community?

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Feb 07, 2010 15:22 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Spezifikation steht im Wiki. Eigentlich sollte das auch mal jemand mit Pascal/Delphi umsetzen. Bisher gibt es keine anderen Implementationen.

Ich bin nunmal Java-Programmierer.

Aber: Feel free to implement it in Delphi! ;)

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Apr 08, 2010 14:37 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Ich habe mal ein shellskript zusammengefummelt:
Code:
#!/bin/bash

# Ort der externen Libs / OS spezifischen Libs
LIBRARY_PATH="./jogl1.1.1_osxuniversal:./xmlBeans"

# Pfad zur Hauptklasse / Benchmark-Klassen
PATH_TO_BENCHMARKS="./benchmarks/*"
CLASSPATH="./DGL_Benchmark.jar:"$PATH_TO_BENCHMARKS

# Name der Hauptklasse
MAIN_CLASS="com.delphigl.dglbenchmark.DglBenchmarkMain"

# Parameter für die Hauptklasse
PARAMS="benchmark.conf"

# Alternativ classpath.txt selbst generieren aus vorhandenen Jar-Dateien im Verzeichnis ./benchmarks
if [ ! -x classpath.txt ];
then
  ls $PATH_TO_BENCHMARKS".jar" > classpath.txt
fi

# classpath.txt an CLASSPATH anhängen (Achtung: auf CRLF achten, wenn classpath.txt unter Windows erstellt)
while read line 
do 
CLASSPATH=$CLASSPATH:$line 
done < classpath.txt 

java -Djava.library.path=$LIBRARY_PATH -classpath $CLASSPATH $MAIN_CLASS $PARAMS

Anmerkungen:
Da ich auf keinem Rechner mehr Java 1.5 habe, kann ich die Sache mit den Pfaden nicht testen.
Aber ich habe trotzdem mal eine Schleife eingebaut, die die Datei classpath.txt ausliest und zusammenfügt.
Die Datei classpath.txt muss für OSX mit Unix Linefeeds gespeichert worden sein, sonst wird das CR falsch interpretiert. Alternativ die Datei einfach löschen. Dann wird sie neu erstellt.

Es müssen noch die OSX Libs für Jogl reinkopiert werden. Verzeichnis "./jogl1.1.1_osxuniversal"

[edit]Und auch wahlweise die für Linux[/edit]

_________________
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


Zuletzt geändert von damadmax am Fr Apr 09, 2010 21:08, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Apr 08, 2010 22:56 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hey danke dir!

Eine Frage: Was macht der Doppelpunkt in dieser Zeile
Zitat:
CLASSPATH="./DGL_Benchmark.jar:"$PATH_TO_BENCHMARKS


Das Shellscript ist jetzt für Linux oder für Mac? hmmm "bash" sollte Linux sein, oder?

Du verwendest einige Parameter für das Script. Kannst du eine kurze Anleitung/Beschreibung noch liefern? Ich würde das dann einfach zusammenpacken und so langsam aber sicher hätten wir dann eine Referenzimplementierung.

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Apr 09, 2010 08:23 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Also auf meinem Mac hab ich es getestet. Da gibt es auch alle möglichen Shells. Habe Bash gewählt weil die auf jedem Mac (zumindest Intel basierende) drauf ist. Werd mich mal schlau machen wie es mit PPC aussieht.
Ob es unter Linux läuft kann ich nicht Testen. Evtl zieh ich mir nachher mal ne VM mit Linux drin.

Nein das Skript braucht keine Parameter. Habe nur die Parameter die an Java übergeben werden in Variablen gepackt. Ich finde diese Aneinanderreihung beim Java Aufruf manchmal sehr unübersichtlich.

Zu dem Doppelpunkt kann ich nur sagen: Mit einem Semikolon dazwischen läuft es nicht. :D

_________________
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  
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 33 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.

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