怎么用python代码查看可用的gpu,然后指定可用的gpu运行

文章介绍了如何在Python中使用nvidia-smi查看GPU信息,设置单卡或多卡环境,以及如何指定特定GPU运行模型。方法包括检查CUDA可用性,设置CUDA_VISIBLE_DEVICES环境变量,以及在多GPU环境下的训练和测试操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.查看gpu

(最好像下面这样代码里输出看下,nvidia-smi里gpu编号有时候对不上的)

import torch

# 检查CUDA是否可用
if torch.cuda.is_available():
    # 获取GPU设备数量
    device_count = torch.cuda.device_count()

    # 列出可用的GPU设备
    for i in range(device_count):
        print(f"GPU {i}: {torch.cuda.get_device_name(i)}")
else:
    print("CUDA is not available. No GPU devices found.")

输出结果
在这里插入图片描述
python可以借助nvidia-smi查看gpu的内存情况等

import subprocess

# 执行nvidia-smi命令以获取GPU信息
nvidia_smi_output = subprocess.check_output("nvidia-smi", shell=True).decode()

# 切分输出为每个GPU的信息
gpu_info = nvidia_smi_output.strip().split('\n\n')

# 遍历每个GPU的信息
for i, info in enumerate(gpu_info):
    print(f"GPU {i}:")
    print(info)

2.设置指定gpu运行

方式一(单卡):设置可见的为1号卡,再指定0号卡运行(设置可见卡为1号后,默认为0号卡开始编号)

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

if torch.cuda.is_available():
    # 指定要使用的GPU设备编号
    device = torch.device("cuda:0")
    print(f"Using GPU {device} - {torch.cuda.get_device_name(device)}")
else:
    print("CUDA is not available. No GPU devices found.")

方式二(单卡):直接指定5号卡

if torch.cuda.is_available():
    # 指定要使用的GPU设备编号
    device = torch.device("cuda:5")
    print(f"Using GPU {device} - {torch.cuda.get_device_name(device)}")
else:
    print("CUDA is not available. No GPU devices found.")

方式三(单卡):命令行里,指定在GPU的id为0的两张显卡上运行**.py程序

export CUDA_VISIBLE_DEVICES=0 
python extract_masks.py

方式四(多卡):命令行里,在GPU的id为0和1的两张显卡上运行**.py程序:

export CUDA_VISIBLE_DEVICES=0,1
python ***.py

方式五(多卡):指定可见的为0,2,3号卡

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,2,3"
# 注意:这两行代码必须在文件的最开头,在加载各种包之前

model = ......
model.train(True) or model.train(False) # 看你是要训练还是测试
model.to('cuda') # 或者model.cuda()

方式六(多卡):直接代码指定0,1号卡

import torch

# 检查CUDA是否可用
if torch.cuda.is_available():
    # 指定要使用的GPU设备编号,可以使用逗号分隔多个GPU编号
    device = torch.device("cuda:0,1")
    print(f"Using GPUs {device} - {torch.cuda.get_device_name(0)} and {torch.cuda.get_device_name(1)}")
else:
    print("CUDA is not available. No GPU devices found.")

# 在后续的代码中,使用 device 参数来指定运行在特定的GPU上
# 例如1:
model = model.to(device)

# 例如2:
import torch
tensor = torch.randn(3, 3)# 创建一个张量
tensor = tensor.to(device)# 将张量移动到指定的GPU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小怪兽会微笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值