OpenCL (CPU + GPU) Benchmark

Status
Für weitere Antworten geschlossen.
Also, ich hab mal ein jahr lang auf ner Berufsschule Berufsfachrichtung Informatik kurz BRI gemacht.
Dort haben wir auch Grundlagen gelernt und kleinere Programme geschrieben, noch mit Turbopascal :kotz:
Ist jetzt schon 6 jahre her, naja aber von dem was ihr hier schreibt versteh ich nur Bahnhof xDD :huh:
Kann ich jetzt so ohne weiteres nicht mal annährend nachvollziehen.

So naja, ich hab aber wieder bissl OC betrieben und meine Werte wieder etwas verbessert :D

Da ich die Auflistung von Joker4Life sehr einfach und übersichtlich finde, hab ich diese mal übernommen.
Thx an Joker4Life

@Thysol:
Wenn dir nicht zu viel Mühe macht, wäre es bestimmt ne Überlegung Wert, so die Listen weiterhin zu gestalten.

So meine neuen Werte:
CPU Benchmark:
Tight86|Core i7-920@4,4GHz|GTX285(OC)|DDR3-1600|7,3496051

GPU Benchmark 1.0:
Tight86|Core i7-920@4,4GHZ|GTX285(OC)|DDR3-1600|0,1440258


GPU Benchmark 1.2:
Tight86|Core i7-920@4,4GHZ|GTX285(OC)|DDR3-1600|2,766576
 
Zuletzt bearbeitet:
@thysol

ich hab grad mal über das OpenCLTemplate gelesen.

Das ding ist fast zu abstrahiert.

Ich muss sagen, das automatisiert eine ganze Menge. Das Prob ist, ich hab keine Ahnung wie ich auf das cl_Event zugreifen kann. ich hab die Doku mal quergelesen, aber nichts zu dem cl_event gefunden.

Wenn du mit den OpenCLTemplate arbeitest, kannst du mir vielleicht einen tipp geben.
wenn ich die funktion GASS.OpenCL.CLEvent aufrufe, kann ich zwar ein event erstellen, aber der compiler sagt mir, das ding bekommt keine parameter übergeben.
Hast du ne ahnung wie ich da dran komme?
weil zum spaß ist ja keine funktion VectorSum.Execute(CLCalc.Program.CommQueues [CLCalc.Program.DefaultCQ], args, workers, new GASS.OpenCL.CLEvent[0], new GASS.OpenCL.CLEvent()); vorhanden.
Ich kann die funktion aber nicht ausführen, gibt mir ein InvalidEventList.
dabei sollte es kein problem mit einem leeren event geben, weil mit einem leeren event schaltest du im standard - c -binding das event aus.

MFG Sheeep
 
XFX 5850 (OC) / DDR3-1600 / i7-860


attachment.php
 
@Rayman: Eventuell kann deine Karte kein OpenCL, da sie anscheinend recht alt ist. Unter ATI Stream SDK v2.2 with OpenCL? 1.1 Support | AMD Developer Central findest du eine Auflistung der Ati-Karten die OpenCL unterstützen, falls es ne nVidia ist, musste bei denen mal schauen.
also opencl kann die karte den sie hat ja auch den 1.0 benchmark ohne probleme verarbeitet auserdem wird mir in gpu-z angezeigt das die karte opencl kann werde im laufe der nacht mal den treiber neuisterlieren und gucken ob das was bringt
ansonsten werde ich wohl warten müssen bis meine ati karte aus der reparatur wieder da ist:(
 
i7-860 @ 4 GHz / DDR3-1600

attachment.php



XFX 5850 Black Edition @ 900/1300

Btw: Kann es sein, dass diese aufploppenden Fenster bei ATI-Karten einen Performance-Nachteil darstellen?

attachment.php
 
Die Highscore Liste wurde wie versprochen geupdatet.

@Thysol:
Wenn dir nicht zu viel Mühe macht, wäre es bestimmt ne Überlegung Wert, so die Listen weiterhin zu gestalten.

Dazu muss ich noch Meinungen anderer abwarten. Also, wie wollt ihr die Highscore Liste:

Tight86|Core i7-920@4,4GHz|GTX285(OC)|DDR3-1600|7,3496051

oder
Bis jetzt steht es 2:0 fuer die neue Highscore Liste.

Hast du ne ahnung wie ich da dran komme?

Nein, leider nicht. Deswegen habe ich ja v1.1 mit Cloo programmiert aber dass lief dann ja aber nicht auf Geforce Grafikkarten. Du kennst dich aber echt mit OpenCL aus, Hut ab.:daumen:


 
so jetzt steht es 3:0 für das neue Design Teufel
hätte allerdings noch nen verbesserungsvorschlag (bediene mich einfach mal am obigen Ergebnis :ugly:)

Tight86 | Core i7-920@4,4GHz | GTX285(OC) | DDR3-1600 | 7,3496051 l Screenshot
(davor dann noch die Platzierung ;))

und würde vorschlagen, dass du Benchmark 1.1 aus der Downloadliste streichst ;)

EDIT

bei uns gibts cuda an der uni ;)
wir haben sogar telsaserver zum rechnen :P (nvidia sei dank)

oha, wo studiert der Herr denn?^^
 
Zuletzt bearbeitet:
Mein RAM läuft übrigens mit DDR3-1600, die 285er GTX könnte ich fast unendlich übertakten und ein Ergebnis bekommen (Kurzzeitbeanspruchung), deshalb sollte der Benchmark min. 100 Sekunden andauern.

Diese Taktungen kann meine 285er GTX in Spielen nie durchhalten, vorallem nicht in Metro 2033.
 
