CUDA-Fortranで、pgprofするとmemcpyでエラー

CUDA-Fortranでプログラム書いてるけど、チューニングしたくて各プロセスでの時間を知りたい。前に調べたときに、

$ pgprof -f -o a.prof ./a.out

$ pgprof -i a.prof

でOKと書いてあったので、そのまま実行・・・するとエラー出ました。エラーは、

0: copyover Memcpy (dst=0x2b8757a50000, src=0x2b8757a20000, size=65536) FAILED: 700(an illegal memory access was encountered)

という感じ。pgprofを付けずに実行すると普通に計算できるので、意味不明です。ちょっと調べたら、とりあえずコンパイル時に、-Mcuda=lineinfoを付けなさいとあったので、付けたら少し計算できて、やっぱり同じエラー。

わけわからんので色々調べましたが、どうやら変数にvolatile属性?を付けるとハッピーになれる場合があるとあったので、エラーの出ているサブルーチン部分で付けてみましたが、変わらず。

さらに調べたら、cuda-memcheckなるコマンドを実行すると、何かわかるかもしれないということで、

$ cuda-memcheck pgprof -f -o a.prof ./a.out

とすると、今度はなぜか普通に計算できて、

$ pgprof -i a.prof 

で、各プロセスの時間がわかるようになりました。でも、CPU時間のみです。目的のGPU時間がわかりません。実行すると以下のようなエラーが出てます。まったく意味が分かりません。

Error: Internal profiling error 4917:23

行き詰ってます。誰か、教えて。