我有一个使用 OpenACC 检测的 Fortran MPI 代码。这是一个很大的代码。我无法在这里提供任何有意义的片段。在Cray aprun下运行良好:
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
模块已加载。
最佳答案
aprun -n 15 -b nvprof --profile-child-processes ./mycode
对于 Cray 系统,您可以从登录节点运行 aprun。 aprun 在计算节点上启动进程。默认情况下,nvprof 不会分析子进程,因此 --profile-child-processes
选项分析生成的进程。
关于cuda - 什么会导致 nvprof 不返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37710925/