2012-08-30 38 views
4

如何以编程方式启动CUDA分析器下的CUDA命令行应用程序并通过分析器访问存储为.csv文件的生成的分析信息?以编程方式运行CUDA命令行分析器

背景:

我正在写自动化相当于代码的CPU和GPU版本之间的性能比较的程序。该程序将两个可执行文件的路径作为参数,一个用于CPU,另一个用于GPU。然后该程序通过在CUDA命令行分析器下运行它来分析GPU版本并分析结果。

我使用Windows 7

我想通过使用系统()或的ShellExecute()调用来启动分析器。

我必须试着像这样运行:系统

我已经阅读了计算命令行Profiler用户指南(“nvvp +文件路径”),但还没有找到所需的信息出现。

+0

我只想获得一些数据,说明在GPU下与CPU相比写入应用程序的效率。任何提示都欢迎。 –

+2

我不会将此作为答案发布,但是...对于专家用户(我认为这不是OP),可以使用CUDA分析工具接口(CUPTI)库在应用程序中构建高级分析行为。请参阅CUDA工具包附带的CUPTI用户指南。 – harrism

回答

1

欢迎来到Stack Overflow。

总结评论,答案基本上是你不应该以编程方式启动探查器。您最终会得到无效的比较结果,并且分析器不会提供诸如内存使用情况等指标。

而是跟踪应用程序中的内存使用情况,使用常规系统调用启动它们并使用Windows timers来计时。

+0

就是这样的:我正在写一个程序,运行后用户指出两个exe文件(一个写在CPU下,另一个写在CUDA下 - 他们做同样的事情,我想比较性能)。程序本身运行分析器并生成cvs文件或其他任何类型的文件,其中包含关于性能(执行时间,内存等)的信息。 –

+0

我冒昧地重写了你的问题。请检查它是否仍然代表您想要了解并编辑的内容(如有必要)。您的计划应用程序的一个潜在缺陷是分析器可能会降低CUDA应用程序的速度,因此与CPU版本的比较不再有效。为了比较这两个版本,您的应用程序应该以相同的方式在分析器外部运行GPU版本和时间。 –

+0

Thx,对于重写,英语不是我的母语。好的,所以我会在系统探查器之外运行我的应用程序(“nvcc -run filepath”);如何获得程序使用的运行时间或其他资源? –

相关问题