У меня есть код Fortran MPI с инструментами OpenACC. Это большой код. Ни в коем случае я не могу представить никаких значимых фрагментов. Он работает отлично под 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
загружается.
Вероятно, проблема, когда приложение выходит, но буферы профилировщика не очищаются. Информация в этом [совете NVIDIA] (https://devblogs.nvidia.com/parallelforall/pro-tip-clean-up-after-yourself-ensure-correct-profiling/) может помочь. – njuffa
@njuffa Знаете ли вы, есть ли эквиваленты Fortran для этих процедур? Благодарю. –
Вы должны иметь возможность вызвать код C из Fortran. Если ваш компилятор поддерживает Fortran 2003, я бы предложил использовать привязки ISO C, иначе используйте специальный метод toolchain, описанный в документации вашего компилятора. – njuffa