OpenCL: interne Implementierungstests in MQL5 - Seite 37

 
joo: Und höchstwahrscheinlich liegt es nicht am Speicher, sondern am Task-Parallelisierungsmechanismus des OpenCL-Treibers selbst. Sie müssen mit einem Vielfachen der Anzahl der Fliegen experimentieren.
Was ist, wenn ich nicht weiß, wie viele Fliegen ich habe (Intel HD Graphics 1000)? Entweder 6 oder deutlich mehr... Wenn es 6 sind, woher kommt dann eine 25-fache Steigerung der Ausführungsgeschwindigkeit?
 
Mathemat:
Was ist, wenn ich nicht weiß, wie viele Fliegen ich habe (Intel HD Graphics 1000)? Entweder 6 oder deutlich mehr... Wenn es 6 sind, woher kommt dann die 25-fache Steigerung der Ausführungsgeschwindigkeit?
Die 25-fache Verstärkung kommt von meinem Genie, also ein bisschen von Vektoroperationen. Das Skalarprodukt von Vektoren zählt auf dem Grafikprozessor sehr schnell.
 
MetaDriver: x25-Wachstum ist von meinem Genie, also ein bisschen von Vektoroperationen. Das Skalarprodukt von Vektoren zählt auf dem Grafikprozessor sehr schnell.

Beachten Sie, dass diese 6 Bienen mit 1,1 GHz laufen, was 2,5 Mal niedriger ist als die Steinfrequenz. Das sind also 2,5 bedingte Bienen, die mit der Frequenz des Steins laufen. Aber woher kommt das 25-fache?

 
Mathemat:

Vergessen Sie nicht, dass diese 6 Bienen mit 1,1 GHz laufen, was 2,5 Mal niedriger ist als die Steinfrequenz. Das sind 2,5 bedingte Bienen, die mit der Frequenz des Steins arbeiten. Aber woher kommt das 25-fache?

SSE verarbeitet 4 Floats auf einmal * 2 Kerne + Compiler-Optimierungen.
 
mql5: SSE verarbeitet 4 Floats gleichzeitig * 2 Kerne + Optimierungen des Compilers.

Die gesamte Arbeit wird also von den CPU-Kernen erledigt - und nicht von den Bienen der eingebetteten GPU?

Und zweitens: Wenn nicht auf Bienen, wie kann man dann den Code genau auf ihnen laufen lassen?

P.S. AMD hat diesen Schlamassel mit leistungsstarken Onboard-GPUs nicht umsonst gemacht: Der A8-3850 hat nicht weniger als 400 Bienen...

P.P.S. Also, ein Vertreter des Entwicklers ist aufgetaucht und wieder weggelaufen :(

 
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 mit OpenCL 1.1 (16 Einheiten, 1225 MHz, 1536 Mb, Version 285.62)
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 mit OpenCL 1.1 (16 Einheiten, 1225 MHz, 1536 Mb, Version 285.62)
^^^ Wie kann man testen?
 
casinonsk: ^^^^ wie zu testen?
Führen Sie einen der von MetaDriver veröffentlichten Codes als Skript aus.
 
Mathemat:
Führen Sie einen der von MetaDriver veröffentlichten Codes als Skript aus.

OpenCL ausführen.

1 Kern wurde im Durchschnitt zu 50 % ausgelastet.

2 Kern wurde überhaupt nicht verwendet.

 
casinonsk:
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 mit OpenCL 1.1 (16 Einheiten, 1225 MHz, 1536 Mb, Version 285.62)
2012.03.16 23:34:11 Terminal GPU: NVIDIA Corporation GeForce GTX 590 mit OpenCL 1.1 (16 Einheiten, 1225 MHz, 1536 Mb, Version 285.62)
^^^ Wie kann man testen?

Dual-Boost-GPUs sind da. Sehr interessant. Welche CPU ist es?

Führen Sie das Skript im Anhang aus.

Dateien:
 
Mathemat:

Die gesamte Arbeit wird also von den CPU-Kernen erledigt - und nicht von den Bienen der eingebetteten GPU?

Und zweitens: Wenn nicht auf Bienen, wie kann man dann den Code genau auf ihnen zum Laufen bringen?

P.S. AMD hat diesen Schlamassel mit der leistungsstarken Onboard-GPU nicht ohne Grund angerichtet: Im A8-3850 stecken nicht weniger als 400 Bienen...

P.P.S. Also, ein Vertreter der Entwickler ist aufgetaucht und wieder weggelaufen :(

Ich könnte mich irren, was die Tatsache angeht, dass es auf der CPU funktioniert, aber nach Ihrem Beitrag zu urteilen und die internen Besonderheiten zu kennen, ist es durchaus möglich, dass die Arbeit auf der CPU-Emulation von AMD gemacht wurde.
Leider ist in der aktuellen Implementierung die Wahl des Geräts dem Terminal überlassen, aber in der nächsten Version wird es möglich sein, eines der verfügbaren Geräte selbst zu wählen.