CUDA_VISIBLE_DEVICES环境变量的简单介绍

CUDA 编程模型中的环境变量在 CUDA 应用程序开发中具有重要作用,如需使用,需要在程序运行前在系统中进行设置。

环境变量 CUDA_VISIBLE_DEVICES 用于指定 CUDA 应用程序将在哪些 GPU 设备上运行,通常用于控制程序在多 GPU 系统上的 GPU 使用情况,对于单 GPU 系统和纯主机代码的程序没有意义。通过设置 CUDA_VISIBLE_DEVICES,可以限制应用程序访问的 GPU 设备,以便在多任务或多用户环境中更好地管理和分配 GPU 资源。

CUDA_VISIBLE_DEVICES 的值是一个以英文逗号分隔的 GPU 设备索引表,例如 0,1,2。这表示应用程序将只能在索引为 0、1、2 的 GPU 设备上运行,而忽略其他 GPU 设备。如果用户没有显式设置 CUDA_VISIBLE_DEVICES 的值,应用程序将默认使用所有可用的 GPU 设备。

CUDA_VISIBLE_DEVICES环境变量的作用:使用指定的GPU

有时候,我们只想使用其中的一个GPU进行计算。我们可以通过设置CUDA_VISIBLE_DEVICES环境变量来指定使用的GPU编号。

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

在上述例子中,我们将使用编号为0的GPU进行计算。注意:当你设置了 os.environ["CUDA_VISIBLE_DEVICES"] = "3",你实际上是告诉CUDA只看到一个GPU,即设备ID为3的GPU。因此,对于你的Python进程来说,此GPU现在的设备ID为0。