2016-06-08 5 views
1

OpenACC가 설치된 Fortran MPI 코드가 있습니다. 그것은 큰 코드입니다. 나는 의미있는 발췌 문장을 여기에 제공 할 수는 없습니다. Cray aprun에서 잘 실행됩니다 :nvprof가 데이터를 반환하지 않게하는 원인은 무엇입니까?

aprun -n 15 ./mycode 

nvprof로 프로필을 만들고 싶습니다.

aprun -n 15 -b nvprof ./mycode 

코드는 다시 확인을 실행하지만 모두가 말하고 완료되면, 난 그냥 메시지에는 프로파일 링 데이터를 얻을 : 나는 시도

======== Warning: No CUDA application was profiled, exiting 

제공하는 다른 오류 메시지가 없습니다합니다. 누구든지이 행동의 원인을 알 수 있습니까? 나는 Cray MPI Fortran 컴파일러로 컴파일 중이다. 컴파일 플래그는

-Mdaz -traceback -Ktrap=inv -acc -ta=tesla,cuda6.5,cc35,nofma -Minfo=accel -Mcuda=cuda6.5,cc35 -I. -module . 

cudatoolkit 모듈이로드되었습니다.

+1

가능성이 높습니다. 앱이 종료되지만 프로필러 버퍼가 플러시되지 않을 수 있습니다. 이 [NVIDIA 팁] (https://devblogs.nvidia.com/parallelforall/pro-tip-clean-up-after-yourself-ensure-correct-profiling/)의 정보가 도움이 될 수 있습니다. – njuffa

+0

@njuffa 해당 루틴에 대해 Fortran에 해당하는 것이 있습니까? 감사. –

+1

Fortran에서 C 코드를 호출 할 수 있어야합니다. 컴파일러가 Fortran 2003을 지원한다면 ISO C 바인딩을 사용할 것을 권하고 그렇지 않으면 컴파일러의 설명서에 설명 된 툴체인 특정 메서드를 사용하십시오. – njuffa

답변

2
aprun -n 15 -b nvprof --profile-child-processes ./mycode 

크레이 시스템의 경우 로그인 노드에서 aprun을 실행합니다. aprun은 계산 노드에서 프로세스를 시작합니다. 기본적으로 nvprof는 하위 프로세스를 프로파일 링하지 않으므로 --profile-child-processes 옵션은 생성 된 프로세스를 프로파일 링합니다.

+1

아마도 일부 줄에 대해 의견을 말하고 이유는 무엇입니까? –

+0

@KVM : Cray 플랫폼과'aprun'에 익숙하지 않아서,'--profile-child-processes'를 추가하면 asker의 문제를 해결할 수 있습니다. 왜냐하면'nvprof'가'aprun' 자체가 아닌'aprun' 자체에 적용될 것이기 때문입니다. CUDA 응용 프로그램이 실행됩니까? 당신이 그 점에서 당신의 대답을 확장하고 명확하게 할 수 있다면 그것은 도움이 될 것입니다. – njuffa

+0

아직 숲에서 나오지는 않았지만, 앞으로 나아가고있는 것처럼 보입니다. 감사. –