【问题标题】:If I have multiple Nvidia GPUs in my system, how to check which GPU is currently used by CUDA compiler?如果我的系统中有多个 Nvidia GPU,如何检查 CUDA 编译器当前使用的是哪个 GPU?
【发布时间】:2017-07-18 16:17:52
【问题描述】:

我有一个带有 2 个 Nvidia GPU 的 Windows 系统。有人能告诉我 CUDA 编译器使用的是哪个 GPU 吗?是否可以切换 GPU 或将两者一起用于同一进程?

【问题讨论】:

  • 编译器与您的代码将在哪个 GPU 上运行完全无关。您决定,无论是在代码中还是通过运行时设置或两者的混合

标签: cuda


【解决方案1】:

http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__DEVICE.html#group__CUDART__DEVICE_1g1bf9d625a931d657e08db2b4391170f0

使用“cudaGetDeviceCount”获取设备数量。如果 deviceCount 为 2,则设备索引 0 和设备索引 1 指的是当前的两个设备。

而“cudaGetDeviceProperties”可用于获取设备的许多属性。

例如,

cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, 1);

可用于获取设备 1 的许多属性。

而且切换到不同 GPU 的方法很简单。初始化后,使用

'cudaSetDevice(0)' 

'cudaSetDevice(1)' 

切换到不同的 GPU。

【讨论】:

    【解决方案2】:

    CUDA_VISIBLE_DEVICES 环境变量将允许您修改此启用/排序。

    CUDA_VISIBLE_DEVICES="0,1" 将使两个 GPU 设备都可用于您的程序。

    CUDA GPU selected by position, but how to set default to be something other than device 0? 可能重复

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 2022-12-19
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 2017-06-16
      • 2021-02-15
      • 2016-05-17
      • 2015-11-12
      相关资源
      最近更新 更多