PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenCL-Spezifikationen sind draußen


Seiten : 1 [2]

Nasenbaer
2012-04-18, 19:32:33
Kann von euch jemand Kernels debuggen mit dem gDebugger (dem von AMD) und ner AMD GPU?
Ich komme immer den Fehler, dass der Kernel sich nicht debuggen ließe, da er nicht unterstützte Features nutzen würde. Im AMD Dev Forum haben das Problem mehrere und scheint wohl von geDebugger-Version und Catalyst-Version abzuhängen.


Für mich derzeit die einzige Variante einen OCL-Kernel zu debuggen:
Die printf-Erweiterung nutzen und den Kernel auf der CPU ausführen. Zusätzlich den Kernel per Environment-Variable nur auf einem Kernel ausführen. Zu kann man zumindestens Fehler beim Berechen von Indizes finden was in Speicherzugriffsfehler enden würde.

Generell scheint das Debuggen aber immer noch die reinste Qual zu sein.

Gipsel
2012-04-18, 19:51:04
Kann von euch jemand Kernels debuggen mit dem gDebugger (dem von AMD) und ner AMD GPU?
Ich komme immer den Fehler, dass der Kernel sich nicht debuggen ließe, da er nicht unterstützte Features nutzen würde. Im AMD Dev Forum haben das Problem mehrere und scheint wohl von geDebugger-Version und Catalyst-Version abzuhängen.Als die den Debugger damals rausgebracht haben, gab es im Paket dazu einen passenden Treiber. Es scheint also zumindest wahrscheinlich, daß nur einige Versionen Support bieten (warum auch immer). Aber eine Lösung kann ich leider nicht bieten.

Nasenbaer
2012-04-18, 19:53:52
Als die den Debugger damals rausgebracht haben, gab es im Paket dazu einen passenden Treiber. Es scheint also zumindest wahrscheinlich, daß nur einige Versionen Support bieten (warum auch immer). Aber eine Lösung kann ich leider nicht bieten.
Mittlerweile steht in den Sys-Requirements: Latest Catalyst-Version und damit gehts bei mir nicht und einigen anderen auch.
Nvidias Parallel NSight kann nur CUDA-Kernel debuggen und das auch nur remote bzw. mit 2 GPUs im system (der neueste interne RC solls wohl auch mit nur einer können). Aber OpenCL geht gar nicht.

Generell ist das alles sehr unbefriedigend. :/

Nasenbaer
2012-04-18, 20:29:15
Gerade mal die neue WinZip-Version getestet:

Windows-Ordner von ner SSD aus komprimiert und Archiv auf ner HDD angelegt (14,76GB Daten und 56% Kompressionsratio).

WinZip-CPU: 14:53 min.
WinZip-OCL: 9:03 min.

Schonmal deutlich schneller. OpenCL kann also durchaus auch in manche Alltags-Anwendung spürbar helfen.

Gipsel
2012-04-18, 21:56:20
Gerade mal die neue WinZip-Version getestet:

Windows-Ordner von ner SSD aus komprimiert und Archiv auf ner HDD angelegt (14,76GB Daten und 56% Kompressionsratio).

WinZip-CPU: 14:53 min.
WinZip-OCL: 9:03 min.

Schonmal deutlich schneller. OpenCL kann also durchaus auch in manche Alltags-Anwendung spürbar helfen.
Mit was für einer GPU denn? Interessant wäre es, wenn es schon bei den APUs zu einer Beschleunigung führen würde. Ich könnte mir durchaus vorstellen, daß die breiten GPUs gar nicht voll ausgelastet werden.

Nasenbaer
2012-04-18, 22:15:30
Mit was für einer GPU denn? Interessant wäre es, wenn es schon bei den APUs zu einer Beschleunigung führen würde. Ich könnte mir durchaus vorstellen, daß die breiten GPUs gar nicht voll ausgelastet werden.
Achso mit Core i7-920 @ default (2.6GHz) und für den GPU-Test meine HD5870.
Interessant war noch, dass bei der CPU-Variante nur ein Core genutzt wurde aber mit OpenCL-Support die CPU zu ca. 3/4 ausgelastet war.


Hab den Test auch eher mal nebenbei gemacht. Man sollte man die GPU-Auslastung dabei beobachten - da haste Recht. Und warum mit OpenCL plötzlich mehrere Cores genutzt werden, wäre auch mal interessant.

