相关疑难解决方法(0)

CUDA如何为GPU分配设备ID?

当计算机具有多个支持CUDA的GPU时,每个GPU都会分配一个device ID.默认情况下,CUDA内核会执行device ID 0.您可以使用cudaSetDevice(int device)选择其他设备.

假设我的机器中有两个GPU:GTX 480和GTX 670.CUDA 如何确定哪个GPU device ID 0和哪个GPU device ID 1


关于CUDA如何分配设备ID的想法(只是头脑风暴):

  • 计算能力的降序
  • PCI插槽号
  • 将设备添加到系统的日期/时间(刚刚添加到计算机的设备的ID号越高)

动机:我正在研究一些HPC算法,我正在为几个GPU进行基准测试和自动调整.我的处理器有足够的PCIe通道,可以在全带宽下将cudaMemcpys驱动到3个GPU.因此,我不打算不断地将GPU交换进机器,而是计划在计算机中保留3个GPU.我希望能够预测当我在计算机中添加或更换某些GPU时会发生什么.

cuda gpu gpgpu nvidia

27
推荐指数
4
解决办法
2万
查看次数

什么是具有强度1边缘矩阵的设备互连StreamExecutor

我有四块NVIDIA GTX 1080图形卡,当我初始化一个会话时,我看到以下控制台输出:

Adding visible gpu devices: 0, 1, 2, 3
 Device interconnect StreamExecutor with strength 1 edge matrix:
      0 1 2 3 
 0:   N Y N N 
 1:   Y N N N 
 2:   N N N Y 
 3:   N N Y N 
Run Code Online (Sandbox Code Playgroud)

我还有2块NVIDIA M60 Tesla图形卡,初始化如下:

Adding visible gpu devices: 0, 1, 2, 3
 Device interconnect StreamExecutor with strength 1 edge matrix:
      0 1 2 3 
 0:   N N N N 
 1:   N N N N 
 2:   N N N …
Run Code Online (Sandbox Code Playgroud)

nvidia tensorflow

18
推荐指数
1
解决办法
2796
查看次数

CUDA设备订单

我看到了这个解决方案,但是并不能完全回答我的问题。它也很老,所以我不确定它的相关性。

我不断收到有关GPU单位顺序的冲突输出。其中有两个:Tesla K40和NVS315(从未使用过的传统设备)。当我跑步时deviceQuery,我得到

Device 0: "Tesla K40m"
...
Device PCI Domain ID / Bus ID / location ID:   0 / 4 / 0

Device 1: "NVS 315"
...
Device PCI Domain ID / Bus ID / location ID:   0 / 3 / 0
Run Code Online (Sandbox Code Playgroud)

另一方面,nvidia-smi产生不同的顺序:

 0  NVS 315 

 1  Tesla K40m
Run Code Online (Sandbox Code Playgroud)

我觉得很困惑。我为Tensorflow(以及Pytorch的类似解决方案)找到的解决方案是使用

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"  
os.environ["CUDA_VISIBLE_DEVICES"]="0"
Run Code Online (Sandbox Code Playgroud)

Tesla的PCI总线ID为4,NVS的PCI总线ID为3,因此应将其设置为3(NVS),对吗?

在火炬我设置

os.environ['CUDA_VISIBLE_DEVICES']='0'
...
device = torch.cuda.device(0)
print torch.cuda.get_device_name(0)
Run Code Online (Sandbox Code Playgroud)

要得到 Tesla K40m

当我改为

os.environ['CUDA_VISIBLE_DEVICES']='1'
device = torch.cuda.device(1)
print torch.cuda.get_device_name(0) …
Run Code Online (Sandbox Code Playgroud)

cuda tensorflow pytorch

1
推荐指数
1
解决办法
1182
查看次数

标签 统计

cuda ×2

nvidia ×2

tensorflow ×2

gpgpu ×1

gpu ×1

pytorch ×1