2014-07-15 26 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進行了優化。