首页 > 解决方案 > 在具有多个显卡(例如 K80)的 NVIDIA GPU 上,为什么 torch.cuda.device_count() 返回 1?

问题描述

我在 Tesla K80 上运行了以下代码,据我了解,它由 2 个 GK210 显卡组成,每个显卡都有 12GB 的片上 ram,通过称为 PLX 开关的东西连接。我很困惑在pytorch级别,有两个显卡的事实对用户是隐藏的

import torch
torch.cuda.device_count() # 1

(我的预感是 tensorflow 提供了同样的抽象)

跟进问题:

  1. 如果我正在使用 pytorch 训练模型,并且我运行nvidia-smi并看到 GPU 被充分利用,我会假设这意味着两个 GK210 的利用率都是 100%。pytorch 如何在两个 GK210 上分配内核,我可以相信这是有效的吗?(即以最小化两张卡之间的数据传输的方式完成)。任何解释其工作原理的资源将不胜感激。
  2. 如果我正在编写一个 CUDA 应用程序,我可以将 CUDA 流固定到每张卡上,并明确管理两张卡之间的数据传输吗?

标签: tensorflowamazon-ec2pytorchgpunvidia

解决方案


推荐阅读