Zuletzt bearbeitet:
Btw Thysol ich hab dazu geschrieben das meine 5870 auf 900/1250 läuft, also ne OC ist ;) wäre nett wenn dus bei mir auch hinschreibst.
 
oha, wo studiert der Herr denn?^^

In der Schweiz ^^

Unis, an denen es cudakurse/seminare gibt, sind nicht selten:
kuckst du hier:
CUDA Course Map

EDIT:
Grade deshalb wirs auch schwer einen anderen standard als cuda zu etablieren... vorallem auch weil amd nicht wirklich was dagegen unternimmt...

wie auch schon erwähnt: cuda oder opencl ist nicht das problem... das problem sind effektive algorithmen dafür...

Nein, leider nicht. Deswegen habe ich ja v1.1 mit Cloo programmiert aber dass lief dann ja aber nicht auf Geforce Grafikkarten. Du kennst dich aber echt mit OpenCL aus, Hut ab.:daumen:
naja, eher mit cuda, aber das ist sehr ähnlich.
und leider nicht mit dem C# binding *sorry*


also was du auf jeden fall machen kannst ist die zeitmessung soweit zu verbessern, dass du die zeitmessung erst startest, wenn der kernel schon kompiliert ist.
also so:
sw.Start();
for (int p = 0; p < 100; p++)
{
VectorSum.Execute(args, workers);
}

varV1.ReadFromDeviceTo(v1);
sw.Stop();

der opencl-kernel wird ja erst zur laufzeit erzeugt. und das kompilieren des kernels hängt maßgeblich vom prozessor ab. deshalb schwanken die werte mit gleichen karten z.T. so. der eine prozessor kanns halt schneller compilieren.
die zeit die durch das compilieren dazukommt ist cuda theoretisch schneller. aber das kompilieren hat eine fixe komplexität, deshalb kann man es vernachlässigen.
 
Zuletzt bearbeitet:
und hat auf der anderen Seite den Vorteil der Portabilität, und es muss halt nur einmalig kompiliert werden, sprich im Normalfall wird es eh nen unbedeutender Anteil an der Laufzeit haben
 
und hat auf der anderen Seite den Vorteil der Portabilität, und es muss halt nur einmalig kompiliert werden, sprich im Normalfall wird es eh nen unbedeutender Anteil an der Laufzeit haben

Genau:daumen:
hatte ich ja auch schon geschrieben.

Außerdem kann der Code bei JIT auf das spezielle vorhandene Gerät optimiert werden, nicht nur allgemein auf "Geräte einer bestimmten Art" (z.B. auf GPUs, die unifield shader haben, oder so).
Dadurch kann der Code (wenn der Compiler speziell auf das VORHANDENE Geräte optimieren würde) sogar scheller werden.
(Stichwort: VLIW und LLVM).

EDIT:
Aber du stimmst mir doch sicher zu, dass die kompilierzeit nicht mit in einen Benchmark für GPUs gehört?
 
@Skysnake
so wie der benchmark momentan ist (sourcecode von seite 11) wird die zeit, die der OpenCL JIT-Compiler benötigt um das Programm zu kompilieren, mitgemessen.
Das macht in einem GPU benchmark für mich keinen sinn...
 
Mal noch ne ganz blöde frage, die aber irgendwie hier rein passt:
Die Fermi Architektur unterstützt doch ECC-Rams/Register/Caches...
Sind die Tesla/Quadro only, oder sind die auch in den Geforce GTX 465/470/480 drin?


EDIT:
und gibst ne möglichkeit die double precision freizuschalten?
 
Also die ECC Fähigkeit steckt in den Fermi Chips auf jedenfall drin, egal ob Tesla oder GeForce, (GF100 sicher GF104 bin ich mir nicht sicher) Ob der VRAM allerdings auch ECC hat hängt vom Boardlayout ab, sprich auf ner GeForce haste keinen ECC-RAM, bei ner Tesla-Karte haste ECC-RAM, der Cache etc sind aber bei beiden ECC, bzw halt ne andere Korrektur, gegen Bit-Fehler, die hat ATI allerdings auf den Chips/Caches wohl auch soweit ich das verstanden habe.

Ob man double percision freischalten kann ist ne gute Frage, bisher ist da nichts bekannt. Hängt halt davon ab, ob sie lasercuts gemacht haben, was ich nicht glaube, oder per BIOS dran geschraubt haben, was ich sehr stark vermute.

Wenn ich nen GF100 in die Finger bekommen würde, könnt ichs dir eventuell sagen, ob se lasercuts gemacht haben oder nicht ^^ Hätte nämlich die Möglichkeit den Chip unter ein Rasterkraftmikroskop zu legen. Der Chip wäre halt 100% sicher danach Schrott, und 100% sicher kann ich mir nicht sein, wieviel man sieht, es ist halt nen Chip aus ner Karte wo WLP drauf war und nicht ein frischer aus der Frabrik..... :wall:
 
Also ECC in den Caches, aber nicht im speicher...
hat die radeon tatsächlich auch?

die dp beim fermi kann nicht mit lasercut verhindert werden. du hast ja 16 shadermodule auf der gf100 (zumindest theoretisch) mit 32 ALUs.

das shadermodul kann damit 2 fließkommerzahlen mit einfacher (jede benötigt 16 ALUs) und 1 fließkommerzahl mit doppelter genauigkeit (benötigt 32 ALUs) verarbeiten => sp : dp = 2:1.

wenn du jetzt die eine hälfte lasercuttest, dann hast du nur noch halbe leistung bei sp. und das wäre auch für computerspiele nicht so gut...
also wirst du mit dem Rasterkraftmikroskop nichts finden ^^

Wenn ich an die DP komme, würde ich mir nämlich überlegen einen fermi zu kaufen, eine gtx 465 oder 470. ne quadro ist mir aber zu teuer.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück