Profiling OpenCL-Kernel
Ich versuche zu optimieren meine OpenCL-Kernel und alle, die ich jetzt haben, ist NVidia Visual Profiler, das scheint eher eingeschränkt. Ich möchte, um zu sehen, line-by-line-Profil von kernels, um besser zu verstehen, Probleme mit Koaleszenz -, etc. Gibt es eine Möglichkeit zu bekommen, mehr gründliches profiling-Daten als die, die von Visual Profiler?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass AMD CodeXL ist, was Sie suchen. Es ist eine Kostenlose Sammlung von tools, die enthält eine OpenCL-debugger und einen GPU profiler.
Die OpenCL-debugger ermöglicht es Ihnen zu tun, Zeile für Zeile Debuggen Ihrer OpenCL-Kernel und dem host-code, Ansicht alle Variablen, die über verschiedene Arbeitsgruppen, sehen Sie sich die besonderen Ereignisse und Fehler, die auftreten, etc..
Die GPU profiler hat ein nettes feature, erzeugt eine Zeitleiste zeigt an, wie lange dein Programm ausgibt für Aufgaben wie Daten-transfer-und kernel-Ausführung.
Weitere Infos und download-links, check-out http://developer.amd.com/tools-and-sdks/heterogeneous-computing/codexl/
Nein, es gibt kein solches tool, aber Sie können ein Profil Ihrer code-änderungen. Versuchen Sie, die Messung der Geschwindigkeit des Codes etwas ändern und dann Messen Sie es erneut. clEnqueueNDRangeKernel ein ereignisargument, die verwendet werden können, mit clGetEventProfilingInfo danach, der timer ist sehr scharf, die Genauigkeit gemessen wird, in der Größenordnung von Mikrosekunden. Dies ist der einzige Weg, um die Leistung zu Messen von einer separaten code-Teil...
Habe ich noch nicht testen, aber ich habe gerade dieses Programm http://www.gremedy.com/gDEBuggerCL.php.
Die Beschreibung lautet: "Dieses neue Produkt bringt gDEBugger advanced Debugging, Profiling und Speicher-Analyse-Fähigkeiten, um den OpenCL-Entwickler der Welt..."
LTPV ist ein open-source -, OpenCL-profiler , die möglicherweise Ihren Anforderungen angepasst. Es ist, für jetzt, funktioniert nur unter Linux.
(Offenlegung: ich bin der Entwickler des Tools)