2014-07-15 22 views
1

我有一个用C编写的openmp代码。我在Stampede的Intel MIC上执行了代码。我想分析代码以查找代码中的热点,以便进一步优化代码对我有帮助。我尝试使用profiler gprof,但是我在某处读到gprof不能直接在MIC上使用。我尝试通过教程来使用perf。我可以直到某个步骤后,当perf注释步骤到来并执行代码时,它会给我带来意想不到的错误“)”。所以我不知道如何继续配置我的代码。任何人都可以请帮忙吗? 这是我参考perf教程的网站:sandsoftwaresound.net/perf/perf-tutorial-hot-spots/。如何在Intel MIC上本机分析openmp代码?

回答

0

您有几个选项。

重量级方法是使用英特尔Vtune。首先将-g添加到您的编译器标志。 我使用主机命令行中的Vtune相当多,这里是我用来在MIC上分析应用程序的命令。 (这是在主机上执行,V调谐在主机上使用ssh 对MIC启动应用程序。)

amplxe-cl -collect knc-hotspots -source-search-dir=/mysrc/dir -search-dir=/mybin/dir -- ssh mic0 /home/me/myapp 

假定应用程序上的MIC是通过/ home/ME/MyApp的,和源目录和源搜索目录在主机上。 (至少需要Vtune更新15,我需要单独指定这两个以便让Vtune GUI显示符号信息)

一旦您的应用程序完成,请使用amplxe-gui在主机上运行Vtune GUI并打开你的结果集。

也有一些简单的开源剖析英特尔开发支持MIC,车速表和架空工具,你可以找到关于他们here

信息但愿这是足够的信息,让你开始。

1

Xeon Phi的优化80%与主机(Xeon)相同。只要在主机上执行代码,就可以使用gprof,printf,编译器选项和工具包的其余部分,并进行优化。在你不能做更多的事情之后,再关注特定的Xeon Phi优化。

当你在Stampede上时,我假设你正在使用Intel编译器。编译器有很多诊断功能来分析代码,甚至提供建议。我会为您提供更具体的网址,但我正在度假,但带宽有限。

虽然这不是特定于您的问题,但还有一些其他建议。如果你不是,那么使用它很有可能获得实质性的提升。英特尔编译器在优化方面表现出色,特别是在英特尔架构上。另外,您应尽可能使用英特尔MKL。所有MKL的例程都针对不同的IA体系结构进行了优化,与HPC最相关的特别针对MIC进行了优化。