pytorch使用gpu(linux服务器上)

1.查看服务器中GPU信息:   转自这里-->https://blog.youkuaiyun.com/handsome_bear/article/details/80903477

   nvidia-smi

 

2.使用单个gpu:  转自-->https://blog.youkuaiyun.com/yzy__zju/article/details/85014576

# 指定gpu/cpu, 指定使用gpu号x ‘cuda:x’
device=torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

# 网络转gpu
model=model.to(device)

# tensor转gpu
x=x.to(device)
y=y.to(device)

 

3.多gpu并行:  转自-->https://blog.youkuaiyun.com/qq_19598705/article/details/80396325

(1)使用torch.nn.DataParallel进行多gpu并行处理,官方文档给出了工作原理和注意事项:https://pytorch.org/docs/stable/nn.html#torch.nn.DataParallel

(2)具体使用方法

在定义模型和优化器时做出的更改:

# 指定gpu号
device_ids = [0,1,2,3]

# 处理model
# 此处device可以随便指定一个,并行时是replication,同理tensor处也无需修改
model = Net().to(device_ids[0]) 
model = torch.nn.DataParallel(model, device_ids=device_ids)

# 处理优化器
optimizer = optim.Adam(model.parameters(), lr=learning_rate)
optimizer = torch.nn.DataParallel(optimizer, device_ids=device_ids)

在训练时做出的更改:  optimizer.module.step()

def train(model, device, train_loader, optimizer):
    model.train()
    loss = 0
    for data, target in tqdm(train_loader):
        data, target = data.to(device), target.to(device)
        optimizer.zero_grad()
        output = model(data)
        loss = F.nll_loss(output, target)
        loss.backward()
        
        # 这里将optimizer.step()修改
        optimizer.module.step()

    print('Train Loss: {:.6f}'.format(loss.item()))

(3)事实上我训练时使用多GPU还不如用一个GPU快,原因(猜测):几块卡之间的通信损失大于并行计算的增益

### 安装支持GPUPyTorch环境 #### 查看操作系统版本 为了确认当前使用Linux发行版,在终端输入如下命令可以查看是CentOS还是Ubuntu: ```bash cat /etc/redhat-release ``` 对于其他基于Debian的系统,可使用`lsb_release -a`来获取更详细的发布信息。 #### 创建并激活Python虚拟环境 建议通过Anaconda管理Python环境及其依赖项。首先下载Anaconda安装脚本,并按照指示完成安装过程[^3]: ```bash chmod +x Anaconda3-2024.10-1-Linux-x86_64.sh ./Anaconda3-2024.10-1-Linux-x86_64.sh ``` 接着创建一个新的Python 3.8虚拟环境,并将其命名为`pytorch`以便于识别: ```bash conda create --name pytorch python=3.8 conda activate pytorch ``` #### 配置Conda显示渠道URLs 为了让后续操作更加透明,设置Conda在安装软件包时展示其来源地址: ```bash conda config --set show_channel_urls yes ``` #### 查询CUDA版本号 确保已知本地NVIDIA CUDA Toolkit的具体版本号,这一步骤至关重要因为不同版本的PyTorch可能对应特定范围内的CUDA版本。可以通过以下方式查询CUDA版本: ```bash nvcc --version ``` #### 安装支持GPU加速的PyTorch库 根据所查到的CUDA版本选择合适的PyTorch安装命令。通常情况下可以直接利用官方推荐的方式进行安装: 如果使用的是较新的CUDA版本(例如CUDA 11.x),则可以执行下列指令来安装最新的稳定版PyTorch以及必要的cuDNN工具集: ```bash conda install pytorch torchvision torchaudio cudatoolkit=11.7 -c pytorch ``` 请注意替换上述命令中的`cudatoolkit=11.7`部分以匹配实际可用的CUDA版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值