سؤال

I'd like to profile my application which I've written in C# using Cloo as a wrapper for OpenCL. I've tried a few things... gDEBugger, AMD APP SDK, CodeXL, KernelAnalyzer...

Copy-Pasting my Kernel Code as it is to KernelAnalyzer will indicate that the bottleneck are the ALU operations. However, since it's only a kernel analyzer I don't wholly trust the generated information.

To properly profile my application I tried the other tools. I tried to profile with APP SDK via console using sprofile.exe but I always get "Failed to start application: 0: the process has terminated successfully". I can't really guess what the issue might be.

When using the standalone tools CodeXL and gDEBugger I can see the Debugged Process Events (Threads starting, Messages) when running the .exe but that's about it. No function calls, memory info, statistics etc... it's all empty as if I didn't run the application! So it's basically useless for me.

I don't really know what the problem might be. Could it be that using Cloo as a wrapper makes all the performed operations invisible to the profilers?

I'd appreciate any hints! Thanks in advance!

هل كانت مفيدة؟

المحلول

I just tried to profile Clootils.exe (the sample that comes with the Cloo distro) with CodeXL, and after some trial and error, I was able to get CodeXL to work.

I had to first rebuild both Cloo.dll and ClooUtils.exe with the Platform target set to x86. Using the default setting of "Any CPU" gave me a "The application was unable to start correctly (0xc000007b)." error. Trying "x64" gave me a "Failed to profile" error message, and left the ClooUtils.exe process in memory. But trying with "x86" allowed me to profile just fine. I tried both "GPU: Application Trace" and "GPU: Performance Counters" profile modes in CodeXL, and both worked.

So that may provide a workaround to allow using CodeXL.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top