【发布时间】:2020-07-01 10:55:40
【问题描述】:
我是分布式计算的新手,我正在尝试运行一个使用 MPI 和 ROCm(在 GPU 上运行的 AMD 框架)的程序。
我用来运行程序的命令是
mpirun -np 4 ./a.out
但它默认运行在我机器上可用的 2 个 GPU 上。 有没有办法让它只在单个 GPU 上运行,如果是的话怎么办?
在此先感谢:)
【问题讨论】:
-
你有没有尝试过这些想法和环境变量:github.com/RadeonOpenCompute/ROCm/issues/841?例如 ROCR_VISIBLE_DEVICES
-
感谢@Demi-Lune,HIP_VISIBLE_DEVICES 为我工作。但是,MPI 能否控制使用哪些 GPU?
-
您可以使用
-x将环境变量传递给mpirun:mpirun -np 2 -x HIP_VISIBLE_DEVICES=1,2 ./a.out -
但也许您正在寻找一种方法将 GPU#0 的某些进程排名 #1 设置为其他排名?您可以在 mpi 程序中尝试
setenv("HIP_VISIBLE_DEVICES", rank%2);,就在 mpi_init 之后?
标签: mpi distributed-computing gpgpu hpc amd-rocm