我在论坛上快速查看了一下,不认为已经有人问过这个问题。
我目前正在使用一个MPI/CUDA混合代码,是别人在他的博士期间制作的。 每个CPU都有自己的GPU。 我的任务是通过运行(已经工作正常的)代码来收集数据,并实现额外的功能。 目前将此代码转换为单个CPU/多个GPU的代码不是一个选项(以后可能会是)。
我想利用性能分析工具来分析整个过程。
暂时的想法是让每个CPU为自己的GPU启动nvvp并收集数据,而另一种分析工具将处理一般的CPU/MPI部分(我打算像往常一样使用TAU)。
问题是,同时启动8个nvvp接口(如果使用8个CPU/GPU运行)非常麻烦。我希望避免通过界面进行操作,并获得一个直接将数据写入文件的命令行,我可以稍后将其馈送给nvvc的界面并进行分析。
我想得到一个命令行,每个CPU将执行该命令行,并为它们各自的GPU生成一个给出数据的文件。8(GPU / CPU)= 8个文件。 然后,我计划逐个喂食和分析这些文件,一个接一个地使用nvcc比较数据。
有什么想法吗?
谢谢!