前言
CUDA_VISIBLE_DEVICES 是一个环境变量,用于指定程序将在哪些 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 资源的环境中,可以通过设置
CUDA_VISIBLE_DEVICES以避免冲突和资源争夺。不同的任务可以限制在不同的 GPU 上运行,以确保资源的有效使用。 -
分布式训练:在深度学习中,分布式训练通常涉及多个 GPU 设备。通过设置
CUDA_VISIBLE_DEVICES,您可以控制哪些 GPU 设备将用于训练。 -
调试和测试:在调试或测试程序时,您可以选择一个或一组 GPU 设备,以加速代码迭代和问题排查。
请注意,CUDA_VISIBLE_DEVICES 是一个针对 NVIDIA CUDA 的环境变量。在使用 NVIDIA GPU 和 CUDA 加速的深度学习框架中,可以通过设置它来控制 GPU 设备的使用。这对于管理多 GPU 系统中的任务和资源分配非常有用。
使用
查看
要查看 CUDA_VISIBLE_DEVICES 的设置,可以在终端中运行以下命令:
echo $CUDA_VISIBLE_DEVICES
如果环境变量被设置,该命令将显示当前的设备索引。例如,如果它显示:
0,1
这意味着程序将使用索引为 0 和 1 的 GPU 设备。如果未设置 CUDA_VISIBLE_DEVICES,通常情况下,默认情况下将使用所有可用的 GPU 设备。
修改
如果需要更改 CUDA_VISIBLE_DEVICES 的设置,可以在终端中执行以下命令:
export CUDA_VISIBLE_DEVICES=0,1
上述命令将设置 CUDA_VISIBLE_DEVICES 以使用索引为 0 和 1 的 GPU 设备。这可以帮助您在多 GPU 系统上管理 GPU 资源的分配。请注意,更改此环境变量后,只有指定的 GPU 设备将对程序可见,其他 GPU 设备将被忽略。
使用此命令只有在当前程序中有效。

3万+

被折叠的 条评论
为什么被折叠?



