多卡选取优化
当应用只需使用服务器中部分GPU卡时,GPU卡位置的选取对应用性能有较大影响。
一般规则如下,实际以测试为准。
- 当GPU间通信较多时,尽量选取集中分布在同一CPU下的GPU卡。
- 当GPU与CPU间通信较多时,尽量选取均匀分布在2个CPU下的GPU卡。
以2卡为例来说明均匀分布选取和集中分布选取,如图1和图2所示。
GPU与CPU的连接关系可通过结合“nvidia-smi topo -m”和“lscpu |grep NUMA”命令查询得到,如下图所示,GPU0挂接在CPU0,GPU1挂接在CPU1。
GPU卡选取方式:
- export CUDA_VISIBLE_DEVICES=0,2 #通过环境变量指定需要使用的GPU卡。
- mpirun -np 8 -x CUDA_VISIBLE_DEVICES=0,2 args #配合mpirun命令指定需要使用的GPU卡。
父主题: 多GPU优化