多卡环境 设置某张卡跑某程序

本文介绍了如何在使用screen命令时正确设置CUDA_VISIBLE_DEVICES环境变量,以确保GPU设备的指定。提供两种方法:一是预设环境变量后再启动screen,二是将export和screen命令结合在一条bash-c命令中,以限制环境变量的影响范围。
摘要由CSDN通过智能技术生成

如果要在使用screen命令时指定CUDA设备,正确的方法是在screen命令之前设置CUDA_VISIBLE_DEVICES环境变量。由于screen会启动一个新的shell会话,直接在命令中设置环境变量可能不会按预期工作。因此,你需要先导出环境变量,然后再启动screen会话。这里是如何做:

方法一:

首先,你需要在启动screen会话之前,在同一个命令行环境中导出CUDA_VISIBLE_DEVICES环境变量。这可以通过在命令行中输入以下命令实现:

export CUDA_VISIBLE_DEVICES=0

这条命令会设置环境变量,使得所有接下来在这个终端会话中运行的CUDA程序只能看到和使用第一个GPU(假设编号为0)。

启动带有特定CUDA设备的screen会话: 环境变量设置完成后,你可以使用原来的命令启动screen会话:

screen -SL huihua -Logfile rizhi python tools/train.py configs/yolox/yolox_s_8xb8-300e_coco.py

这种方法的一个潜在问题是,CUDA_VISIBLE_DEVICES的设置会影响到启动这个命令的终端会话中的所有CUDA程序,直到你关闭终端或者显式地改变CUDA_VISIBLE_DEVICES的值。

方法二:

如果你想在一个单独的命令中完成这个操作,而不是改变当前shell的环境变量,可以尝试将export命令和你的screen命令结合在一条命令行中,像这样:

screen -SL huihua -Logfile rizhi bash -c 'export CUDA_VISIBLE_DEVICES=0; python tools/train.py configs/yolox/yolox_s_8xb8-300e_coco.py'

这条命令使用bash -c来执行一个包含两个步骤的命令序列:首先设置CUDA_VISIBLE_DEVICES环境变量,然后运行python命令。这样做的好处是,环境变量的设置只影响通过这条screen命令启动的那个进程,而不会影响到其他进程或者未来在同一个shell会话中运行的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值