深度学习——使用GPU

1.查看GPU版本的内容

nvidia-smi

2.计算设备

①查看CPU

import torch
from torch import nn

print(torch.device('cpu'))

输出:cpu

②查看GPU,cuda代表GPU

print(torch.cuda.device('cuda'))

输出

<torch.cuda.device object at 0x000001E1A09CBC70>

③查看GPU的数量

print(torch.cuda.device_count())

3.训练的时候选择CPU还是GPU

def try_gpu(i=0):  # @save
    """如果存在,则返回gpu(i),否则返回cpu()"""
    if torch.cuda.device_count() >= i + 1:
        return torch.device(f'cuda:{i}')
    return torch.device('cpu')

查看GPU的列表

def try_all_gpus():  # @save
    """返回所有可用的GPU,如果没有GPU,则返回[cpu(),]"""
    devices = [torch.device(f'cuda:{i}')
               for i in range(torch.cuda.device_count())]
return devices if devices else [torch.device('cpu')]

【测试】

①try_gpu():返回可用的GPU

②try_gpu(10):没有10块GPU所以返回CPU

①try_all_gpus():返回所有GPU的列表

4.查询张量的所在设备

x = torch.tensor([1, 2, 3])
print(x.device)

输出:cpu

5.①张量存储在GPU

# 存储在GPU
x = torch.ones(2, 3, device=try_gpu())
Y = torch.rand(2, 3, device=try_gpu())

②在GPU计算X+Y,保证X和Y要在同一块GPU不然报错

print(X+Y)

tensor([[1.8671, 1.9548, 1.6110],
        [1.1859, 1.3689, 1.8437]], device='cuda:0')

6.①用GPU训练神经网络:模型后面调用.to(device)

net = nn.Sequential(nn.Linear(3, 1))
net = net.to(device=try_gpu())
print(net(X))

② 确认模型参数在GPU上

print(net[0].weight.data.device)

输出:cuda:0

### 配置和使用GPU加速训练 #### 安装CUDA Toolkit 对于希望在MATLAB中实现高效GPU加速深度学习模型训练的用户来说,安装适合特定GPU型号的CUDA Toolkit是必要的前提条件[^1]。 #### 设置环境变量 完成CUDA Toolkit的安装之后,正确配置环境变量至关重要。这涉及到更新系统的`PATH`以及`LD_LIBRARY_PATH`等环境变量以便操作系统能够识别CUDA的相关库文件位置。 #### 验证安装成功与否 为了确认CUDA Toolkit已经成功部署,在终端执行`nvcc --version`命令可用来检验版本信息从而判断安装过程是否顺利完成。 #### 支持GPU加速的功能列表 - **Deep Learning Toolbox** 提供了一系列可以直接调用以启用GPU运算的支持函数;不过具体的可用功能并未在此处详尽列出。 - **Parallel Computing Toolbox** 则进一步扩展了这一能力范围至超过700个不同的内置方法之上——这其中涵盖了诸如离散傅立叶变换、矩阵相乘操作乃至左侧矩阵除法等多种常见线性代数处理任务。 - 此外还存在一种名为“Deep Learning容器”的机制允许借助于集成好的CUDA驱动程序来进行更便捷快速地开发工作流设计。 #### 多GPU并行训练策略 当面对更大规模的数据集或是更为复杂的网络结构时,则可能需要用到多个图形处理器协同工作的模式下开展实验研究活动。MATLAB提供了相应API接口使得开发者可以通过编写脚本来定义跨设备间数据交换逻辑进而达成目的。 ```matlab % 创建一个分布式数组用于多GPU间的通信协作 d = gpuArray.ones(1e3,'distributed'); % 使用parfor循环来分配不同部分的任务给各个节点上的GPU去独立完成 parfor i=1:4 % 假设这里有一些针对单张图片的操作... end; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值