首页 文章

如何在Intel MIC上原生配置openmp代码?

提问于
浏览
1

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

2 回答

  • 0

    Xeon Phi的80%优化与主机(Xeon)相同 . 使用gprof,printf,编译器选项和工具包的其余部分,只在主机上执行代码时进行优化 . 在您不能再做之后,请关注特定的Xeon Phi优化 .

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

    虽然这不是您的问题所针对的,但以下是其他一些建议 . 如果你不是,你很可能会得到大幅提升 . 英特尔编译器在优化方面具有良好的优势,特别是在英特尔架构上 . 此外,您应尽可能使用英特尔MKL . MKL的所有例程都针对不同的IA架构进行了优化,与HPC最相关的是针对MIC进行了优化 .

  • 1

    你有几个选择 .

    重量级方法是使用英特尔Vtune . 首先将-g添加到编译器标志中 . 我使用主机命令行中的Vtune,这是我用来在MIC上分析应用程序的命令 . (这在主机上执行,主机上的Vtune使用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,Speedometer和Overhead,你可以找到有关它们的信息here

    希望这足以让您入门 .

相关问题