我有一個用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上運行?