Simon
2012-04-19, 12:47:53
Hab den Test auch eher mal nebenbei gemacht. Man sollte man die GPU-Auslastung dabei beobachten - da haste Recht. Und warum mit OpenCL plötzlich mehrere Cores genutzt werden, wäre auch mal interessant.
Um das OpenCL-Device mit Arbeit zu füttern. Dazu Konvertierungen und Datentransfers.
Eigentlich so wie bei OpenGL/D3D auch.

Gipsel
2012-04-19, 14:06:29
Achso mit Core i7-920 @ default (2.6GHz) und für den GPU-Test meine HD5870.
Interessant war noch, dass bei der CPU-Variante nur ein Core genutzt wurde aber mit OpenCL-Support die CPU zu ca. 3/4 ausgelastet war.Hmm, das hört sich für mich fast so an, daß die GPU-Nutzung bald etwas zweifelhaft ist und die OpenCL eventuell nur auf der CPU für das Multithreading nutzen. :|

Nasenbaer
2012-04-19, 18:34:19
@Simon
Kann ich mir nicht so recht vorstellen. Gipsels Vermutung ist da plausibler aber der Lüfter meiner Radeon drehte mit der Zeit auch hoch, weswegen sie wenigstens zum Teil mit genutzt wurde. Vielleicht wurden nur bestimmte Teile der Kompressionsberechnung auf die GPU ausgelagert.
Ich glaube jedenfalls nicht, dass sie die GPU von mehreren Threads aus mit Daten füttern. Was möglich wäre, dass ein Thread die GPU "belädt" und ein zweiter die Daten wieder abholt.

Skysnake
2012-04-19, 19:30:58
Macht keinen Sinn. Dafür gibts queues, die auch recht gut funktionieren bei AMD.

Man muss die Daten aber auch entsprechend vor-/nachbereiten. Die GPU taugt ja nicht für alles.

Zudem muss man ja auch erst mal die Daten auf die GPU bringen und dann dort wieder abholen. Je kürzer die Arbeitszeit, desto stärker haut der Overhead/Sequenzielle Anteil rein.

Nasenbaer
2012-04-19, 20:14:17
Macht keinen Sinn. Dafür gibts queues, die auch recht gut funktionieren bei AMD.

Man muss die Daten aber auch entsprechend vor-/nachbereiten. Die GPU taugt ja nicht für alles.

Zudem muss man ja auch erst mal die Daten auf die GPU bringen und dann dort wieder abholen. Je kürzer die Arbeitszeit, desto stärker haut der Overhead/Sequenzielle Anteil rein.
Das meint ich ja. Beide befüllen einen OCL CommandQueue. Einer liest die Daten von der Platte und übergibt sie an die GPU. Der zweite holt die Daten aber und schreibt sie weg auf die Platte.

Skysnake
2012-04-19, 20:33:13
Klar kannste das machen, du kannst aber auch einfach mit einem Thread die Queue voll bürsten (geht ja asyncron) und dann die Ergebnis abholen. Die Queue füllen ist absolut vernachlässigbar.

Man kann natürlich aber beide Varianten machen.

deekey777
2012-05-21, 11:31:57
AMDs APP SDK 2.7 mit OpenCL 1.2 ist draußen. Aber die direkten Downloadlinks wollen nicht gehen, daher:
http://devgurus.amd.com/message/1281313#1281313

Ihr Programming Guide ist aber kräftig gewachsen: http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf

Gipsel
2012-05-21, 14:05:18
Ihr Programming Guide ist aber kräftig gewachsen: http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf
Habe nur mal schnell reingeschaut. Die haben versucht ein paar Informationen über GCN einzubauen. Unglücklicherweise geht das ziemlich durcheinander, so daß oft nicht klar ist, ob etwas jetzt für GCN oder die VLIW-Architekturen zutrifft, wenn man es nicht sowieso schon weiß. Sieht aus, wie mit ziemlich heißer Nadel (oder recht nachlässig) gestrickt.

=Floi=
2013-01-06, 05:09:25
auf dem gebiet tut sich auch agrnichts. echt sehr arm, weil da so viel potential vorhanden wäre.

Skysnake
2013-01-06, 11:12:05
Es soll aber eine neue OpenCL Version in der Mache sein, die auch einige "interessante" Dinge zu GCN enthalten soll. Ich hab Q1 2013 im Gedächtnis.