---
title: 多卡选取优化
description: "当应用只需使用服务器中部分GPU卡时，GPU卡位置的选取对应用性能有较大影响。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/gputuing-wp/kunpenggpu_19_0036.html
sourcePath: /source/zh/perftuning/gputuing-wp/kunpenggpu_19_0036.html
indexId: b34ec9bcfd6e36a3cfe84760d166deefc57d7834548773958d0ca74dd0fc05a257
---
# 多卡选取优化

当应用只需使用服务器中部分GPU卡时，GPU卡位置的选取对应用性能有较大影响。

一般规则如下，实际以测试为准。

- 当GPU间通信较多时，尽量选取集中分布在同一CPU下的GPU卡。
- 当GPU与CPU间通信较多时，尽量选取均匀分布在2个CPU下的GPU卡。

以2卡为例来说明均匀分布选取和集中分布选取，如图1和图2所示。

图1 GPU0、GPU2均匀分布

图2 GPU0、GPU1卡集中分布

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卡。
