cuda设置指定的GPU可见

可设置环境变量CUDA_VISIBLE_DEVICES,指明可见的cuda设备

方法1: 在/etc/profile或~/.bashrc的配置文件中配置环境变量(/etc/profile影响所有用户,~/.bashrc影响当前用户使用的bash shell)

在/etc/profile文件末尾添加以下行:

export CUDA_VISIBLE_DEVICES=0,1 ##仅显卡设备0,1GPU可见。可用的GPU可通过nvidia-smi -L命令查看

:wq保存并退出

source /etc/profile使配置文件生效

方法2:若上述配置无效,可在执行cuda程序时指明参数,如

CUDA_VISIBLE_DEVICES=0,1 ./cuda_executable

另附上一些参考文章:http://acceleware.com/blog/cudavisibledevices-masking-gpus

                                        http://stackoverflow.com/questions/39649102/how-do-i-select-which-gpu-to-run-a-job-on

Environment Variable Syntax                               Results

CUDA_VISIBLE_DEVICES=1              Only device 1 will be seen

CUDA_VISIBLE_DEVICES=0,1            Devices 0 and 1 will be visible

CUDA_VISIBLE_DEVICES=”0,1”          Same as above, quotation marks are optional

CUDA_VISIBLE_DEVICES=0,2,3          Devices 0, 2, 3 will be visible; device 1 is masked
### 设置环境变量以控制GPU可见性 为了有效管理多GPU系统的资源分配,可以通过设置特定的环境变量来控制哪些GPU对程序可见。这通常通过修改`CUDA_VISIBLE_DEVICES`环境变量实现。 对于Linux系统,在启动脚本或批处理作业提交脚本中加入如下命令可限定可用的GPU设备: ```bash export CUDA_VISIBLE_DEVICES=0,1 ``` 上述命令表示仅使第0号和第1号GPU被应用程序识别并利用[^2]。 当使用Anaconda创建虚拟环境时,可以在激活该环境中自动应用所需的环境变量配置。具体做法是在相应环境下找到`.condarc`, `.bashrc` 或者 `activate.d/` 文件夹下的自定义脚本文件,并添加上面提到的导出语句[^1]。 如果希望临时改变当前终端会话内的GPU可见范围而不影响其他地方,则可以直接在命令行输入以上指令而无需将其写入任何配置文件中。 另外值得注意的是,不同的深度学习框架可能还提供了额外的方式来自定义其内部行为,比如TensorFlow允许通过Python API动态设定可见的物理设备列表: ```python import tensorflow as tf gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: # Restrict TensorFlow to only use the first GPU tf.config.set_visible_devices(gpus[0], 'GPU') except RuntimeError as e: print(e) ``` 这段代码展示了如何编程方式指定只让第一个GPU供TensorFlow进程访问。 #### 控制GPU可见性的方法总结 - 使用`export CUDA_VISIBLE_DEVICES=<gpu_ids>`命令在shell中即时生效。 - 将此命令添加至个人或全局级别的shell初始化文件(如~/.bash_profile、~/anaconda3/envs/<env_name>/etc/conda/activate.d/*sh)以便长期保存。 - 利用高级API接口(例如TensorFlow提供的函数),根据实际需求灵活调整运行期间的具体策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值