1

我想分析我用 C# 编写的应用程序,使用 Cloo 作为 OpenCL 的包装器。我已经尝试了一些东西...... gDEBugger、AMD APP SDK、CodeXL、KernelAnalyzer......

将我的内核代码原样复制粘贴到 KernelAnalyzer 将表明瓶颈是 ALU 操作。但是,由于它只是一个内核分析器,我并不完全信任生成的信息。

为了正确分析我的应用程序,我尝试了其他工具。我尝试使用 sprofile.exe 通过控制台使用 APP SDK 进行分析,但我总是得到“无法启动应用程序:0:进程已成功终止”。我真的无法猜测问题可能是什么。

使用独立工具 CodeXL 和 gDEBugger 时,我可以在运行 .exe 时看到已调试的进程事件(线程启动、消息),仅此而已。没有函数调用、内存信息、统计信息等……就像我没有运行应用程序一样,都是空的!所以对我来说基本没用。

我真的不知道问题可能是什么。会不会是因为使用 Cloo 作为包装器会使所有执行的操作对分析器不可见?

我会很感激任何提示!提前致谢!

4

1 回答 1

3

我刚刚尝试使用 CodeXL 分析 Clootils.exe(Cloo 发行版附带的示例),经过反复试验,我能够让 CodeXL 工作。

我必须首先重建 Cloo.dll 和 ClooUtils.exe,并将 Platform 目标设置为 x86。使用“任何 CPU”的默认设置给了我一个“应用程序无法正确启动 (0xc000007b)”。错误。尝试“x64”给了我一个“无法配置文件”错误消息,并将 ClooUtils.exe 进程留在内存中。但是尝试使用“x86”让我可以很好地分析。我在 CodeXL 中尝试了“GPU:应用程序跟踪”和“GPU:性能计数器”配置文件模式,并且都有效。

因此,这可能会提供一种解决方法来允许使用 CodeXL。

于 2013-02-08T17:46:30.187 回答