我有一个用C编写的openmp代码。我在Stampede的Intel MIC上执行了代码。我想分析代码以查找代码中的热点,以便进一步优化代码对我有帮助。我尝试使用profiler gprof,但是我在某处读到gprof不能直接在MIC上使用。我尝试通过教程来使用perf。我可以直到某个步骤后,当perf注释步骤到来并执行代码时,它会给我带来意想不到的错误“)”。所以我不知道如何继续配置我的代码。任何人都可以请帮忙吗? 这是我参考perf教程的网站:sandsoftwaresound.net/perf/perf-tutorial-hot-spots/。如何在Intel MIC上本机分析openmp代码?
1
A
回答
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进行了优化。
相关问题
- 1. 具有Intel MIC卸载功能的异构OpenMP并行环路
- 2. 无法分析Android本机代码
- 3. openmp代码(并行)与串行代码的性能分析
- 4. Visual Studio 2013代码分析挂在本机代码
- 5. Android本机代码剖析
- 6. 内存传输开销往来Intel MIC
- 7. 在cuda主机代码中使用openMP?
- 8. 如何使openMP上的代码在xeon phi上工作?
- 9. 明确链接intel icp openmp
- 10. OpenMP如何在Java代码中使用?
- 11. 剖析OpenMP并行化的C++代码
- 12. 如何在MPI代码上使用Intel引脚
- 13. OpenMP性能分析
- 14. 如何在Windows平台上在Android上调试本机代码
- 15. 如何在Linux中分析PyCuda代码?
- 16. 如何配置在Intel MIC架构上本地运行的应用程序的缓存性能
- 17. OpenMP到分布式内存代码
- 18. 代码分析
- 19. 分段故障在本机代码
- 20. 如何剖析Rcpp代码(在linux上)
- 21. OpenMP帮助代码
- 22. Intel MIC - 内在向量元素的总和
- 23. OpenMP代码并行
- 24. 是否有Windows脚本编写主机代码的分析器?
- 25. eclipse无法解析android本机代码
- 26. 如何在生成的代码中抑制代码分析?
- 27. 如何在Hudson-CI上运行Visual Studio代码分析?
- 28. 如何在现有代码库上实现FxCop /静态分析
- 29. 如何在TFS源代码上配置klocwork连续分析?
- 30. 如何防止Visual Studio代码分析在dll上运行?