2014-07-15 2 views
1

C로 작성된 openmp 코드가 있습니다. Stampede의 Intel MIC에서 코드를 실행했습니다. 코드에서 핫스팟을 찾기 위해 코드를 프로파일 링하여 코드를 더욱 최적화하는 것이 도움이 될 수 있도록 노력하겠습니다. 프로파일 러 gprof를 사용하려고했지만 gprof를 MIC에서 직접 사용할 수없는 곳을 읽었습니다. 튜토리얼을 통해 perf를 사용하려고했습니다. 특정 단계가 끝나면 perf 주석 달기 단계가 오면 코드를 실행하면 오류가 발생합니다. ")"예기치 않은 상황입니다. 그래서 나는 내 코드를 프로파일하는 방법을 알지 못한다. 아무도 도와 줄 수 있니? 이것은 perf 자습서를 참조한 사이트입니다. sandsoftwaresound.net/perf/perf-tutorial-hot-spots/.Intel MIC에서 기본적으로 openmp 코드를 프로파일 링하는 방법은 무엇입니까?

답변

0

몇 가지 옵션이 있습니다.

헤비급 접근법은 인텔 Vtune을 사용하는 것입니다. 먼저 컴파일러 플래그에 -g를 추가하십시오. Vtune을 호스트 명령 줄에서 사용합니다. 여기서는 MIC에서 응용 프로그램을 프로파일 링하는 명령입니다. 마이크가/홈/ME/MyApp를에 있습니다에

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

이 응용 프로그램을 가정한다 (이것은 호스트 시스템에서 실행되는 호스트에서의 VTune은. 마이크에 응용 프로그램을 실행하기 위해 ssh를 를 사용), 소스 dir 및 호스트에서 소스 검색 디렉토리. (Vtune 업데이트 15 이상을 사용하려면 Vtune GUI에서 심볼 정보를 표시하려면이 두 가지를 별도로 지정해야합니다.)

앱이 끝나면 amplxe-gui가있는 호스트에서 Vtune GUI를 실행하십시오 결과 세트를 엽니 다.

또한 MIC, 속도계 및 오버 헤드를 지원하는 인텔에 의해 개발 된 프로파일 링 툴을 몇 가지 간단한 오픈 소스가있다, 당신은 희망이 당신이 시작할 수있는 충분한 정보가 그들 here

에 대한 정보를 찾을 수 있습니다.

1

제온 파이의 최적화 비율은 호스트 (Xeon)의 경우와 같습니다. gprof, printf, 컴파일러 옵션 및 나머지 툴킷을 사용하고 호스트에서 코드를 실행할 수있는 한 최적화를 수행하십시오. 더 이상 할 수 없으면 특정 Xeon Phi 최적화에 집중하십시오.

당신이 Stampede에있는 것처럼 나는 인텔 컴파일러를 사용하고 있다고 가정합니다. 컴파일러에는 코드를 프로파일 링하고 제안 사항을 제공하는 데 필요한 많은 진단 기능이 있습니다. 더 구체적인 URL을 제공 하겠지만 한정된 대역폭으로 휴가를 보내고 있습니다.

이 질문에 대한 질문은 아니지만 다음과 같은 몇 가지 제안 사항이 있습니다. 그렇지 않은 경우에는이를 사용하여 대폭 향상시킬 수 있습니다. 인텔 컴파일러는 최적화, 특히 인텔 아키텍처에서 잘 작동합니다. 또한 가능한 경우 Intel MKL을 사용해야합니다. MKL의 모든 루틴은 다양한 IA 아키텍처에 최적화되어 있으며 HPC와 가장 관련이있는 것은 MIC 전용으로 최적화되어 있습니다.

관련 문제