我正在尝试使用 GPU 和 OpenACC 加速传统的 MPI Fortran 程序。在我用 Nsight 系统编译和分析程序后,我发现了一些来自 HtoD 和 DtoH 的意外数据副本。我想通过提前复制它们来减轻这些数据传输,但我无法找出究竟是什么被复制进出。程序很大,源文件很多,有什么方法可以快速识别出profiler上显示的memcpy HtoD和DtoH对应的变量名。
我也尝试过使用 PGI_ACC_DEBUG 模式,但信息太多,我无法确定我正在寻找的数据传输实际上是哪个。有没有一些好的做法可以做到这一点?